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.

F28335 firmware upgrade

Other Parts Discussed in Thread: CONTROLSUITE

Folks,

As the development work approaching the end, I began to develop DSP firmware upgrade feature. The DSP board connected to a PC with a serial link. When upgrading process starts, the PC will transmit firmware data to DSP, after all data have been received, DSP starts erase/program/verify internal FLASH memory by invoking TI FLASH API V2.10. Though the process is clear, still some points remain unclearly to me.

First of all, what kind of image file shall I transmit from PC to DSP? The compiler and linker generate .out file, shall I further process it and how?

Secondly, what are the FLASH sections shall I erase and program into? I saw F28335 has below internal FLASH map, where Sector A has largest address, I don't want write into CSM address by mistake.

       0x338000 - 0x33FFFF,    /* Sector A */
       0x330000 - 0x337FFF,    /* Sector B */
       0x328000 - 0x32FFFF,    /* Sector C */
       0x320000 - 0x327FFF,    /* Sector D */
       0x318000 - 0x31FFFF,    /* Sector E */
       0x310000 - 0x317FFF,    /* Sector F */
       0x308000 - 0x30FFFF,    /* Sector G */
       0x300000 - 0x307FFF     /* Sector H */

Thanks for your feedback

Tim

  • Tim,

    This application note should help for modifying your project so that it can boot from flash: http://www.ti.com/lit/pdf/spra958

    Additionally, the F2833x.cmd command linker files in controlSUITE under device_support for 2833x in  /DSP2833x_common/cmd/ directory (and the flash example in controlSUITE device support examples) show how the linker file and project reserve space for/program the CSM addresses.

     This application note can show you how to convert your project to be serial bootable (it also includes the kernel app that is first boot loaded with the flash API calls so that you can then load your app code to program into flash: http://www.ti.com/lit/pdf/spraaq2

    Note that it is written for the 281x and CCSv3.3 though so there will need to be some minor changes, although the basic concepts are the same.

    The .out file will have to be converted to a .hex file which is serial-bootable. 

    For more flash programming resources, See the C2000 Flash wiki page: http://processors.wiki.ti.com/index.php/Category:Flash_for_C2000

  • Chrissy,

    I have a perfect project which can be booted from flash correctly. I use CCS flash programmer plug-in to do firmware 
    upgrade at this moment.
    My objective can be described as simple as below steps:
    1. compile and link application, e.g., app.out
    2. convert app.out to app.hex
    3. download the app.hex from PC to DSP via serial link (I use SCI-C)
    4. erase/program/verify FLASH by invoking FLASH API
    5. Reboot the system
    Right now step 2 and step 4 still remains unclear to me.
    Thanks
    Tim

  • The app note I referenced above, spraaq2 - explains how to do all of the steps you have listed.

    Regarding #2, see section 3.1 which tells you how to prepare your application code and how to use hex2000.exe and FileIOshell.exe to convert your file to a .hex file.

    Regarding step #3 above - SCI boot only works via SCI-A, unless you program a custom bootloader into your OTP which uses SCI-C to bootload SCI code instead. (on a standalone system not connected via emulator).

    Step #4:  In the example code included with spraaq2 (do a search for spraaq2 on TI website) - look at the CKFA project code - which invokes the Flash API functions to program the AppCode project into the flash.  Of course you will want to consult the Flash API documentation for your device to ensure you are using the correct API settings, etc.