这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » ARM嵌入式系统中断向量表的动态配置2

共1条 1/1 1 跳转至

ARM嵌入式系统中断向量表的动态配置2

菜鸟
2007-12-03 15:55:11     打赏

}

//读取向量C函数,no代表中断号

unsigned long int GetVector(unsigned char no){

unsigned long int *pVectorTable;

pVectorTable=((unsigned long int *)(VECTOR_TABLE+(no<<3)));

return *(++pVectorTable);//返回中断处理程序入口地址

}

使用上述初始化代码和向量设置函数,除复位向量外,其它所有中断向量都可以指向了在RAM数据区中的新向量表,并给定一个统一的中断编号。中断服务程序可以放在任何模块文件中编译连接,不需要修改原向量表代码,但在打开中断使用中断服务例程前必须使用C函数SetVector()设置中断向量。

4 结论

本文提出的中断向量表配置策略和实现方法,简便高效,仅比标准处理方法增加一条指令的执行时间。当把ARM的C初始化汇编代码中所有中断源(包括扩展的内外部中断源)的向量都指向了新向量表,并统一编号,此后编写任何中断服务程序几乎不需要修改汇编代码,C初始化代码完全可以对C程序员隐藏起来,并可以像在X86体系下一样动态地设置和修改中断向量。




关键词: 嵌入式     系统     中断     量表     动态     配置    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]