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.

TMS320F28P650DH: Finding root of illegal trap

Part Number: TMS320F28P650DH

Hi Experts,

My customer is seeing illegal operation issues. Their program would stuck in 

void Interrupt_illegalOperationHandler(void) during the power test, we are trying to find out the which address is triggering the trap.
 
This guide C28x Interrupt FAQ  suggests adding a return to see where the code comes from. Can we just look at the RPC registers to achieve the same?
 
The RPC poitns to a address (0x2e202) that neither in RAM nor FLASH.
image.png
 
Does this means that the CPU triggers the illegal trap when it fetch from 0x2E202?
 
If yes, 0x2E202 itself is a invalid address from program, the problem would be where the CPU branch to 0x2E202. Is it possible to trace back this based on the content in the stack?
Below is the data in the stack (SP=0x3B)
image.png
Regards,
Hang
 
 
  • Hi Hang,

    I will get back to you with a response on this tomorrow.

    Best Regards,

    Delaney

  • Hi Hang,

    That is odd, I don't think that 0x0002_E202 is any memory element in the memory map. You have continuous refresh in CCS toggled on, right?

    To look at the stack, the below table shows how the elements will be saved during the context save that happens before the Interrupt_illegalOperationHandler() function is branched to. 

    If I'm understanding this table correctly, then the return address should be 0xB9378 which is an address in flash bank 1. Can you check if any of their program memory is allocated there?

    Also, have you tried adding the return statement?

    Best Regards,

    Delaney