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.

TMS570LC4357: CRC Semi-CPU Mode IRQ not working

Part Number: TMS570LC4357

I try to verify the flash on the Hercules TMS570LC43x LaunchPad Development Kit and I read "Using the CRC Module on Hercules™-Based Microcontrollers".
I downloaded the example mentioned in the report. I tried the example "LC43 CRC SW Full-CPU and Semi-CPU Modes" and it works fine.
But I want to use "LC43 CRC Semi-CPU Mode IRQ" and this does not work. I never reach the while(1) and looping forever with the following output:
[CortexR5] Start CRC Calculation in Semi CPU Mode (IRQ based)
Checking CRC for address 0x00000000, 4 elements
P
Checking CRC for address 0x00000020, 3242 elements
P
Checking CRC for address 0x00006570, 97 elements
P
Checking CRC for address 0x00006878, 68 elements
P
Checking CRC for address 0x00000000, 4 elements
P
Checking CRC for address 0x00000020, 3242 elements
P
Checking CRC for address 0x00006570, 97 elements
P
Checking CRC for address 0x00006878, 68 elements
P
...and so on
The interesting thing is, the function crcSemiCpuMode() returns (checked with the Debugger), but nevertheless the while(1) part after that function call is never reached.
Why does this example not work? Is there something to configure?
  • Hello,

    I tested the project, it works.

  • Ok I will re-check this, but in my debug session, a breakpoint on this while was never reached.

    Two questions:

    1. Did you also use the Hercules TMS570LC43x LaunchPad Development Kit with the unmodfied project? Since your sections are on different addresses and also also the number of elements is different. Which compiler version did you use?
    2. Maybe I have missunderstood how this check works, but now I think I get it better: This checks run forever, and if a checksum error on any of this flash section appears a callback notifies me about that?

  • Hello,

    I compiled the project with TI v16.9.11.LTS. I used LC43x launchpad and did not modify the CCS project. The project was originally compiled with TI v15.12.2.LTS.

    If any error, it will print "F" instead of "P" (test passed).

  • Thanks for clarifying on the compiler usage

    But regarding my second Question: Could you please elaborate how this check works or confiirm that my understanding is correct: This checks runs forever in the background, and if a checksum error on any of this flash section appears a callback notifies me about that (in this implementation this is printing an "F")?

  • Please refer to the section 3.6 in the application note:

    www.ti.com/.../spna235.pdf