Technical discussions related to Analog Devices DSPs (including Blackfin, TigerSHARC, SHARC and ADSP-21xx DSPs).
|
I am using adsp14060 and I am developing the software on vdsp2.0++. I have a problem with the IRQ1, on receiving the interrupt the processor don't branch it to my isr. I have found that the problem is because of my ldf file. This is my simple C progarm: void main() { interrupt(SIG_IRQ1,irq1handler); while(1) idle; } void irq1handler() { toggle0(); } void toggle0() { int i; for(i=0;i<500000;i++) set_flag(SET_FLAG0, CLR_FLAG); for(i=0;i<500000;i++) set_flag(SET_FLAG0, SET_FLAG); } when I compile with following in my ldf file, the irq1 interrupt get stored at 0x2061c <ldf> seg_RstIVT { TYPE(PM RAM) START(0x00020005) END(0x000200ff) WIDTH(48) } seg_KernCode { TYPE(PM RAM) START(0x00020100) END(0x000205ff) WIDTH(48) } seg_rth { TYPE(PM RAM) START(0x00020600) END(0x00020694) WIDTH(48) } seg_init { TYPE(PM RAM) START(0x00020695) END(0x000209ff) WIDTH(48) } </ldf> that means the interrupt IRQ1 __lib_IRQ1I get stored at wrong location. That why it doesn't go to my isr. But when I make following changes in ldf file <ldf> seg_rth { TYPE(PM RAM) START(0x00020000) END(0x000200ff) WIDTH(48) } ^ seg_KernCode { TYPE(PM RAM) START(0x00020100) END(0x000205ff) WIDTH(48) } seg_init { TYPE(PM RAM) START(0x00020695) END(0x000209ff) WIDTH(48) } </ldf> the interrupt irq1 get stored at 0x2001c and in simulator it goes to my isr. But when I download the program to my board, it hangs Remember I have removed segment RStIVT from my ldf file. Hope you have understood my problem. Please help Regards Liyju __________________________________________________ |