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.

TMS320F280037C: TMS320F280037C

Part Number: TMS320F280037C
Other Parts Discussed in Thread: C2000WARE, UNIFLASH

Hi

I am going to write a bootloader using CAN. I don't want to use TI ROM bootloadeer. Is there are any document for this application

1. How to define flash range in bootloader and application

2. How to jump to program from bootloader to application.

3. How erase/program/read flash data for checksum calculation

Thanks

  • Hi Hung,

    When you say "don't want to use TI ROM bootloader", do you mean that this custom CAN bootloader will be loaded to the device first through CCS?

    There exists an example for a secondary bootloader for the F280039C device within C2000Ware (C:\ti\c2000\C2000Ware_5_01_00_00\driverlib\f28003x\examples\flash).

    This example borrows from the ROM bootloader to stream in data on the CAN-A Bus. Do you wish to use a different starting bitrate or CAN Bus for your example?

    Thanks and regards,

    Charles 

  • Hung,

        Please clarify why you don't want to use our bootloader. This will help us to understand your needs better and provide more targeted answers. 

    1. How to define flash range in bootloader and application

    This is dependent on your application needs. We cannot comment on this.

    2. How to jump to program from bootloader to application.

    Not sure I understand the question. You need to determine the starting address of your application and then branch to it after bootloading is complete.

  • Hi Charles

    1. Yes, we want to program our own bootloader to MCU using uniflash or CCS.

    2. Bitrate of CAN Bus is 500K

  • Customer has their own firmware update flow

    #1. Just for example, address of flash is from 0x0000 to 0xFFFF, MCU run the code started @ 0x0000. We want 0x0000 to 0x1FFF for bootloader and 0x2000 to 0xFFFF for application.

    #2. Yes, I would like to know how to branch to application from bootloader. Take #1 as example, how to branch to address 0x2000

  • Hi Charles

    Which project under C2000ware should be looking?

  • #1. Just for example, address of flash is from 0x0000 to 0xFFFF, MCU run the code started @ 0x0000. We want 0x0000 to 0x1FFF for bootloader and 0x2000 to 0xFFFF for application.

    That is not the correct address for flash. Please refer to Table 7-1. Memory Map in page 195 of www.ti.com/lit/SPRSP61 for the correct address range.

    You still haven't clarified why you don't want to use our bootloader. without knowing the reason for that, we cannot help you effectively.

  • Hi Hung,

    Project is under C2000Ware in the following locations:

    DCAN Flash Kernel (C:\ti\c2000\C2000Ware_5_01_00_00\driverlib\f28003x\examples\flash)

    DCAN Host Programmer (C:\ti\c2000\C2000Ware_5_01_00_00\utilities\flash_programmers\dcan_flash_programmer)

    Also for reference, here is the application note (www.ti.com/lit/SPRAD51).

    You will have to modify the projects to hit 500K for the CAN Bus. If any further questions let me know.

    Thanks and regards,

    Charles

  • Hareesh

    1. I said that the address is for example only. You just need to show me how to do it in linker file.

    2. I do not understand that customer must use TI ROM bootloader, no other alternative?

  • Hi Hung,

    When we say that you 'must use TI ROM bootloader', that is how the download for CAN Flash kernel (also known as secondary bootloader) takes place. Once that kernel has downloaded, it re-initializes the device using the already available ROM bootloader. Alternative ways to download the kernel is through another peripheral (ex. SCI-A, CAN-B) or CCS (loading the .out), but once the kernel function begins it will need to interact with the ROM bootloader.

    For an example of placing the address in the linker file, you can look to the existing example referenced above for F280039C Flash kernel.

    I hope this is a bit clearer, if not let me know.

    Thanks and regards,

    Charles