在32位ARM系统中,一般都是在中断向量表中放置一条分支指令或PC寄存器加载指令,实现程序跳转到中断服务例程的功能。例如:
IRQEntry 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程序的启动代码。一段晦涩的汇编代码很不方便,比较容易出错。
关键字:ARM 中断向量 设置方法
引用地址:
ARM中断向量两种设置方法
推荐阅读最新更新时间:2024-03-16 15:36
布局物联网再出招 ARM厚植资安防护战力
行动/物联网应用安全更有保障。瞄准行动、物联网装置资料安全防护需求,安谋国际(ARM)近期针对Cortex-A核心发布授信执行环境(TEE)认证计画,协助行动处理器厂确保设计安全性,并购并Offspark,以强化其物联网开发平台mbed传输层安全协议(TLS)和Cryptobox等功能,期从晶片设计源头建立起滴水不漏的防护机制。 ARM安全行销暨系统与软体部门总监Rob Coombs表示,目前并无任何产业认证机制,用以评估行动及物联网装置的安全性,因此即便晶片商、系统厂老王卖瓜,但终端用户仍可能暴露在资料外泄或遭骇客窃取的风险中。为克服此一问题,ARM正致力发展从Cortex-A硬体核心、Trust Boot到Trust O
[物联网]
ARM新一代多核技术可延长智能手机电池寿命
智能手机和平板终端配备双核与四核处理器已成为一种趋势。新一代应用处理器的CPU内核将会如何发展?在CPU内核领域占有绝对市场份额的英国ARM公司,公开了今后几年内的多核技术发展蓝图。其战略是通过组合使用大小各异的内核,同时兼顾高性能和低功耗。而且,异质内核的并用将成为在移动领域引进虚拟化技术的基础。
智能手机及平板终端用CPU内核开发商英国ARM公司2011年秋季发布的内核“Cortex-A7”,配备了很多乍一看有些奇特的功能。
Cortex-A7是一款用于100美元以下低价位智能手机的CPU内核。在设计时最注重降低耗电量和成本,因此其电力效率与美国苹果公司“iPhone 4”中配备的ARM现有CPU内核“Cortex-A
[嵌入式]
ARM Linux异常处理之data abort二
上文提到data abort的正常处理过程中,最终会调用do_DataAbort函数,下面分析一下该函数的处理过程。 do_DataAbort asmlinkage void __exception do_DataAbort( unsigned long addr, // 导致异常的内存地址 unsigned int fsr, // 异常发生时CP15中的寄存器值,见前文 struct pt_regs *regs) // 异常发生前的寄存器值列表 { const struct fsr_info *inf = fsr_info +
[单片机]
arm地址线的链接方式
zj2440访问sdram时,统一编址始终会发32位的地址寻址,由深入理解sdram之基本特性的理解这篇文章可知, 行地址bit ,列地址 bit , L-Bank选择 bit ,发现bit 并没有参与译码,这时为何呢? 因为没有必要,一张图就全都明白了 由上图可知,当屏蔽了地址线0,1后 0x00- 0x11即发送地址0x00或者到地址0x03, 其地址总线都是0x00,此时获取的都是从地址0x0至地址0x03上的数据 同理 0x100- 0x111即发送地址4或者到地址7, 其地址总线都是0x100,即地址4,所得到的都是从地址4至地址7的数据,按此类推
[单片机]
ARM 中断处理的安全性与高效性研究
引言 在嵌入式系统中常用的RISC处理器是ARM核,它具有体积小、功耗低、成本低、性价比高的特点。然而,不管是哪种型号的ARM处理器,也无论该嵌入式系统中是否有操作系统,中断处理,特别是IRQ中断,始终是必须的,而中断处理的核心问题是上下文的保存。能否安全而又高效地保存上下文,将影响一个嵌入式系统的性能与稳定。笔者对ARM处理器的普通中断处理、任务切换中断处理、可重人中断处理和基于优先级的可重人性中断处理的上下文保存技术进行分析与总结。为保证理论的正确性,核心的程序代码都经过了实验的检测。 1 系统中断处理简介 ARM处理器的中断主要有两种:IRQ普通中断和FIQ快速中断。快速中断本质上与普通中断没有太大的差别,它们在处理机制
[单片机]
苹果为什么放弃英特尔自主研发Arm架构处理器
在今年的苹果WWDC大会上,除了iOS 14、Mac OS系统之外,最受人关注的一件事便是苹果推出Arm处理器取代使用15年之久的x86处理器了。据悉,苹果公司已经在mac电脑上测试了基于Arm的芯片,发现其性能比英特尔的替代品有了很大提高。 而对于这一消息,其实苹果爆料大神Mark Gurman(目前是彭博社记者)早于上周二就有爆料,并且,他还分析到,由于苹果和英特尔之间的变化,Arm Mac已不可避免。 他提到,此前,苹果公司在一次活动中承认,自己忽略了Mac。根据当时来自TechCrunch的报道称,面对iPhone和iPad的成功,苹果高级副总裁利普·席勒在谈到苹果是否还关心Mac时说:“Mac在苹果公司具有重要而长远的未
[手机便携]
ARM汇编指令的一些总结
ARM汇编指令很多,但是真正常用的不是很多,而且需要认真琢磨的又更少了。 比较有用的是MOV B BL LDR STR 还是通过具体汇编代码来学习吧。 @ disable watch dog timer movr1, #0x53000000 //立即数寻址方式 movr2, #0x0 strr2, MOV没有什么好说的,只要掌握几个寻址方式就可以了,而且ARM的寻址方式比386的简单很多。立即数寻址方式,立即数要求以 # 作前缀,对于十六进制的数,还要求在#后面加上0x或者&。0x大家很好理解。有一次我碰到了&ff这个数,现在才
[单片机]
东芝微电子选择ARM OptimoDE技术用于高性能低功耗数字引擎
东芝微电子授权获得 ARM OptimoDe 技术,用于开发便携式数字设备 ARM 公司 今天宣布东芝微电子公司授权获得了 ARM OptimoDETM 数字引擎技术,将用于先进 SoC 设计的开发。 东芝微电子将使用 OptimoDE 框架和工具环境开发超低功耗的数字引擎,满足在便携设备中进行高精度数字数据处理的需求。 ARM OptimoDE 是一种针对高性能嵌入式信号处理应用的高度可配置超长指令字( VLIW )处理器架构。该处理器的运算和地址生成架构、存储和 I/O 带宽以及相关指令集可以无限制地调整以取得性能、功耗和面积的最佳平衡。通过使用 OptimoDE 技术,东芝微电子将能快速设计和配
[新品]