请教:开中断就跑飞
s3c44b0de板子,硬件软件以前都调好了,我拿来跑一遍程序。关中断,顺序执行都好好的;开中断就跑飞,在
rINTMSK =~(BIT_GLOBAL|BIT_EINT2);开中断代码处就跑飞了。
查中断地址,
void __irq frame_isr(void)中断函数入口地址frame_isr为0x0c00,8e80
pISR_EINT2 = (unsigned)frame_isr;
#define pISR_EINT2 (*(unsigned *) (_ISR_STARTADDRESS+0x7c))
#define _ISR_STARTADDRESS 0xc7fff00 //GCS6:64M DRAM/SDRAM
查0x0c7fff7c地址处值为0x0c00,8e80
查中断向量入口
VECTOR_BRANCH
ldr pc,=HandlerEINT0 ;mGA H/W interrupt vector table
ldr pc,=HandlerEINT1 ;
ldr pc,=HandlerEINT2 ;
反汇编:
VECTOR_BRANCH [0xe59ff0bc] ldr pc,0x0c0000e4 ; = #0x0c000438
0c000024 [0xe59ff0bc] ldr pc,0x0c0000e8 ; = #0x0c000420
0c000024 [0xe59ff0bc] ldr pc,0x0c0000ec ; = #0x0c000408
0x0c0000ec 处的值为
0x0c0000ec [0x0c000408] dcd 0x0c000408 ....
??是不是发生中断 中断向量就没有跳到中断函数执行?(用armmul软件仿真也得到上面结果)
初始化代码 就是samsung开发板源码,硬件调过的,实在搞不懂