This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi
I'm trying to implement a software reset of the control system called from the Master system.
From the Master system I call
SysCtlSubSystemReset(SYSCTL_CONTROL_SYSTEM_RES_CNF);
I see that the control system reacts: it jumps to an improper 0x3ff66b memory address and gets stuck there of course. This address is not present in the PieVectTable and I don't understand why it jumps there.
What exactly should I do to reset the control system correctly?
Hi,
This function look correct for resetting the control system. After reset CPU will execute the BOOTROM code and address 0x3ff66b points to ROM. So it does not look improper. Please note that after this reset, Master system need to boot the control system again (just like it does it at start-up). Please refer "6.4 Device Boot Flow Diagram" in device TRM for more detail about flow.
Regards,
Vivek Singh
Hi, Vivek
The flow diagram you mentioned says only about releasing RST signal and waiting for IPC by C28.
I tried the following code:
SysCtlSubSystemReset(SYSCTL_CONTROL_SYSTEM_RES_CNF); // Send boot command to allow the C28 application to begin execution HWREG(MTOCIPC_BASE + IPC_O_MTOCIPCCOM) = IPC_MTOC_EXECUTE_BOOTMODE_CMD; HWREG(MTOCIPC_BASE + IPC_O_MTOCIPCBOOTMODE) = CBROM_MTOC_BOOTMODE_BOOT_FROM_FLASH; // Force IPC event on selected request task and enable status-checking. HWREG(MTOCIPC_BASE + IPC_O_MTOCIPCSET) |= (IPC_FLAG1 | IPC_FLAG32);
But the result is the same: C28 core does not start.
I also tried to reinitilize PLL and call IPCMtoCBootControlSystem(CBROM_MTOC_BOOTMODE_BOOT_FROM_FLASH);
but it also provided the same result.
Could you, please, provide an exact example how to restart control subsystem (BOOT_FROM_FLASH mode)?
Hi,
All the example in "controlSUITE\device_support\f28m35x\<version>\F28M35x_examples_Dual" (e.g. blinky) have this function call for the same -
// Send boot command to allow the C28 application to begin execution
IPCMtoCBootControlSystem(CBROM_MTOC_BOOTMODE_BOOT_FROM_FLASH);
In M3 code, after C28x reset routine you should call this function to BOOT the C28x from Flash.
Regards,
Vivek Singh