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.

canBootloader and nowECC

Other Parts Discussed in Thread: TMS570LS3137, NOWECC, HALCOGEN

Dear all,

First of all, I am using TMS570LS3137 HDK. I am trying to create a simple canbootloader program which will be located at the end of the flash bank 1. It will be available while main program is running. Main program will jump to this bootloader project, when it  is needed, and it will update the flash. I am expecting that after a hardware reset, updated main program will be directly executed from the flash. 

For computer side, I implemented a simple code in MATLAB. It takes the text file from CCS and sends the data through CAN communication to the microcontroller. In order to obtain the text file, I am using ARM Hex Utility with boot mode by GPIO port,16-bit mode and TI-TXT as output  format.

I also implemented the canbootloader project which takes the data through CAN port and updates the flash. I used F021 Flash API library btw.

However, after updating the flash and also after a hardware reset, the updated code didn't work and microcontroller stuck in Undefined exception. I am thinking the reason is that I didn't update the ECC. Because of that the data in the ECC and the flash are different, it causes that exception. Am I right or any other ideas?

So, I decided to use nowECC and also get ECC and update it in the same way. In the user manual, it is written that it can use ASCII hex format which is almost the same format with TI-TXT. But I got an error that it is not in a valid format. You can have a look at the screenshot below.

Thank you for your help 

  • Btw I want to note that Flash ECC Enable is unchecked in Halcogen.
  • The TMS570LS3137 device does not have ECC enabled by default. If the code is not enabling ECC, then not having the ECC programmed is not the problem. Can you verify that the code programmed into bank 0 is correct? You might just single step through the code starting with the reset vector at address 0.

    NowECC does not understand TI-TXT. You can use armhex to create Intel (-I), Motorola (-m) or Tektronix (-x) formats. NowECC understands these three formats.
  • I found the mistake in my canbootloader code. So it was not about ECC. Thanks about it.
    On the other hand, I used ASCII hex format for nowECC, instead of TI-TXT. In the user manual, it is written that nowECC can accept ASCII hex format but it only accepts 3 formats that you noted.