CH03-03-STM32F40x的中断模块原理.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《CH03-03-STM32F40x的中断模块原理.pptx》由会员分享,可在线阅读,更多相关《CH03-03-STM32F40x的中断模块原理.pptx(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统原理与开发设计主讲人:赖树明东莞理工学院STM32F40 x的中断模块原理05STM32F40 x外部中断示例01ARM中断基础知识02Cortex-M4中断体系03STM32F40X中断管理04STM32F40 x外部中断模块06STM32F40 x外部中断作业0101ARM中断基础知识中断概述中断执行流程中断的入口中断优先级中断的嵌套中断的意义ARM中断基础知识中断概述01程序在运行过程中发生了外部或内部事件时,中断了正在执行的程序,转到处理这个外部或内部事件为行为称为中断。ARM中断基础知识中断执行流程01中断服务函数:中断发生时,处理器自动跳转去执行的函数称为中断服务函数。执
2、行流程:当中断发生时,处理器自动跳转去执行中断事件对应的代码,执行完成后重新返回断点处继续运行。中断处理流程ARM中断基础知识中断入口01MCU上每个外设都有自己的中断事件,当发生中断时,各自要处理的中断事件也是不相同,如何让处理器正确自动处理当前中断事务呢?给每个外设中断事件分配一个固定的入口地址程序中只要把中断函数保存到入口地址处,发生中断时,硬件自动跳转去入口处,执行此处的中断函数中断入口ARM中断基础知识中断优先级01MCU芯片上每个外设都有中断事件,实际使用过程中会出现各种复杂的需求,如多个中断同时发生应该先处理哪个事件,当前正在处理一个中断事件,又发生了新的中断事件,应该如何处理?
3、芯片设计在中断系统中加入了中断优先级机制,即给每个外设中断事件指定一个中断级别,通常情况下,高优先级可以抢占低优先级的处理器使用权。示例:你有两个手机,同一个时间点都有电话(1一个老爸送钱,2另一个催还款)进来-先接哪一个?你自己评判标准-优先级问题中断 当多个事件同时发生,应该先执行哪一个根据中断设定优先级来决定。中断优先级ARM中断基础知识中断嵌套01中断嵌套:当前处理器正在执行中断服务程序,发生了更高等级的中断,处理器转去执行更高级别中断服务程序的行为称为中断嵌套。根据优先级法则:只要更高优先级的中断事件发生了,都可以抢占低优先级的中断服务函数CPU使用权,执行完高优先级中断服务程序后返
4、回被抢占的低优先级中断服务器程序的断点继续运行。中断嵌套ARM中断基础知识中断意义01提高处理器的综合运行效率更及时处理不可预测的事件:使得复杂功能代码编程更容易实现 -学习后,自己写代码才可以体会中断意义0202Cortex-M4中断体系NVIC(嵌套向量中断控制器)介绍NVIC优先级介绍NVIC通用API函数NVIC初始化步骤-虚席以待-虚席以待-Cortex-M4中断体系NVIC中断控制器介绍02pCortex-M4的中断的构成分为两部分:NVIC中断控制器+模块级中断使能(外设中断使能)。pNVIC中断控制器是属于内核的-ARM公司设计pNVIC中断控制器是Cortex-M3/4的中断
5、控制中心,由NVIC中断控制器决定中断的优先级。pCortex-M4的中断入口有256个,能够支持的中断嵌套是128级。p使用中断功能:配置好NVIC中断控制器(核心级)NVIC简介Cortex-M4中断体系 NVIC优先级介绍02p抢占优先级:含义是不同等级间的中断可以嵌套,高优先级可以中断低优先级,数字小的优先级高。A中断正在执行 -比它高的事件发生,抢占CPU执行新中断程序p响应优先级:含义是不同响应优先级的中断不能嵌套,但是当抢占优先级相同,响应优先级不同,多个中断源同时发生中断时候,响应优先级高的中断事件会优先响应,数字小的优先级高 。p自然(不可修改,固定的)优先级:就是NVIC控
6、制器的中断源编号,数字小的,优先级高。作用:当抢占优先级和响应优先级都相同的中断源同时发生中断时候,自动优先级高的优先响应。不存在嵌套行为。p优先级等级小结:抢占优先级响应优先级自然优先级,抢占优先级决定是否可以嵌套,响应优先级和自然优先级决定同时发生时,先响应谁(如果抢占相同,才依据响应,如果抢占和响应都相同,自然优先级才会起作用)优先级Cortex-M4中断体系 NVIC优先级介绍02含义是不同等级间的中断可以嵌套,高优先级可以中断低优先级,数字小的优先级高。ARM 公司规范中使用8位二进制表示优先级。抢占优先级在 STM32 中每个中断源使用 4 个比特位设置中断源的优先级,这4个比特位
7、可以有5种分配方式,如下。ARM 公司规定具体芯片实现不能少于3位。STM32F4中断表示组编号PRIGROUP区域(3位)AIRCR10:8 0 xE000_ED0C抢占优先级位数响应优先级位数抢占优先级可配置范围响应优先级可配置范围00 x0704001510 x0613010720 x0522030330 x0431070140 x03400150参考参考 Cortex M3与与M4权威指南权威指南.pdf 文档Chapter 7-Exceptions and Interrupts 章节有对 PRIGROUP 域说明Cortex-M4中断体系 NVIC优先级介绍02Cortex-M4中断
8、体系NVIC通用API函数021、NVIC分组设置原型:void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)参数:PriorityGroup:分组方式对应的值函数说明Cortex-M4中断体系NVIC通用API函数022、NVIC优先级编码 原型:uint32_t NVIC_EncodePriority(uint32_t PriorityGroup,uint32_t PreemptPriority uint32_t SubPriority);功能:根据组号,抢占优先级,子优先级数值编码成一个32位数字参数:PriorityGroup:分组方
9、式对应的值;也就是AIRCR10:8中的值。PreemptPriority:正确的抢占优先级值,比如分组2,范围是03取值,SubPriority 正确的子优先级值,比如分组2,范围是03取值,示例:uint32_t Priority=NVIC_EncodePriority(7-2,1,2);说明:分组2,抢占优先级是1,响应优先级是2。返回:编码后的值,这个值就是写入对应中断源中断寄存器中的值。注意:这个函数并没有写入寄存器中。函数说明Cortex-M4中断体系NVIC通用API函数023、NVIC优先级设置原型:void NVIC_SetPriority(IRQn_Type IRQn,ui
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CH03 03 STM32F40x 中断 模块 原理
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内