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.

TMS320F28377S: SCI Flash Kernel Loaded to Flash Instead of RAM?

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

I have a few questions regarding SCI Flash Kernel:

1. "F2837xS_sci_flash_kernel" project settings is set to run from RAM. Is it possible to program "F2837xS_sci_flash_kernel" to Flash instead?

2. If it is possible to program "F2837xS_sci_flash_kernel" to Flash instead, how do we change the project configurations from RAM to Flash? Can you please provide a detailed explanation? We do not see the Flash configuration available to select.

3. Is it possible to integrate the Application Firmware into the same project as "F2837xS_sci_flash_kernel"?  We have a sample project which essentially does what "F2837xS_sci_flash_kernel" does with the addition of a timeout. If timed out, we continue on to our Application Code. So basically, whenever we bootload, we will overwrite what we previously had stored in Flash. Is this possible?

Summary:

int main()

{

  SCIA_AutobaudLock() // time out after 5 seconds if nothing is received or autobaud lock fails

  SCI_GetPacket() 

  DFU_CPU1

  ...

  Execute Application Code here if timed out

}

  • Daniel,

    Thank you for contacting us here.

    We received similar questions from an FAE - Is that for you?  

    Yes, it is possible to map the flash kernel to flash so that you don't have to load it every time.  Yes, you can let it timeout if there is no need of an upgrade.

    Please take a look at https://www.ti.com/lit/pdf/spruiu9 

    Let us know if you have any questions.  As explained in the document, we have an example that you can use to develop yours as needed. 

    Thanks and regards,

    Vamsi  

  • The example given in the User's Guide involves the TMS320F28004x. Is there an example for TMS320F28377S or specifically an example that will work with the TMS320F28379D LaunchPad (LaunchXL-F28379D)?

  • Or could you provide instructions or point me to a guide that would explain how to change the .cmd file / project configuration to work with TMS320F28377S or TMS320F28379D LaunchPad (LaunchXL-F28379D)?

  • Daniel,

    This FAQ gives an overview of how to change a RAM based application to flash based application: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/878674/faq-flash---how-to-modify-an-application-from-ram-configuration-to-flash-configuration 

    Regarding specific example for F2837x: I assigned this post to kernel expert to help you further.

    Thanks and regards,
    Vamsi

  • Daniel, 

    You can refer to the F2837xS SCI flash kernel example - it's located at C2000Ware_x_xx_xx_xx > device_support > f2837xs > examples > cpu1 > F2837xS_sci_flash_kernel > cpu01 

    To map the kernel to Flash, you can add a flash build configuration. Right click on the project, go to Build Configurations > Manage > New and add a configuration - you can name it CPU1_FLASH or whatever you want. You can copy the project settings of the RAM configuration. Set this as the active configuration. 

    You can then add a flash based linker command file from C2000Ware (C2000Ware_x_xx_xx_xx > device_support > f2837xs > common > cmd) in the project and have it only included for the Flash build configuration. You can exclude the RAM linker command file in the Flash configuration and exclude the Flash linker command file from the RAM configuration. 

    Make sure all initialized sections of memory are mapped to Flash, and that all of them are aligned to 128 bit boundaries - the generic Flash linker command file should already do this. In the project settings, add _FLASH as a predefined symbol. 

    If you are using both Flash banks, the Flash API can be executed from one bank to program/erase the other bank. If you are only using one Flash bank, the Flash API needs to be copied to RAM. For an example of how to copy the Flash API to RAM, please refer to the linker command file of the flash programming example for F2837xS.

    Thanks, 

    Anu