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.

CCS/LAUNCHXL-F28379D: Dual Core Standalone Flash

Part Number: LAUNCHXL-F28379D
Other Parts Discussed in Thread: C2000WARE

Tool/software: Code Composer Studio

I've got two projects in CCS: one for CPU1 and the other for CPU2.  I'd like to load both projects onto the Launchpad into flash so that they can run independently of the CCS debugger after powering down and powering up again.  When debugging, the programs will both run.  However, if I power down the board after flashing for debug, only CPU1 runs. 

The CPU2 project uses 2837xD_FLASH_lnk_cpu2.cmd.  CPU2 and _FLASH are in the predefine symbols.  F2837xD_CodeStartBranch.asm is in the "device" directory of the CPU2 project.  The switches on the board near the label "S1 BOOT" are all in the position closest to "ON CST".

What am I missing that keeps both programs from running in standalone mode?

Thanks

  • Hi Curtis,

    Please see if below post help in resolving your issue -

    e2e.ti.com/.../1227406

    Regards,

    Vivek Singh
  • Hi Vivek,

    Thanks for pointing me in that direction.  Looking at the solution from that link, I'm unable to reproduce their results.  When I load the code onto both CPUs in debugger mode, I'm able to run both CPUs.  However, when I disconnect CCS and power cycle the Launchpad, only CPU1 runs.  I've added the following line to the CPU1 code intended to put CPU2 into boot flash mode:

    HWREG(IPC_BASE + IPC_O_BOOTMODE) = 0x0B;

    0x0B is from Table 4-8.  What other setup is necessary to get both of the CPUs to run upon begin powered up while not connected to CCS?

    Thanks!

  • Curtis,

    Sorry for late reply. This is what we have in C2000Ware example ( examples\dual\blinky_dc\cpu01) -

    #ifdef _STANDALONE
    #ifdef _FLASH
    //
    // Send boot command to allow the CPU2 application to begin execution
    //
    IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);
    #else
    //
    // Send boot command to allow the CPU2 application to begin execution
    //
    IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM);
    #endif
    #endif

    You can try using this example from C200Ware and if it works then try the same in your application.

    Regards,
    Vivek Singh
  • Hey Vivek,

    The blinky_dc code was a good guide.  I used the example project code but ended up having to include the following line into the CPU2 project in order to allow CPU1 to return from the IPCBootCPU2 function.

    IpcRegs.IPCBOOTSTS = C2_BOOTROM_BOOTSTS_SYSTEM_READY;

    Thanks!