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.

CCS/TMS570LS0432: need to warm reboot from application to bootloader.

Part Number: TMS570LS0432


Tool/software: Code Composer Studio

In my application I implemented a Modbus register for warm-booting to the bootloader. When modbus writes a magic number to this register the application should do a warmboot into the bootloader where it waits for a command from the upgrade program on my PC.

I have not found how to successfully do a warm-boot or any other transfer to the bootloader from my application.

I've seen posts that say to set bits 14 and 15 in systemREG1->SYSECR. That did not work. My app hung looping in prefetchEntry.

Our devices will be mounted in inconvenient and oft times dangerous locations. We cannot ask our customers to push a button on the device. They must be able to do a firmware upgrade over RS-485.

Your assistance is appreciated.

    ken

  • Hi Ken,

    This is the correct approach to reset your device:
    systemREG1->SYSECR = (0x10) << 14;

    Please check the Instruction Fault Address Register (IFAR) which holds the address of instructions that cause a prefetch abort, and check the Instruction fault status register (IFSR) which holds status information regarding the source of the last instruction abort.

    BTW, what is the operating mode of the task which writes value to SYSECR? SYSECR can not be written in user mode.