历史上的今天
返回首页

历史上的今天

今天是:2025年02月09日(星期日)

正在发生

2018年02月09日 | ARM程序跳转到中断服务例程的功能实现

2018-02-09 来源:eefocus

    在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程序的启动代码。一段晦涩的汇编代码很不方便,比较容易出错。


推荐阅读

史海拾趣

富捷(FOJAN)公司的发展小趣事

富捷电子的发展离不开政府的大力支持和帮助。近年来,公司多次获得地方政府颁发的荣誉和奖励,如“制造业三年倍增先进集体”等。这些荣誉不仅是对公司过去成绩的肯定,更是对未来发展的期许和激励。在政府的政策扶持下,富捷电子将继续加大研发投入、优化产品结构、提升市场竞争力,为电子元器件行业的国产化替代和高质量发展作出更大贡献。

EUDYNA公司的发展小趣事

在光通信领域,EUDYNA凭借其10Gb/s速率的光调制集成DFB激光器模块,取得了重要突破。这款模块采用了先进的封装技术和内置光学隔离器,确保了信号的稳定性和可靠性。EUDYNA的这一创新,不仅提高了光通信的传输速度和效率,也为整个行业树立了新的标杆。

ATOP_Technologies公司的发展小趣事

ATOP Technologies自1989年创立以来,以创新、智能、整合、坚持为核心价值观,初期主要专注于工业自动化领域的产品研发。在创立初期,公司面临着资金紧张、市场竞争激烈等挑战。然而,凭借着对技术的深刻理解和对市场的敏锐洞察,ATOP Technologies逐步在工业自动化领域站稳脚跟,并开始积累起一批忠实的客户。

大毅科技公司的发展小趣事

作为一家有社会责任感的企业,大毅科技始终关注环境保护和可持续发展。公司积极推行绿色生产理念,采用环保材料和节能技术,减少生产过程中的废弃物排放和能源消耗。同时,大毅科技还积极参与公益事业和社区活动,回馈社会。这些举措不仅体现了公司的社会责任感,也赢得了社会的广泛赞誉。

以上是关于大毅科技在电子行业中的5个发展故事概述。这些故事展示了大毅科技在创立、生产基地拓展、品质认证与国际化、技术创新与研发以及社会责任与可持续发展等方面的努力和成就。

CINCH公司的发展小趣事

CINCH公司作为一家在电子行业颇具影响力的企业,始终致力于技术研发和产品创新。某年,公司研发团队成功开发出一种新型的连接器技术,该技术不仅提高了数据传输速度,还增强了设备的稳定性和耐用性。这一技术突破迅速引起了市场的关注,CINCH公司趁热打铁,推出了一系列基于新技术的产品,迅速占领了市场份额,实现了业务的快速增长。

C-TON Industries公司的发展小趣事

在电子行业中,产品质量的稳定性是企业生存的关键。C-TON深知这一点,因此从公司成立之初就高度重视品质管理。公司建立了一套严格的质量检测体系,确保每一件产品都符合高标准的质量要求。此外,C-TON还不断引进先进的生产设备和技术,提升生产效率和产品质量。这些努力使得C-TON的产品在市场上获得了良好的口碑,也为其赢得了众多忠实客户。

问答坊 | AI 解惑

第五届全国大学生机器人

好东西!同大家分享下!…

查看全部问答>

【专贴】各位需要什么资料?

本帖最后由 paulhyde 于 2014-9-15 09:37 编辑 各位需要什么资料或者关于什么方面的内容,可以跟帖说说~~~~ 看看大家能不能帮到你~~~ (一般在需要在CNKI期刊、万方等数据库处需要付费下载的资料我都可以下载到~~~如果有看中的论文、期刊等也可 ...…

查看全部问答>

模电设计不得不看——模拟电路设计原则

主要内容: 衡量设计质量的标准 常用模拟电路设计方法 电磁兼容和认证 PCB布局布线技巧等…

查看全部问答>

如何用C语言编程能让单片机读入通过USB输入的信息还有一个关于红外线发射的问题

用什么方法能让单片机(8051F320)读入 通过 USB输入到 单片机FLASH中的信息? 还有用什么语句能实现单片机通过红外线发射管 发射编码?…

查看全部问答>

winio初始化失败

,用winio本身提供的例子,对系统并口进行操作,可是初始化总是不成功,而将vb代码编译成可执行文件,则不存在此问题.怎么解决啊? …

查看全部问答>

wince里BT发ping封包用什麽函数阿?

具体要求是:在wince里先启动BT,搜寻固定的BT裝置,然后发ping封包,size為1K。 我已经搜到BT装置拉,但是不知道用什麽函数去发ping封包,我搜到的BT装置没有IP地址,所以不知道怎麽发. 请各位高手帮帮忙! …

查看全部问答>

申请LM3S8962 评估套件

 希望看得见,摸得着。…

查看全部问答>

RT-Thread 2010年11月上海开发者会议总结

11月7日,上海江场三路上海软件开源委员会上海软件促进中心 在发出RT-Thread 11月上海开发者会议消息的短短一周内,大家热情高涨,当天会场就有总计28名人员的参与!回忆前两年,开发者会议最低谷时仅有ffxz与shaolin两人参加的场面,感慨万千 ...…

查看全部问答>

基于单片机和LM35的温度测控

我们现在在做单片机课程设计,由于是第一次做项目很多东西都还不懂,望各位大哥大姐多多指教哈。 用LM35和ADC0809基于单片机STC89C52检测室内温度,为何在数码管显示数值是乱码。…

查看全部问答>

Failed to match a default incude file。

怎么回事,我是菜鸟,刚刚入门,多多指教了。…

查看全部问答>