stm32nvic固件库分析与应用0

stm32nvic固件库分析与应用0

ID:11093826

大小:710.00 KB

页数:51页

时间:2018-07-10

stm32nvic固件库分析与应用0_第1页
stm32nvic固件库分析与应用0_第2页
stm32nvic固件库分析与应用0_第3页
stm32nvic固件库分析与应用0_第4页
stm32nvic固件库分析与应用0_第5页
资源描述:

《stm32nvic固件库分析与应用0》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、目录一、异常的种类2二、异常的优先级2三、NVIC异常处理41、异常的处理42、抢占的处理43、异常的返回5四、复位过程6五、中断和事件7(1)硬件中断选择8(2)硬件事件选择8(3)软件中断/事件选择8(4)外部中断/事件线路映射8(5)相关的功能寄存器8六、NVIC库函数116.1函数NVIC_PriorityGroupConfig116.2函数NVIC_Init116.3函数NVIC_StructInit136.4函数NVIC_SetVectorTable136.5函数NVIC_GenerateSystemReset146.6函数NVIC_GenerateCoreReset146

2、.7函数NVIC_SystemLPConfig15其他相关函数15七、程序设计161、滴答时钟简单使用162、NVIC外部中断配置实验17八、设计总结17STM32NVIC固件库分析与应用Cortex-M3处理器和NVIC对所有优先级进行划分和处理。所有的异常处理均在Handle模式下进行。当出现异常时,处理器的状态被自动保存到栈中;在中断服务子程序结束之后,又会自动从栈中恢复处理器的状态。获取中断向量和状态保存是同时进行的,这提高了进入中断处理的效率。Cortex-M3处理器支持尾链技术,即当发生背靠背中断时,无需保存和恢复状态,而是继续执行。Cortex-M3处理器的一下特性,提高

3、了处理异常的效率并降低了时间的延迟。Ø处理器状态的自动保存和恢复;Ø中断向量表读取与处理器状态保存并行处理;Ø支持尾链技术,当处理背靠背的中断时,不需要在2个终端服务子程序之间进行入栈和出栈操作;Ø可动态重设优先级;ØNVIC和Cortex-M3处理器和紧密耦合,可尽早处理中断,尤其是晚到的高优先级中断;Ø中断的数目可以配置,1~240;Ø为Handle和Thread模式分别提供独立的栈和访问权限等级;Ø可屏蔽优先级以支持临界区。一、异常的种类Cortex-M3处理器将复位、不可屏蔽中断、外部中断、故障都统一为异常,异常有多种类型。故障是指指令执行时由于错误的条件所导致的异常。故障可分

4、为同步故障和一般故障,同步故障是指当指令产生错误时就同时报告错误,而异步故障则是指当指令产生错误时无法保证同时报告错误。下表列出了异常的类型、位置和优先级。位置是指中断向量在中断向量表中的位置,是相对于中断限量表开始处字的偏移。优先级的值越小,优先级越高。表1-1异常的类型异常类型偏移优先级描述---0--复位时,加载向量表中第一项作为栈顶地址复位1-3电源开启可热复位时调用,在执行第一条指令时,优先级下降到最后,异步故障不可屏蔽中断2-2除了复位,它不能被其他任何中断终止和抢占,异步故障硬故障3-1如果故障由于优先级或可配置的故障处理程序被禁止而不能激活时,此时所有这些故障均为硬故障

5、,同步故障存储管理4可配置存储保护单元不匹配,包括不可访问和不匹配,同步故障;也用于MPU不可用或不存在的情况,以支持默认存储映射的从不执行区域总线故障5可配置预取错误,存储器访问错误,以及其他地址/存储器相关的错误;当为精确地总线故障时是同步故障,不精确时为异步故障应用故障6可配置应用错误,如执行未定义的指令或试图进行非法的状态装换,同步故障-7~10-保留SVCall11可配置使用SVC指令进行系统服务调用,同步故障调试监视异常12可配置调试监视异常,同步故障,但只在允许时有效;如果它的优先级比当前激活的处理程序的优先级更低,则它不能激活-13-保留PendSV14可配置系统服务的

6、可挂起请求,异步故障,只能由软件挂起SysTick15可配置用于系统嘀嗒定时器,异步故障外部中断≥16可配置由核外发出的中断,INTISR[239:0],传递给NVIC都为异步故障二、异常的优先级在处理器处理异常时,优先级决定了处理器何时以及如何进行异常处理。可以给中断设置软件优先级以及对其进行分组。优先级NVIC支持通过软件设置的优先级。通过写中断优先级寄存器的PRI_N字段可以设置优先级,范围为0~255。硬件优先级随着中断号的增加而减小,优先级0为最高优先级,255为最低优先级。通过软件设置的优先级权限高于硬件优先级。例如,如果设置IRQ[0]的优先级为1,IRQ[31]的优先级

7、为0,则IRQ[31]的优先级比IRQ[0]的高。但通过软件设置的优先级对复位、不可屏蔽中断和硬件故障没有影响。当多个中断具有相同的优先级时,拥有最小中断号的挂起中断优先执行。例如,IRQ[0]和IRQ[1]的优先级都为1,则IRQ[0]优先执行。优先级分组为了更好的对大量的中断进行优先级管理和控制,NVIC支持优先级分组。通过设定应用中断和复位中断控制寄存器的PRIGROUP字段,可以将PRI_N字段分成2个部分:抢占优先级和次要优先级,如表

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。