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.

TMS320F28335: Why the program enter interrupte subprogram when dont have any trigger source

Part Number: TMS320F28335


Dear TI partner

my customer adopt TMS320F28335 to develop product,they had finished  hardware test,and recently they are testing software, their system random enter interrupt void ILLEGAL_ISR(void) ,customer had check program longtime,and they also dont find the trigger source ;

can you help check the reason?

i will upload the screenshot of the core register value when i got the picture.

  • Cickey Xu,

    Is the customer using nested interrupts? If not, please observe the IER, IFR, and PIECTRL registers while the CPU is halted in ILLEGAL_ISR() to determine the interrupt source.

    If nesting is used, please make sure that the recommendations from this Interrupt Nesting article are followed. Failure to do so may result in instances of Spurious interrupts as documented in the Errata.

    If the nesting recommendations do not help, please use global counter variables to track the level of recursion for each ISR in the system. The counter variable is to be incremented on ISR entry and decremented on ISR exit. When halted in ILLEGAL_ISR(), the counters will help indicate if the device reached too deep of a recursion level, which would overflow the stack.

    -Tommy

  • Hello Cickey,

    in addition to the stack overflow, maybe check to to see if the code has function pointer tables.  Maybe, the index into the table is indexing past the last function pointer.

    Stephen

  • Dear tomy&Stehpen,

    customer used nested interrupts;please refer to below rigister value when system enter LLEGAL_ISR(void); 

    i will loop customer in the forum posts;

  • Cickey,

    It does look like an Illegal Instruction trap. Do you know if the CSM is used to secure memory on the device?

    -Tommy