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.

TMS320F28377D: Bootloader resident in Flash

Part Number: TMS320F28377D

Dear All,

We want to move F2837xD_sci_flash_kernels_cpu01 project in permanent flash instead of running into RAM (boot from SCI), is there any guidelines or help somewhere to do similar things ?

Thanks

David

  • David,

    This document should help you.

    Running an Application from Internal Flash Memory on the TMS320F28xxx DSP - www.ti.com/.../spra958j.pdf

    source: processors.wiki.ti.com/.../FAQs

    Running Code Standalone

    Q: How do I need to change my code for it to run stand-alone (without CCS connected)?

    A: Refer to these resources:

    Code Does Not Run Standalone

    Q: My program runs correctly when debugging within CCS but when I attempt to run this standalone it does not work. Why is this occurring?

    A: This can occur for a few different reasons:

    1. The boot mode selection is not "jump to flash". Check the boot ROM guide and data manual for the particular device.
    2. There are initialized sections allocated to load to RAM instead of flash. All initialized sections should have their load addresses allocated to flash so they can be programmed. The .cmd file needs to be checked to ensure that all initialized sections are assigned to flash. Section 3 of the Running an Application from Internal Flash Memory on the TMS320F28xx DSP(SPRA958) App. Note explains where each compiler generated section should be allocated.
    3. If the code is time critical and needs to be run from RAM, it can be copied at runtime.
    4. After you copy critical sections to RAM, make sure the copy really occurred - check the memory contents.
    5. Try running the flash to RAM copy routine first. Some early functions may assume parts have been copied to RAM. For example, the delay function is used in the InitSysCtrl() function. This delay function is by default allocated to the functions TI's examples copy to RAM. If InitSysCtrl() is called before the copy to RAM then an exception will occur. TI is working to add comments to help avoid this pitfall. This also occurs with InitAdc().
    6. An instruction was not added to branch to the beginning of application code at the flash entry point. This is discussed further in Section 6 of SPRA958.
    7. 281x specific: In addition to the actual boot pins, the MP/MC pin needs to be pulled low to enable the boot ROM.

    To debug this issue, step through the code and try to determine where it is going wrong. Here are some debug suggestions:

    1. Flash the device
    2. Turn off the power
    3. Connect CCS and select "load symbols" only
    4. Place a breakpoint at the entry point to flash
    5. Reset the part with the debugger and run - did you hit the breakpoint? If so the boot mode looks ok
    6. Step the code until you find an issue.

    Regards,

    Manoj

  • I haven't heard back from you for quite sometime. I believe you were able to resolve this issue. I'm planning to close this thread if you don't hear back from you in next 2 days.

    -Manoj