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.

F28M35H52C: Control system reset

Part Number: F28M35H52C
Other Parts Discussed in Thread: CONTROLSUITE

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

  • I've tried this. The M3 core hangs after reset at the line
    // Loop until C28 control system IPC flags 1 and 32 are available
    while (HWREG(MTOCIPC_BASE + IPC_O_MTOCIPCFLG) & (IPC_FLAG1 | IPC_FLAG32))
    {
    }

    and the C28 does not start up
  • Are you running standalone or with debugger connected?
  • Debugger is connected
  • Sergey pl said:
    Debugger is connected

    How does this affect?

  • Hi,

    If debugger is connected then C28x will run when you click on run button. Is that not happening?

    Vivek Singh
  • No, it does not run because there is no code at the 0x3ff66b address
  • Sergey,
    if you have debugger connected to the C28x and if the C28x CPU is not running prior to M3 issuing a reset to C28x then C28x CPU will not be running after the reset.

    Please have C28x CPU in RUN mode before running the code on M3 that issues a reset to control subsystem and after issuing reset the code on M3 has to wait for C28x to be ready to accept an IPC boot command. This is implemented in the below function as Vivek pointed out earlier.

    IPCMtoCBootControlSystem(CBROM_MTOC_BOOTMODE_BOOT_FROM_FLASH);

    Hope this helps.

    Best Regards
    Santosh Athuru
  • Also make sure you are issuing proper boot mode IPC command to C28x, if you don;t have any code in C28x flash then the boot from flash IPC command will not work. If you have code in RAM, then you should probably use the boot from RAM IPC command.

    Please refer to the boot ROM chapter of the TRM.

    Best Regards
    Santosh Athuru