博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2010年11月19日
阅读量:4051 次
发布时间:2019-05-25

本文共 706 字,大约阅读时间需要 2 分钟。

(原创)Main函数之Isr_Init分析
2010-06-08 12:21

初始化中断服务程序。当中断产生时,处理相应的程序
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/

你可能感兴趣的文章
libcurl异步请求+http长连接池
查看>>
2440机器码
查看>>
c语言内存分配
查看>>
结构体file_operations
查看>>
TFT LCD
查看>>
双向链表
查看>>
二级指针与指针数组的关系
查看>>
Linux系统限制
查看>>
C预处理器标识
查看>>
static用法总结
查看>>
const用法小结
查看>>
malloc、free与内存碎片
查看>>
C语言实现库函数
查看>>
Tarball的管理
查看>>
变量在Linux中的应用
查看>>
对象的深拷贝
查看>>
父组件访问子组件属性--方法--
查看>>
组件访问--子组件访问父组件(很少用)
查看>>
获取子组件插槽里面的 数组----数据
查看>>
es6模块化---记录
查看>>