历史上的今天
返回首页

历史上的今天

今天是:2025年03月14日(星期五)

正在发生

2020年03月14日 | ARM cortexM4 异常处理(1)

2020-03-14 来源:eefocus

在嵌入式开发中,尤其是在ARM的程序开发中,对异常的处理起着至关重要作用,那么cortexM4内核是如何管理异常的呢?我们将分几个小篇来讲解异常,今天先来了解下基本知识


异常状态

每一中异常总共有四种状态:

非激活态:异常没有被激活且没有被挂起。


挂起态: 异常等待处理器服务,一个外设的中断或者软件中断请求可以改变 相应中断的状态到挂起态,中断其实也是一种异常。


激活态: 处理器正在处理异常且还没有完成。


激活且挂起态:这种状态显然从字面意思理解就是激活态和挂起态的组合,即 处理器正在服务于异常时,有来自于同源的挂起异常


异常类型

Reset 复位:异常模式将复位看做是一种特殊类型的异常。


NMI 非屏蔽中断: 非屏蔽中断是除复位以外最高优先级的异常,NMI永久使能,且优先级为-2,NMI不能被其他异常从激活态屏蔽或阻止,也不能被其他异常抢占,除过复位。


HardFault: 硬件故障异常的发生,是因为异常处理错误,或者因为一种异常不能被其他异常机制管理,有固定的优先级-1,

MemMange:内存管理故障异常,是与内存保护相关的故障,

BusFault:总线故障异常是指令和数据内存处理时相关的故障,可能来自于内存系统中,检测到总线故障。


UsageFault: UsageFault异常是指令执行相关的故障,包括未定义的指令,非法未对齐的存取访问,指令执行的无效状态,异常返回错误,除数为0.


SVCall: SVCall 是被SVC 指令触发的一种异常,在操作系统环境下,应用程序可以使用SVC指令进入操作系统内核功能和设备驱动。


PendSV: PendSV是中断驱动的系统级服务请求,


SysTick: SysTick异常是系统定时器递减到0时候产生的,软件也可以产生SysTick异常,在操作系统环境下,处理器可以使用SysTick作为系统的滴答时钟。

Interrupt(ISR):这个大家应该都很熟悉,就是我们经常用的外设的中断,也可以是软件请求的中断,在系统中,外设使用中断和内核通信交流。各种异常的属性总结如下表:

0?wx_fmt=jpeg

0?wx_fmt=jpeg

异常处理

异常处理有三种:

Interrupt Service Routines(ISR)中断服务程序:主要处理中断

Fault Handlers:主要处理HardFault, MemManage Fault,UsageFault,BusFault,

System Handlers: 主要处理NMI,PendSV,SVCall,SysTick等

推荐阅读

史海拾趣

Analytic Instruments Corp公司的发展小趣事

随着技术的不断成熟和产品线的不断丰富,Analytic Instruments Corp开始积极拓展市场。公司通过与行业内的知名企业和研究机构建立合作关系,成功地将产品打入多个重要的应用领域。同时,公司还加大了品牌宣传力度,通过参加行业展会、举办技术研讨会等方式,提升了品牌知名度和影响力。

Eagle-Picher公司的发展小趣事

Eagle-Picher公司的历史可以追溯到1843年,最初是由Edgar和他的兄弟Stephen J. Conkling在俄亥俄州辛辛那提成立的,专注于生产商业涂料颜料。随着时间的推移,公司经历了多次转型和变革。1847年,Stephen离开公司后,Edgar引入了新的合伙人威廉·伍德,并更名为康克林木业公司。随后,公司在不同的业务领域内扩展,直到1922年,Eagle-Picher正式进入电池市场,开始了其电子行业的历程。

A/D Electronics Inc公司的发展小趣事

随着产品线的不断丰富,A/D Electronics Inc开始积极拓展国内外市场。公司通过与全球知名电子品牌建立战略合作关系,成功将产品打入国际市场。同时,公司还积极参加国际电子展会,展示其最新技术成果和产品,进一步提升了品牌知名度和市场影响力。

富芯森美(FUXINSEMI)公司的发展小趣事

随着技术实力的不断提升,富芯森美开始积极拓展市场。公司凭借优质的产品和专业的服务,成功打入消费类电子、安防、工控、汽车电子等多个领域。同时,富芯森美还注重品牌建设,通过参加国内外知名展会、举办技术研讨会等方式,不断提升品牌知名度和影响力。这些努力使得富芯森美在电子行业中逐渐崭露头角,成为行业内的佼佼者。

Aavid Niagra公司的发展小趣事

Aavid Niagra公司在成立之初,面临着资金短缺、市场竞争激烈以及技术壁垒等多重挑战。然而,创始人凭借对电子散热技术的深刻理解和前瞻性的市场洞察,成功研发出了一款高效能的散热解决方案,赢得了行业内的初步认可。通过与几家大型电子设备制造商的合作,公司逐渐在市场上站稳脚跟,为后续的发展奠定了坚实基础。

Horizon Electronics Enterprises Group公司的发展小趣事

在21世纪初,随着数字技术的兴起,Horizon Electronics Enterprises Group(以下简称“Horizon”)由一群对电子技术充满热情的工程师创立。公司初期专注于研发高性能的半导体芯片,以解决当时市场上对高速、低功耗芯片的迫切需求。通过不懈努力,Horizon成功研发出了一款具有突破性的芯片产品,该产品在数据处理速度和能效比上远超同类产品,迅速获得了市场的认可。这一技术创新不仅为公司赢得了首批客户,也为后续发展奠定了坚实的技术基础。

问答坊 | AI 解惑

GSM基站的优化建设[推荐]

引用《移动在线》 GSM数字移动通信发展非常迅速,从早期规划的大区制,到后来的小区制,直到现在的微蜂窝、微微蜂窝,相对应的天线从早期架设在屋面铁塔上,到后来天线降到屋面上,直到现在要把天线设置在屋面下的外墙侧面上。所有的这些变化都说 ...…

查看全部问答>

LM3S 系列单片机休眠与深度休眠应用笔记(二)

1.4 深度睡眠模式设置步骤 处理通过调用WFI 指令即可进入睡眠模式,但要进入深度睡眠实现最低的功耗需要正确配置,其步骤如下: 1. 使能ACG 自动时钟门控。这样睡眠模式和深度睡眠模式的外设时钟可以单独控制。 2. 配置寄存器DCGC0、 DCGC1 和DC ...…

查看全部问答>

高分求一源码

哪位哥们有sirf atlasIII的BSP呀?,发一份给我好吗?我的QQ是648433648,邮箱:sunboyljp@163.com,不弟不胜感谢!…

查看全部问答>

wince怎么编译这么慢

我用WINCE60的platform builder去编译一个IMAGE,每次都很慢,。。。。…

查看全部问答>

cadence16.2学习.pdf

很不错的资料 ,希望对大家有所帮助…

查看全部问答>

求教数据存储问题

MSP430F449中我想把一个整形的数A存入某地方 掉电也不丢失! 作为以后程序运行的参数。 应该是放在FLASH里面吧?或者建议是在哪儿? 怎么写和读? 应该读写各一句话就能搞定的吧?不是例子里面那么复杂!! 求给个例子或者指个方向 谢谢 ...…

查看全部问答>

请问广州哪里有零售漆包线、绝缘纸和绝缘漆的地方??

本帖最后由 paulhyde 于 2014-9-15 09:00 编辑 请问广州哪里有零售漆包线、绝缘纸和绝缘漆的地方?? 昨天下午走了一下午,传说中有这些东西的解放中,都没看见有卖忘各位朋友指出哪里有得买  …

查看全部问答>

在同一空间如果存在多个ZigBee网络,终端设备如何辨别并加入属于自己的网络?

请斑竹指教,谢谢!   [ 本帖最后由 lvhoujun 于 2011-9-19 22:52 编辑 ]…

查看全部问答>

关于C2000芯片的FLASH锁死----以及解决办法

FLASH锁死了这是为什么,有没有办法解锁。为什么会有类似下面这几种报错: Read status value 0x0001 from symbol PRG_status(24x系列) ADC Calibration not complete, check if device is unlocked and recalibrate.(2833x系列)   答:FL ...…

查看全部问答>

关于施密特触发器的直流信号处理

想问一下各位大侠,施密特触发器对于直流信号是怎么处理的?(我仿真过,发现如果输入一个电压介于两个门限电压之间,那输出电压和输入电压是成比例的,谁能告诉我为什么啊?)…

查看全部问答>