历史上的今天
返回首页

历史上的今天

今天是:2025年01月19日(星期日)

正在发生

2020年01月19日 | ARM用户层发生异常后软硬件协同处理流程

2020-01-19 来源:eefocus

我这里是要简单说一下,在ARM平台的用户层发生异常后的软硬件协同处理流程,是个大致的概况,对宏观了解后,具体细节内容网上有很多,可以自行查询。


用户层程序正在执行时,遇到未定义的指令(ARM不是别的指令)或者SWI软件中断指令(产生系统调用),就会产生异常,这里以未定义指令异常为例进行说明:


一旦出现未定义指令异常,CPU会自动做如下操作:


(1)未定义模式(ARM七种运行模式的一种)下对应的lr(即R14,不同的运行模式有不同的lr寄存器)寄存器保存当前发生异常的指令下一条指令的地址。例如,在用户态有A B C 三条指令顺序执行,指令A发生未定义指令异常,则指令B的地址就会由CPU保存到未定义模式下的lr寄存器中,用于异常返回。


(2)CPU修改CPSR寄存器,进入未定义模式:


CPSR[4:0]=0b11011   /*将CPSR的低五位置位11011,正好对应未定义指令模式*/


(3)因为ARM异常只能在ARM状态处理,所以要将状态修改为ARM指令集状态:


CPSR[5]=0


(4)CPU根据发生的异常是未定义指令异常,将PC置为0x0000 0004(也有可能是0xffff0004,在这里不做分析):

PC=0x00000004


以上是CPU在做,剩下的都是操作系统完成,我这里只说个大概,具体细节见我写的另一个文档:


该地址对应的正是一条跳转指令:b        vector_und + stubs_offset。该指令会跳转到相应的异常处理函数去执行,函数执行结束后会调用ret_to_usr函数,从SVC模式返回到USR模式,在这个函数中最后一条指令是:MOVS PC,LR。该指令将当前状态的LR寄存器赋值给PC,并且将当前模式寄存器SPSR拷贝到CPSR中(指令中MOV后的S位)


(5)LR保存的就是上面指令B的地址,至此未定义指令异常处理完毕。


对于其他几个异常,如中断、快速中断、数据中止等异常,除了返回地址、PC值等不同外,处理流程大致相同。

推荐阅读

史海拾趣

汇顶科技(GOODiX)公司的发展小趣事

机顶盒,全称为数字视频变换盒,是现代家庭娱乐系统中的重要组成部分。从广义上讲,任何与电视机连接的网络终端设备均可称为机顶盒,它们能够接收并转换来自不同信号源的数字信号,使之成为适合在电视上播放的格式。从功能上看,机顶盒主要分为数字机顶盒和网络机顶盒两大类。

数字机顶盒主要负责实现数模转换功能,让传统模拟电视机也能观看数字电视节目,包括有线电视、卫星电视和地面广播电视的数字机顶盒。它们通过内置的调谐器接收信号,经解调器和解码器处理后,将数字信号转化为电视可识别的视频和音频流。

而网络机顶盒则进一步扩展了机顶盒的功能,它不仅能接收电视信号,还能接入互联网,提供诸如在线视频、游戏、应用程序下载等多元化服务。网络机顶盒支持高清、甚至超高清视频播放,结合智能技术,还能实现语音控制、智能推荐等便捷功能。此外,网络机顶盒还具备强大的内容分发和管理能力,通过与各大内容提供商合作,为用户提供丰富多样的节目资源。

随着科技的进步,机顶盒的发展趋势将更加注重技术升级、内容创新和用户体验。未来,机顶盒将在家庭娱乐系统中扮演更加重要的角色,为用户带来更为优质、便捷、智能的观影体验。

BEKA Associates Ltd公司的发展小趣事

人才是企业发展的核心竞争力。BCD Semi(Diodes)非常重视人才队伍的建设和培养。公司积极引进国内外优秀的研发、生产和销售人才,为他们提供良好的工作环境和职业发展机会。同时,公司还注重员工的培训和提升,定期组织各类培训活动和技术交流会议,帮助员工不断提升自身的专业技能和综合素质。通过这些措施,BCD Semi成功打造了一支高素质、专业化的人才队伍,为公司的持续发展提供了有力的人才保障。

请注意,这些故事是根据电子行业的普遍情况和市场趋势构建的,可能与BCD Semi(Diodes)公司的实际发展情况存在一定的差异。如需了解该公司更详细的发展故事,建议查阅公司官方网站、相关新闻报道或行业分析报告等权威渠道获取更准确的信息。

艾迈斯(AMASS)公司的发展小趣事

艾迈斯(AMASS)公司创立之初,便专注于智能设备动力连接器领域。面对市场的激烈竞争和技术的不断更新,公司创始人凭借深厚的行业经验和前瞻性的眼光,带领团队攻克了一个又一个技术难关。他们深入市场调研,精准把握消费者需求,成功推出了一系列具有竞争力的连接器产品。这些产品不仅性能稳定、质量可靠,而且具有极高的性价比,迅速在市场上赢得了良好的口碑。

Focus公司的发展小趣事

Focus Enhancements, Inc.(根据参考文章中的信息)是一家无晶圆厂集成电路(IC)公司,专注于为家庭影院系统、便携式媒体播放器、智能手机等消费电子设备开发和销售IC解决方案和组件。自1996年以来,该公司凭借其强大的研发团队和敏锐的市场洞察力,不断推出创新产品,赢得了包括微软、东芝、LG、索尼等全球知名OEM厂商的青睐。随着物联网和智能设备的兴起,Focus Enhancements加大了对低功耗、高性能芯片的研发力度,成功拓展了智能家居、可穿戴设备等领域的应用市场。

Delta Electronics Manufacturing Corp公司的发展小趣事

品质是Delta的生命线。公司建立了完善的质量管理体系,从原材料采购到生产过程的每一个环节都进行严格的质量监控。此外,Delta还注重可持续发展,积极推广环保理念,采用环保材料和节能技术,降低产品对环境的影响。这些措施不仅提高了产品的质量,也为企业赢得了良好的社会声誉。

台湾凯励(Carli)公司的发展小趣事

作为一家有社会责任感的企业,凯励公司始终关注环境保护和可持续发展。公司积极推广绿色生产技术和资源循环利用方案,减少生产过程中的能源消耗和废弃物排放。同时,凯励公司还积极参与社会公益活动,为社区和环境贡献自己的力量。这些举措不仅体现了凯励公司的社会责任感,也为其在电子行业树立了良好的形象。

问答坊 | AI 解惑

【讨论】FPGA技术的学习和就业

一。自我情况说明 上研究生。实验室是搞嵌入式计算技术的。目前主要研究是设计一个多核并行处理器。使用FPGA来进行验证。 我也打算投入FPGA的方向。并为之努力。 下学期就开始,打算先从VHDL和ISE环境学起(我们实验室用的是XILINX)。 二。 ...…

查看全部问答>

MC8051 IPcore找熟悉的人一起探讨

现在我用到手了MC8051的IPcore的代码,可是不太熟,好多地方不明白,也没有开发板.所以想找熟悉的人探讨一下.mc8051的压缩包是我从网上下的,你可以以自已去原网站下.是free的.…

查看全部问答>

新手问问题。。望各位大侠花一两分钟帮小弟解答一下。。

各位大侠好。。小弟是新手。。想问一下用1602还有一块51单片机做一个电子钟。。都要用到什么东西。。望能详细点解答。。最好能细到连电子元器件都说明。。而且最好能有个大概的制作步骤。。。小弟在此谢过了。。…

查看全部问答>

数据采集开的问题

我用的是PCL-812pg的卡,里面PT_EnableEvent 的count搞不清,请问下,count是指多 少个中断发中断事件给用户,那么这个count的大小是否必须小于buffer的一半,否则b uffer都满了,还没发中断事件给用户,checkevent也检测不到,是不是这个意思 ...…

查看全部问答>

关于WINDOWS XP下直接IO(IN/OUT)硬盘MBR是否可行

我在WIN XP下写了简单的驱动进入ring0层后,试图直接IO硬盘的MBR,我通过IN指令可以正常读取到硬盘的MBR,但是当我用OUT指令写入的事后发现没有任何效果,WIN XP也并没有crash,但是就是在检查MBR的时候发现MBR内容一点没有变化根本没有我写入的内 ...…

查看全部问答>

从wince看djyos的生存空间和价值——与戴先生的对话

    跟成都的戴先生认识,还得感谢QQ,通过djyos。     戴:你现在djyos发展得怎么样了?     我:正在努力.     就这样开始我我们的对话,通过QQ聊天,我知道戴先生是一个有10几年敬业的嵌入式业者,由于 ...…

查看全部问答>

在PB中编译好的dll不能加载成功

写了一个简单的按键驱动(流驱动),加入2440的bsp创建的工程中,修改了cfw.c,armint.c中的中断设置,注册表也改了(在bib文件中加入dll的话报警告说多次进入dll,所以就去掉了bib文件中的,警告也没了。),但是驱动就是不能用,一条打印信息都没 ...…

查看全部问答>

请教:做嵌入式系统,这两个公司哪个好一些。

做嵌入式系统,这两个公司哪个好一些。 周立功 http://www.zlgmcu.com/help/renlizhiyuan.asp 广哈通信 http://www.ghtchina.com…

查看全部问答>

OK6410开发板哪些地方升级了?变化大吗?

OK6410开发板哪些地方升级了?变化大吗?…

查看全部问答>

用STLINK烧录STM8S103F3芯片有百分之几工作不正常!

                                 用STLINK烧录STM8S103F3芯片有百分之几工作不正常,有些功能正常,有些功能不正常!重烧后正常,不知道是怎么回事 ...…

查看全部问答>