中断程序设计 中断调试方面可以采用类似矢量中断动态处理方式,让中断对应的确定地址代码调转到RAM的固定地址处,定义一个函数指针指向该固定地址,就可以随时通过替换RAM固定地址处的代码,实现动态改变中断处理函数。 具体方法是: (1)将中断源函数指针定义在RAM中相对的固定地址,建立中断矢量表; voidSetInterrupt(U32vector,void(*handler)()){InterruptHandlers[vector]=handler;} (2)在程序中,调用具体某中断源的中断处理函数; 如:SetInterrupt(IIC_INT,IICWriteIsr); (3)在018处的IRQ或01C处的FIQ中断入口函数中,获取中断源、清除中断挂起标志、通过已定义的中断源函数指针进入用户具体某中断处理程序。 voidISR_IrqHandler(void){IntOffSet=(unsignedint)INTOFFSET;Clear_PendingBit(IntOffSet>>2);(*InterruptHandlers[IntOffSet>>2])()
【如果您还没有关注“公司名称”手机网站】