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.

TMS320F28388D: HWBIST micro run stuck after SCI RX INT Trigger

Part Number: TMS320F28388D
Other Parts Discussed in Thread: C2000WARE

Tool/software:

Hi I am now integrating the HWBIST micro run with CPU1 of our system, I use the Diagnostic library with the version C2000Ware_5_02_00_00.

In the beginning, the system is working(at least the working count in TimerISR looks good), but after the SCI FIFO RX INT is triggered, then the system looks crashed during the HWBIST micro run. The figure below is when the system crash.

And I have checked all the LSRAM of CPU1, the memory from RAMLS0 to RAMLS5 and RAMLS7 looks corrupted like the figure below (RAMLS6 is used for CLA program), they are all the data with same pattern(
0000 0000 0000 0000 0000 0000 0000 0000 081B 0000 0000 001F E946 003F 0001 0001)

Do you have any idea or hint of this?

  • And I also added the debug variable in  SCI FIFO RX ISR, the ISR is actually triggered and finished.

  • If you disable the HWBIST does the issue go away (i.e. the SCI FIFO RX interrupt on it's own doesn't cause any issues)? What about the other way around (i.e. disable SCI FIFO RX and keep HWBIST)?

    Does the SCI FIFO RX ISR run and finish before the HWBIST run that fails? Or does the SCI interrupt occur during the HWBIST run?

    Whitney

  • I did some tests below:
    1. Disable the HWBIST, and the SCI FIFO RX can be executed and finished successfully.

    2.Disable the SCI FIFO RX INT, and keep the HWBIST, then the HWBIST works well, it didn't stuck in the micro run.

    3. Enable the SCI FIFO RX INT and add a variable to control if execute the "STL_HWBIST_runMicro". In the beginning the "STL_HWBIST_runMicro" would not be executed, and I send the SCI data to trigger the SCI FIFO RX INT once(the ISR runs and finished ), and change the variable to execute the "STL_HWBIST_runMicro", then the  "STL_HWBIST_runMicro" stuck happens.

    Looks like SCI FIFO RX INT once triggered and then execute the "STL_HWBIST_runMicro", the stuck situation occurs.

    This is the ISR handler of the SCI FIFO RX INT.

  • Thanks for the additional info. Can you tell where it's getting stuck? Is the device getting reset or is it stuck in a loop somewhere? The 0x0003FE946 value in the screenshot you shared happens to be the address of the Boot ROM illegal instruction handler.

    The most common cause of STL_HWBIST_runMicro failing to return is an issue with the context restore routine that is placed at address 0. The fact that you are able to call STL_HWBIST_runMicro() successfully at some points makes me think the setup (placing "hwbist" section in your cmd file, doing the memcpy, etc...) is probably be okay, but maybe something is overwriting it at some point?

    Whitney

  • Oh yes, you are correct, I have found there is a bug relative to the SCI RX ISR which will overwrite the data on 0x00000000, I fixed it and it works. Really thanks for the clue!!!