资料介绍
作者:sunheshan
1、 异常
M3支持15个系统异常,240个外部异常IRQ,其中NMI,复位,hardfault三个异常的优先级固定不可更改且是负数,其余的都可编程。
M3的异常分为抢占优先级和子优先级。
2 、关于中断优先级
M3中,除了复位,NMI以及硬fault有固定的优先级,其他优先级都是可编程的。原则上,CM3支持3个固定的高优先级和多达256级的可编程优先级,并且支持128级抢占。但是,绝大多数CM3芯片都会精简设计,以致实际上支持的优先级数会更少,如8级,16级,32级等。它们在设计时会裁掉表达优先级的几个低端有效位。
如使用3个位表示优先级则配置寄存器的结构如图所示:
在M3中,优先级分为两个部分,一个是抢占优先级优先级,一个是子优先级。在计算抢占优先级和子优先级的有效位数时,必须要知道:
1、芯片实际使用了多少位来表达优先级
2、优先级组是如何划分的。
举个例子,如果只使用3个位来表达优先级([7:5]),并且优先级组的值是5(从比特5处分组),则得到4级抢占优先级,且在每个抢占优先级的内部有2个子优先级,
当然也可设置全部是抢占优先级没有子优先级
在编写应用程序的时候,只需要系统所需要的中断分组和组内优先级即可,直接调用m3提供的API函数即可。
在CM3中,允许使用3个位到8个位来表达优先级。为了确定具体的位数,可以先往一个优先级寄存器中写0xFF,再读回来,读出多少个1,就表示使用多少个位来表达优先级。
关于中断配置基础
每个外部中断都在NVIC的下列寄存器中“挂号”:
1、使能与除能寄存器
2、悬起与“解悬”寄存器
3、优先级寄存器
4、活动状态寄存器
5、异常掩蔽寄存器(PRIMASK, FAULTMASK以及BASEPRI)
另外,下列寄存器也对中断处理有重大影响:
1、向量表偏移量寄存器
2、软件触发中断寄存器
3、优先级分组位段
其他异常配置寄存器
系统Handler控制及状态寄存器SHCSR用法fault,总线fault以及存储器管理fault都是特殊的异常,因此给它们开了小灶。它们的使能控制都是通过SHCSR来实现,各种faults的悬起状态和大多数系统异常的活动状态也都在该寄存器中。
中断控制及状态寄存器ICSR
在大多数情况下,它们对于应用软件都没有什么用处,只有悬起位对应用程序常常比较有参考价值。
异常屏蔽寄存器
PRIMASK用于除能在NMI和硬fault之外的所有异常,它有效地把当前优先级改为0(可编程优先级中的最高优先级)。该寄存器可以通过MRS和MSR以下例方式访问:
1、关中断
MOV R0, #1
MSR PRIMASK, R0
2、开中断
MOV R0, #0
MSR PRIMASK, R0
此外,还可以通过CPS指令快速完成上述功能:
CPSID i ;关中断
CPSIE i ;开中断
FAULTMASK更绝,它把当前优先级改为-1。这么一来,连硬fault都被掩蔽了。使用方案与PRIMASK的相似。但要注意的是,FAULTMASK会在异常退出时自动清零。
掩蔽寄存器虽然能一手遮天,却都动不了NMI,因为NMI是用在最危急的情况下的。因此系统为它开出单行道,无需挂号只是不要迟到。当NMI激活时,“谁都是省略号,唯独是你不得了,第一优先谁比你重要”!试想,如果NMI被连接到系统的掉电报警线上,且系统是体外循环机的电源管理器……如果因为中断被除能就视而不见,则会使体外循环机因断电而失能,体外循环序列可以被意外终止,病人的生命也将丢失。
Active状态寄存器
每个外部中断都有一个活动状态位。在处理器执行了其ISR的第一条指令后,它的活动位就被置1,并且直到ISR返回时才硬件清零。由于支持嵌套,允许高优先级异常抢占某个ISR。然而,哪怕中断被抢占,其活动状态也依然为1。
3、使用中断
对于应用程序存储在ROM中,不需要更改异常服务程序。
建立优先级组
为该中断指定优先级
使能该中断
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- Cortex-M3技术参考手册下载 8次下载
- Cortex-M3权威指南中文版资源下载 0次下载
- Cortex-M3工作模式、异常与中断介绍资料下载
- 关于Cortex-M3的中断优先级描述资料下载
- ARM Cortex-M3 MCU 的 I2C DMA操作和中断资料下载
- Cortex-M3与Cortex-M4对比资料下载
- ARM cortex-M3 异常处理分析资料下载
- Cortex-M3和Cortex-M4 Fault异常应用之基础知识资料下载
- 《ARM Cortex-M3权威指南》笔记资料下载
- Cortex-M3存储器映射资料下载
- Cortex-M3寄存器组资料下载
- Cortex-M3(M0)汇编-启动代码分析资料下载
- Cortex-M3 NVIC与中断控制资料下载
- 基于Cortex-M3的MP3播放器设计资料下载
- Cortex-M3技术参考手册免费下载 180次下载
- 强大的Arm® Cortex®-M3内核(下) 670次阅读
- Cortex-M3中断优先级的相关知识 2233次阅读
- 什么是中断架构 667次阅读
- 美信cortex-m3内核芯片的启动过程及连接文件介绍 1319次阅读
- 进入OS前的两步:PendSV(任务切换) 1606次阅读
- 基于FPGA搭建ARM Cortex-M3 SoC软核 2335次阅读
- 如何定制一颗ARM Cortex-M3 SoC软核 1975次阅读
- Cortex-M0处理器内核异常中断简介 4465次阅读
- Cortex-M3内核的异常中断 2497次阅读
- 米尔科技ARM Cortex-M3教程指南 2628次阅读
- 米尔科技NXP LPC1857 LPC1850 Cortex-M3开发板概述 4170次阅读
- Cortex-M3处理器中断和FreeRTOS中断优先级配置 6920次阅读
- 学习Cortex-M3时,我们必须要知道必要的缩略语 4342次阅读
- STM32的Cortex-M3中断异常处理 7958次阅读
- DesignStart Cortex-M3软件开发网上课程 5729次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多