2034 views|0 replies

2015

Posts

0

Resources
The OP
 

Locating DSP illegal interrupts [Copy link]

I use eZdsp F2812 to write a program that use CpuTimer0 interrupt. This interrupt consists of many call function.
This program is store in external memory since is a very long code.
I encounter this error when run it:

interrupt void ILLEGAL_ISR(void)   // Illegal operation TRAP
{
  // Insert ISR Code here

  // Next two lines for debug only to halt the processor here
  // Remove after inserting ISR Code
  asm("          ESTOP0");
  for(;;);

}

If I remove half of the program, then it will run perfectly.
Any idea what is wrong? Is it because my stack size is not enough? My stack size is 0x800.

Appreciate your help.
Thank you.

Regards,
Lin

Hi Lin,

I've found that following ISR handler is easier for debugging such problems. When the CPU halts on ESTOP0 or place the program counter (PC) on NOP and continue executing. The ISR handler should exit and jump(return) to the location that caused TRAP ISR to generate:

Regards, Mitja

void interrupt ILLEGAL_ISR(void)    // Illegal operation TRAP
{
    // Insert ISR Code here
    // Next two lines for debug only to halt the processor here
    asm ("  ESTOP0");
    // in order for code to halt also when not in debug mode
    asm ("  B   $,UNC");
    // place PC here to continue the execution
    asm ("  NOP");
}

This post is from DSP and ARM Processors
 

Guess Your Favourite
Just looking around
Find a datasheet?

EEWorld Datasheet Technical Support

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
快速回复 返回顶部 Return list