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: Having two program images in Flash

Part Number: TMS570LS3137

Hi,

My customer is asking if TMS570LS3137 can have two separate program images in Flash.
He guesses reset vector needs to be re-mapped when the program switches.
Does the device support such feature?

BTW, Flash can be erased/programmed by a program in different Flash bank, correct?

Thanks and regards,
Koichiro Tashiro

  • Hi Koichiro-san,

    Yes, you can program two or more application images to TMS570 flash. But there is one reset exception vector table which is located at the beginning of the flash (0x00000000). It doesn't have VTOR register to relocate the vector table.

    BTW, Flash can be erased/programmed by a program in different Flash bank, correct?

    Yes. You can erase flash bank 0 by the code executing from bank 1, or erase flash bank 1 by the code executing from bank 0. 


  • It says, "It doesn't have VTOR register to relocate the vector table."
    How do I switch the reset exception vector table if there is no remapping feature?

  • I might misunderstand you. My understanding is that there is one bootloader and two applications in the flash. After reset, the bootloader is executed, it will jump to one of the applications based on the command from uart input or CAN message. 

  • I understand the jump function.

    If software type A and type B each have a vector table, I think it is necessary to remap the vector table to switch the software that contains the vector table.
    How can I switch software that contains a vector table if there is no VTOR register?

  • You have to jump to the application manually using:

         ((void (*)(void))g_ulApplicationAddress)(); 

    The first 20 bytes at the application address is the exception vector table of the application.

    But after reset, the exception vector table at 0x00000000 is called.