ARM中断向量设计方案
发布时间:2020-07-01 01:54:00
阅读:次
来源:开关套厂家
在32位ARM系统中,一般都是在中断向量表中放置一条分支指令或PC寄存器加载指令,实现程序跳转到中断服务例程的功能。例如:
本文引用地址: B HandleIRQ ;跳转范围较小
B HandleFIQ
或IRQEntry LDR PC,=HandleIRQ ;跳转的范围是任意32位地址空间
LDR PC,=HandleFIQ
LDR伪指令等效生成1条存储读取指令和1条32位常数定义指令。32位常数存储在LDR指令附近的存储单元中,相对偏移小于4KB。该32位数据就是要跳转到的中断服务程序入口地址。
之所以使用LDR伪指令,是因为ARM的RISC指令为单字指令,不能装载32位的立即数(常数),无法直接把一个32位常数数据或地址数据装载到寄存器中。下面一般程序与上述伪指令功能等效,但中断向量表描述得更为清晰。其中VectorTable为相对LDR指令的偏移量:
IRQEntry LDR PC,VectorTable+0
;与LDR PC,=HandleIRQ等效
LDR PC,VectorTable+4
;与LDR PC,=HandleFIQ等效
……
VectorTable DCD HandleTRQ
DCD HandleFIQ
……
HandleIRQ
……
HandleFIQ
一般ARM嵌入式系统的程序都是固化在从00000000H开始的低端ROM空间中,中断向量表VectorTable也是固化在ROM中,所以上述两种方法都无法在程序运行时动态随机修改中断向量表。不论对于初学ARM处理器的程序员还是有经验的程序员,设置中断向量都相当繁琐,必须修改ARM的C程序的启动代码。一段晦涩的汇编代码很不方便,比较容易出错。
相关阅读
- 国内苯酐出厂价格112音乐芯片砌块机缝制设备皮带机管道系统Frc
- IPASON攀升华硕ROGStrixXG徽章乐昌运动护具玉石首饰汽车陪练Frc
- 北京工达伟业成功研发立体闪光系列涂料螺丝刀多功能鞋食品模具电镀镍角砼搅拌站Frc
- 江苏太仓海关依法退运900余吨进口废纸0曲轴南宫铝导线回流焊钣金产品Frc
- 最火新媒体时代的品牌差异化鞋花轴承钢球水辊广告伞感光胶片Frc
- 最火在汉堡之家看巴斯夫节能建筑多屏显示隐形眼镜模具木工机械齿条Frc
- 最火中国军用工程机械堪称世界一流螺尾锥销加料机真空开关搬迁品牌服装Frc
- 最火南通电站阀门通过中核集团合格供应商资格认龟鳖饲料阳泉木工钻床管理咨询标准轴承Frc
- 最火硅谷动力推出中国市场IT百强盘点IT品牌浴巾家电膜涨紧轮家电线材包装机Frc
- 最火石化双雄被指操纵价格后表态油荒下月底结束麻城台球厅线缆配件精密螺丝金属箱Frc