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: Unexpected illegal_isr on CPU2 when flashing from CCS, but works with UniFlash

Part Number: TMS320F28388D
Other Parts Discussed in Thread: UNIFLASH, C2000WARE

Tool/software:

Hi everyone,

I'm working on a project using the TMS320F28388D, and I'm currently debugging an issue when programming CPU2.

When I flash the application to CPU2 from Code Composer Studio (v12.8.0) and run it, the code immediately ends up in the illegal_isr. Looking at the disassembly, execution seems to hit an ITRAP0 opcode, which leads directly to the illegal ISR.

However, when I take the exact same .out file and program it using UniFlash (v8.7.0.4818), the application runs correctly and behaves as expected.

Some additional info:

  • CPU1 handles the boot process.

  • I'm using a custom linker command file (.cmd) for CPU2.

  • I'm using C2000Ware version 5.04.00.00.

  • CPU2 is loaded and started via CCS after CPU1 is already running.

I'm wondering:

  • Could the custom .cmd file for CPU2 be causing improper placement of code or vectors, leading to the ITRAP0 on boot?

  • Is there something different in how CCS vs UniFlash performs memory initialization or sets up the entry point?

Any suggestions or similar experiences would be appreciated!

Thanks in advance,

  • Hi Arturo,

    Do you see the same issue happening in CCS if you use an example from the SDK? Since you are using a custom linker file I assume you have your own set of custom code as well. If you can please check with a multi-core example from C2000Ware that can help narrow down the issue.

    Best Regards,

    Marlyn