1 / 11
文档名称:

NVIC嵌套向量中断控制器.docx

格式:docx   大小:452KB   页数:11页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

NVIC嵌套向量中断控制器.docx

上传人:rdwiirh 2021/2/24 文件大小:452 KB

下载得到文件列表

NVIC嵌套向量中断控制器.docx

文档介绍

文档介绍:stm32 NVIC中断管理实现(直接操作寄存器)
  cortex-m3支持256个中断,其中包含了16个内核中断,240个外部中断。
stm32只有84个中断,包括16个内核中断和68个可屏蔽中断
(stm32f103上只有60个可屏蔽中断,f107上才有68个中断)
 
    中断是stm32很基础的一个功能,学会使用中断,才可以更好的使用其他的外设。理解stm32的中断,必须要先从stm32的中断优先级分组是怎么回事。要理解优先级分组,就要先理解什么是先占优先级和次占优先级。  
 
    先占优先级的概念等同于51单片机中的中断。假设有两中断先后触发,已经在执行的中断的先占优先级如果没有后触发的中断的先占优先级高,就会处理先占优先级高的中断。也就是说又有较高的先占优先级的中断可以打断先占优先级较低的中断。这是实现中断嵌套的基础。
     次占优先级只在同一先占优先级的中断同时触发时起作用,先占优先级相同,则优先执行次占优先级较高的中断。次占优先级不会造成中断嵌套(但是可以在挂起等待时插队)。 如果中断的两个优先级都一致,则优先执行位于中断向量表中位置较高的中断。还需要注意的一点是:这里的中断优先级高是指谁更接近0级,0级优先级是最高的。
 
那么最低的优先级可以是多少?这就涉及了优先级分组的概念。 stm32 通过一个嵌套中断向量控制器(NVIC)来分配先占优先级和次占优先级的数量。cortex-m3 内核中拥有一个3位宽度的的PRIGROUP数据区,用来指示一个8位数据序列中的小数点的位置从而表示中断优先级的分组。
  举个例子可以更好的理解:如果PRIGROUP 数据位000(即为0组), 用于表示中断优先级的分组的含义就是用7位的数据宽度来表示先占优先级的数量即为128, 用1位的数据宽度来表示次占优先级数量即为2。(上述是指cortex-m3内核的情况,而实际的stm32则只用到8位中的高四位)
  所以cortex-m3中有2的三次方 即为8个优先级分组。但是stm32中只有5个优先级分组(0000~0100),表示方法略有不同。
 
一、NVIC寄存器组
在MDK内,与NVIC相关的寄存器,MDK为其定义了如下的结构体:  
typedef struct  
{  
 vu32  ISER[2];  //2个32位中断使能寄存器,分别对应到60个可屏蔽中断   
u32   RESERVED0[30]; (预留或者保留的意思)
vu32  ICER[2];   //2个32位中断除能寄存器,分别对应到60个可屏蔽中断   
u32   RSERVED1[30];    
vu32  ISPR[2];  //2个32位中断挂起寄存器,分别对应到60个可屏蔽中断,可挂起正在执行的中断   
u32   RESERVED2[30];  
vu32  ICPR[2];   //2个32位中断解挂寄存器分别对应到60个可屏蔽中断,可解除被挂起的中断   
u32   RESERVED3[30];
vu32  IABR[2];    //2个32位中断激活标志寄存器,可读取该寄存器判断当前执行的中断是
u32   RESERVED4[62]; 哪个,中断执行完硬件清零,只读 
 vu32   IPR[15];  //15个32位中断优先级分组寄存器,每个中断分配8个bit,对应到4*15=60个中断
} NVIC_TypeDef; 
它们对应ARM手册中的名称为: ISER = Interrupt Set-Enable Registers
ICER = Interrupt Clear-Enable Registers
ISPR = Interrupt Set-Pending Register
ICPR = Interrupt Clear-Pending Register
IABR = Interrupt Active Bit Register
IPR = Interrupt Priority Registers
每个寄存器有32位,以Interrupt Set-Enable Registers说明,ISER[0]对应中断源0~31,ISER[1]对应中断源32~63,STM32只有60个中断源,所以没有ISER[2:7](因为cortex-m3支持256个中断,即需要256个使能位),转为RESERVED(保留)。
首先分析为什么定义。这是因为ISER的地址是从E000E100开始的,ICER是从E000E180开始的,依次类推

最近更新

2024年弘扬中华传统文化优秀作文 5页

小学三年级查字典比赛试题 (2) 2页

时间序列数据流复杂模式挖掘研究的开题报告 2页

早产儿支气管肺发育不良的再入院随访的开题报.. 2页

无锡山水城统筹发展的政策取向研究的开题报告.. 2页

托尼萘酸的长效制剂开发 31页

无线信道统计模型识别及其在MIMO系统下的应用.. 2页

2024年开学军训心得体会27篇 34页

2024年开元大酒店实习报告(通用9篇) 19页

大学校园运动会加油稿简短 5页

大学网格化管理工作总结(31篇) 75页

新课程理念下诗意语文教学的策略研究的开题报.. 2页

学生会期末的工作总结(31篇) 87页

学生调查报告优选范文(3篇) 10页

实用的初中作文常用4篇 8页

新时期高校校园文化建设研究——以S大学为例中.. 2页

小学一年级班主任2024工作计划(35篇) 115页

2024年建筑类专业自荐信范文 17页

2024年建筑材料运输合同15篇 36页

2024年二建《法规》新旧教材大纲对比1 10页

饮料生产企业作业危害分析(JHA)及风险分级管控.. 42页

水资源管理系统监测信息服务平台操作说明书 62页

橡胶及其制品归类 11页

掘进队各岗位危险源辨识(共21页) 21页

FOD培训课件 72页

【原创】民宿成本预计测算表(预算) 4页

建筑工程结算审核方案 5页

铜矿第一选矿厂危险源识别、评价及风险控制策.. 7页

XXX市公安局指挥中心IT系统运维服务解决方案 44页