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.

TMS570LS3137: svcEntry when I do a Bootloader

Part Number: TMS570LS3137

Hello everyone! I have a question about the Bootloader application. When I make a bootloader, with a RTOS .bin the program jumps to an scvEntry when I send the RUN command through CAN. I'm not sure why I have this entry, The bootloader is succesfully because I can to use with another .bin without RTOS. 

The bootloader record the bytes from the .bin, but can't jump to the application.

See the Memory Browser picture.

RTOS.zip

I leave the program that I am using.

Thank you!

  • Can you share the sys_intvecs.asm of your bootloader?

  • For ARM Cortex-R4/5 microcontroller, the Program Counter (PC) always pointers two instructions beyond the current executed instruction.

    For example , after the software (SVC) interrupt is received, the CPU branches to 0x08 (SVC or software interrupt):

    b   svcEntry   ---> branch to svcEntry defined in bootloader

    In order to use the SVC interrupt service routine, you need to change "b   svcEntry" of your bootloader to:

    b #20018  ;;0x20018 = 0x20020 - x8

    The branch offset must take account of the prefetch operation, which causes the PC to be 2 words (8 bytes) ahead of the current instruction.

    The destination is PC + offset = 0x08 + 0x08 + 0x20018 = 0x20028  --> which is the address of Software instruction in Application's exception Vector table.