ARM Cortex-M4中断_cortex-m4 wfi与中断pending_plingx的博客-程序员宅基地

技术标签: MCU_STM8_STM32  ARM  

1. ARM Cortex-M4异常(exception)与中断(interrupt)

Reset :  上电or热复位会进入Reset中断。
NMI    :  外设信号触发or软件触发不可屏蔽中断。永远是使能的且优先级固定为-2.NMI不可以被屏蔽或者在activation时被其他exception阻止。且除了Reset外无exception可以抢占。
HardFault : 在exception处理过程中出现了错误,或者不能够被其他的exception机制所管理,则触发HardFault中断。有固定的优先级-1,比其他可配置优先级的exception有更高的优先级。
MemManage:            
BusFault:            
UsageFault:            
SVCall  : Supervisor call由SVC指令触发。在有OS的环境中,应用可以通过SVC指令来访问OS内核的functions和设备驱动。
PendSV: 为系统级服务提供的中断驱动请求,当无其他exception时使用PendSV用于上下文切换。
SysTick: 当system timer到达0时,会产生SysTick exception.在OS环境中用做系统的system tick节拍。

Interrupt(IRQ):由外设产生的exception信号,或者是软件生成的请求。在系统中,外设使用中断来用于与处理器进行通信。

2.与异常中断相关的寄存器

Exceptions and registers
  Exception Number IRQ Number Priority En/Disable Active or Set/ClrActive Pending/Set Pending Clr Pending
Reset 1 - -3 PermanentEn      
NMI 2 -14 -2 PermanentEn   ICSR ICSR
HardFault 3 -13 -1 PermanentEn      
MemManage 4 -12 SHPR SHCSR SHCSR SHCSR SHCSR
BusFault 5 -11 SHPR SHCSR SHCSR SHCSR SHCSR
UsageFault 6 -10 SHPR SHCSR SHCSR SHCSR SHCSR
- 7-10 - - - - - -
SVCall 11 -5 SHPR PermanentEn SHCSR SHCSR SHCSR
- 12-13 - - - - - -
DebugMonitor         SHCSR    
PendSV 14 -2 SHPR PermanentEn SHCSR ICSR ICSR
SysTick 15 -1 SHPR SYST_CSR SHCSR ICSR ICSR
WWDG 16 0 NVIC_IPR NVIC_ISER/ICER NVIC_IABR NVIC_ISPR NVIC_ICPR
PVD 17 1 NVIC_IPR NVIC_ISER/ICER NVIC_IABR NVIC_ISPR NVIC_ICPR
... ... ... ... ... ... ... ...

3.异常的状态

Inactive   :  未激活的,无中断发生
Pending  :  挂起的,有中断产生,但是由于一些原因(中断Enable未打开、CPU正在处理别的更高级的中断等)未进入active阶段
Active     :   激活的,exception正在被CPU处理,但是还未处理完。
Active and Pending  :  exception正在被CPU处理的同时,此中断源又被触发了。

4.异常与中断的响应过程

 

 

 

5.参考资料:

(1) ARM cortex-M4Processor(r0p1) Technical Reference Manual

(2) ARMv7-M Architecture Reference Manual

(3) STM32F3_F4_L4_Cortex-M4 Programming manual

(4) Cortex-M4 Devices Generic User Guide

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/plingx/article/details/86564302

智能推荐

docker容器中 nginx 502 Bad Gateway_502 bad getaway 排查_NOTE赵超的博客-程序员宅基地

查看错误日志:2021/06/09 10:22:25 [error] 24#24: *11 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.50.2, server: localhost, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8084/", host: "192.168.50.188"2021/06/0_502 bad getaway 排查

机械自动化期刊推荐_科学技术与工程好中吗_TIM邓肯的博客-程序员宅基地

交叉期刊推荐 :很杂 高技术通讯(基金支持),科学技术与工程(核心) 机器人类核心期刊就一个:机器人_科学技术与工程好中吗

Python Web笔试面试题【基础加提升篇】_EUNC的博客-程序员宅基地

来源:github: https://github.com/taizilongxu/interview_python本地地址:/home/yuyh/下载/面试题/python web开发面试.doc目标:尽量掌握这里的全部的知识点1.python函数的参数是怎么传递的?这里考查的是python的数据类型问题:可变数据类型和不可变数据类型(类型是属于对象,而非变量)可变对象:list, ...

微信小程序如何自动弹出提示微信授权?_weixin_33981932的博客-程序员宅基地

我想在一进入页面的时候就进行判断提示并且弹出提示授权!请问该如何处理比较合理wx.authorize({})//可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.record" 这个 scopewx.getSetting({success(res) { if (!res.authSetting['scope.record']) { ...

linux下安装mysql 5.1笔记_weixin_33725515的博客-程序员宅基地

刚才在linux下配置apache,现在配置mysql不知道为什么,通过源代码编译mysql总是不成功,索性直接用二进制,方便在[url]http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.30-linux-i686-icc-glibc23.tar.gz/from/http://mysql.cdpa....

VB环境下的矢量绘图控件Vecad介绍_测量老覃(旧号)的博客-程序员宅基地

更多文章请访问:http://www.SurMap.com 最近为了在程序中添加绘图功能,需要找一个矢量绘控件,在网上找了很久,国内也有几家正在编这个东西的公司,但他们的产品不是我们这等人能用得起的,比如MicroDraw的开发版要三万多一套,我简直是闻风而逃。另一个梦想绘图控件,虽然不算完美,但编得也不错,不过也要六千多一个,而且有没有限制也不清楚,因我根本就没有继续谈下去的兴趣了

随便推点

FreeTextBox 控件在.net中的使用方法收集(转)zzmdegm_freetextboxcontrols_zzmdegm的博客-程序员宅基地

版本: FreeTextBox 3.1.1 ASP.NET1.1 1.下载 FreeTextBox 3.1.1 (released 2005/11/08) http://www.freetextbox.com/downloads.aspx 2. 安装 FreeTextBox 3.0以上版本均支持内部模式,即图片资源和javascript都集成在dll中, 本文_freetextboxcontrols

通过JS实现两个页面之间的通信_js 两个页面之间通信_Joker_Ye的博客-程序员宅基地

今天要给大家说的是两个不同页面之间的通信,通过一个拖拽demo来模拟;首先,写好基础的拖拽代码: window.onload = function() { var oDiv = document.getElementById('div'); oDiv.onmousedown = function(ev) { var ev = wind_js 两个页面之间通信

Modern OpenGL从零开始 - 多个帧缓存Framebuffer绘制到同一个铺满屏幕四边形Quad上_opengl framebuffer绘制到平面上-程序员宅基地

1 目的/需求举个例子,假如我在一个帧缓存中专门绘制了Phong光照模型的物体,在另一个帧缓存中专门绘制了Pbr光照模型的物体,在第三个帧缓存中只绘制了只有单一颜色的物体,等于现在我有三个离屏渲染的帧缓存,我需要把他们都绘制到铺满整个屏幕的同一个四边形中,同时保证深度测试,即在同一场景中绘制不同光照模型的物体,同时,保证在物体绘制重叠区域,深度测试正确!How to do ?2 方法2.1 比较笨比的方法新建一个新的帧缓存用于存储合并多个帧缓存的结果,同时新建一个shader,以每一个帧缓存的_opengl framebuffer绘制到平面上

Android anr的一次分析_loadlibrary anr-程序员宅基地

本次的分析只是在我遇到的一次anr的情况的分析,由于anr的内容较长,只贴出比较重要的部分,anr的日志文件路径在/data/anr/traces.txt以下是anr的头部部分----- pid 440 at 2021-04-25 14:22:54 -----Cmd line: com.yzip.pikaBuild fingerprint: 'Android/linaro_arm64/linaro_arm64:7.1.2/N2G47D/root03271009:eng/release-keys_loadlibrary anr

视频去除杂音教程_weixin_33877885的博客-程序员宅基地

1.简述:用录屏专家录制的教程视频有杂音,现想去掉其中杂音。原理:1将视频中声音提取出来;2用Audtion软件去除杂音;3再将去除杂音后的文件与原视频合成软件:录屏专家V2016正版(其它版本亦可)Adobe Audition CS5.5 (其它版本亦可)2.提取声音:在录屏专家中右键点击某一视频文件,在弹出的右键菜单中选择ExE/Lxe后期配音窗口中点击导出声音文件。导出..._视频声音有杂音怎样处理

[USACO14MAR]浇地Watering the Fields_weixin_30289831的博客-程序员宅基地

题目描述Due to a lack of rain, Farmer John wants to build an irrigation system tosend water between his N fields (1 <= N <= 2000).Each field i is described by a distinct point (xi, yi) in the..._watering the fields usaco java

推荐文章

热门文章

相关标签