本文共 706 字,大约阅读时间需要 2 分钟。
初始化中断服务程序。当中断产生时,处理相应的程序 void Isr_Init(void) { pISR_UNDEF=(unsigned)HaltUndef; pISR_SWI =(unsigned)HaltSwi; pISR_PABORT=(unsigned)HaltPabort; pISR_DABORT=(unsigned)HaltDabort; rINTMOD=0x0; // All=IRQ mode rINTMSK=BIT_ALLMSK; // All interrupt is masked. } pISR_UNDEF=(unsigned)HaltUndef; 就是将函数HaltUndef的地址强制转换为unsigned类型,赋给指针pISR_UNDEF。由pISR_UNDEF定义知, #define pISR_UNDEF (*(unsigned *)(_ISR_STARTADDRESS+0x4)) pISR_UNDEF为相应的异常中断地址。 函数名称代表函数的地址,即将HaltUndef函数的地址赋值到_ISR_STARTADDRESS+0x4中。 当发生中断时,系统会去pISR_UNDEF定义的地址里取出中断函数的地址也就是HaltUndef的地址,然后执行. 就相当于当发生中断时,执行HaltUndef函数. void HaltUndef(void) { Uart_Printf("Undefined instruction exception!!!\n"); while(1); } 表示处理相应中断。 |
转载地址:http://zssci.baihongyu.com/