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.

TMS570 - using XDS510USB+ and nowflash 3.42, application don't run

Other Parts Discussed in Thread: NOWECC, HALCOGEN

Hi,

I'm using the XDS510USB+ Emulator and nowflash 3.42 to flash my application on the Targetboard with the TMS570S31.

The next screenshot shows the Configuration of nowflash.

After a Reset of the Targetboard my Application don't run. When I using nowflash again, only selected the Command Verify, the following error occurs.

The funny thing is, when I'm using a Lauterbach debugger  to flash my application, it works.

Can somebody please help me to find out what the problem is?

Regards

Marco

  • Marco,

    I am not exactly sure what is going on here, but something in your code that you programmed onto the device is preventing the code that nowFlash downloads into the device RAM from executing correctly.

  • Marco,

    Even if we have already solved this problem offline, here a common answer to this problem and some more background information for you.

     

     

    The problem reported by the customer had two causes: The simple one was missing ECC data for the Flash Content.

    In HALCoGen Version 3.01.01 ECC for flash is activated by default, this requires ECC data to be generated with nowECC.

    ECC data for the TMS570LS controllers can be generated with the following command line: nowECC.exe -i "input.out" -o “ecc.out” -r4 -F021 16M_ADD

     

    This alone shouldn’t lead to the verification failures the customer faced into.

    These were caused by the ECC logic, which has corrected the data word on address 0x0C. But, because of the missing ECC data this correction was faulty, the read data from the flash was corrupted and thus nowFlash detected a mismatch in this word.

    Actually the nowFlash tool disables ECC before it starts any operations on the flash in its device setup routine to prevent such situations. But because of a safety feature of the Cortex-R4 CPU, the TCM-HEC (Tightly Coupled Memory – Hard Error Cache) which stores the “corrected” data word in a very small cache (64 Bit), the CPU has read the “corrected” data word from the small cache instead of the flash cell itself and thus nowFlash detected a mismatch in this word even if it was flashed correctly.

    Best Regards,

    Christian