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.

TMS570LS1227: Bootloader can't flash application .const part

Part Number: TMS570LS1227

I am using example TI bootloader, i changed sys_intvecs.asm

    .sect ".intvecs"
    .arm

;-------------------------------------------------------------------------------
; import reference for interrupt routines

    .ref _c_int00
    .ref _dabort
    .ref phantomInterrupt
    .def resetEntry

;-------------------------------------------------------------------------------
; interrupt vectors

resetEntry
        b   _c_int00
undefEntry
        b   undefEntry
        b   #0x10018
prefetchEntry
        b   prefetchEntry
        b   _dabort
        b   phantomInterrupt
        ldr pc,[pc,#-0x1b0]
        ldr pc,[pc,#-0x1b0]

application start address : 0x10020.

my applcation is freeRTOS based application, it's blink LED with a task.

I am creating hex file with Hex Utility. 

Application map has a .const part

Hex file .const part. (there is a ":020000040002F8" above the hex file.)

I am sending data via CAN, when address is come to 0x20F94 with data, I get a error. (FMSTAT = 0x30) INVDAT = 1, CSTAT = 1

When I delete the lines above, i can flash hex but it's not working, because these lines is "sys_vim" array that hold the interrupt functions addresses.

Bootloader HalCOGEN SAFETY INIT section

Application HalCOGEN SAFETY INIT section

ECC Enables on the RAM and FLASH tabs are turned off

Hang here

  • Hello Soner,

    The example code of the CAN bootloader doesn't support HEX format. Only binary file is supported.

    software-dl.ti.com/.../index.html

     

  • I upgrade the example code.

    I read HEX file and parse on C# desktop application.

    I find the start address, end addresses and size and then I find the sectors in between.

    I calculate the size of application, by summing data length of the lines with data in HEX file.

    This example, It start 0x10020 and finish 0x21194 so it erase sector 4-5-6-7.

    Bootloader starts receiving data. If there is a space between current address and next address, desktop application send next start address and continue send data.

    Everything it's okey until here.

    My problem is when I send the application code ".const" data, bootloader can not flash to MCU.

  • I think, I solved the problem.

    I am checking it now on the desktop application and then I'll take it to the bootloader side.