1、NVIC的优先级概念 
   占先式优先级 (pre-emption priority): 
   高占先式优先级的中断事件会打断当前的主程序/中断程序运行— —抢断式优先响应,俗称中断嵌套。 
   副优先级(subpriority): 
   在占先式优先级相同的情况下,高副优先级的中断优先被响应; 
   在占先式优先级相同的情况下,如果有低副优先级中断正在执行, 高副优先级的中断要等待已被响应的低副优先级中断执行结束后才 能得到响应——非抢断式响应(不能嵌套)。 
2、判断中断是否会被响应的依据 
    首先是占先式优先级,其次是副优先级; 
    占先式优先级决定是否会有中断嵌套; 
    Reset、NMI、Hard Fault 优先级为负(高于普通中断优先级)且不可调整。 
3、STM32中用到的Cortex-M3寄存器说明 
   在STM32中用到了Cortex-M3定义的三组寄存器,有关这三组寄存器的说明不在STM32的技术手册中,需要参考ARM公司发布的Cortex-M3 Technical Reference Manual (r2p0)。 
   在STM32的固件库中定义了三个结构体与这三个寄存器组相对应,这三个结构体与ARM手册中寄存器的对应关系如下: 
   1)、NVIC寄存器组 
       STM32的固件库中有如下定义: 
       typedef struct 
       { 
         vu32 ISER[2]; 
         u32 RESERVED0[30]; 
         vu32 ICER[2]; 
         u32 RSERVED1[30]; 
         vu32 ISPR[2]; 
         u32 RESERVED2[30]; 
         vu32 ICPR[2]; 
         u32 RESERVED3[30]; 
         vu32 IABR[2]; 
         u32 RESERVED4[62]; 
         vu32 IPR[11]; 
       } NVIC_TypeDef; 
       它们对应ARM手册中的名称为 
       ISER = Interrupt Set-Enable Registers 
       ICER = Interrupt Clear-Enable Registers 
       ISPR = Interrupt Set-Pending Register 
       ICPR = Interrupt Clear-Pending Register 
       IABR = Active Bit Register 
       IPR = Interrupt Priority Registers 
       每个寄存器有240位,以Interrupt Set-Enable Registers说明,ISER[0]对应中断源0~31,ISER[1]对应中断源32~63,STM32只有60个中断源,所以没有ISER[2:7]。 
       参考STM32技术参考手册中的中断向量表,中断源的位置为: 
       位置0 - WWDG = Window Watchdog interrupt 
       位置1 - PVD = PVD through EXTI Line detection interrupt 
       位置2 - TAMPER = Tamper interrupt 
       ...... 
       位置58 - DMA2_Channel3 = DMA2 Channel3 global interrupt 
       位置59 - DMA2_Channel4_5 = DMA2 Channel4 and DMA2 Channel5 global interrupts 
   2)、系统控制寄存器组 
       STM32的固件库中有如下定义: 
       typedef struct 
       { 
         vuc32 CPUID; 
         vu32 ICSR; 
         vu32 VTOR; 
         vu32 AIRCR; 
         vu32 SCR; 
         vu32 CCR; 
         vu32 SHPR[3]; 
         vu32 SHCSR; 
         vu32 CFSR; 
         vu32 HFSR; 
         vu32 DFSR; 
         vu32 MMFAR; 
         vu32 BFAR; 
         vu32 AFSR; 
       } SCB_TypeDef; /* System Control Block Structure */ 
       它们对应ARM手册中的名称为 
       CPUID = CPUID Base Register 
       ICSR = Interrupt Control State Register 
       VTOR = Vector Table Offset Register 
       AIRCR = Application Interrupt/Reset Control Register 
       SCR = System Control Register 
       CCR = Configuration Control Register 
       SHPR = System Handlers Priority Register 
       SHCSR = System Handler Control and State Register 
       CFSR = Configurable Fault Status Registers 
       HFSR = Hard Fault Status Register 
       DFSR = Debug Fault Status Register 
       MMFAR = Mem Manage Address Register 
       BFAR = Bus Fault Address Register 
       AFSR = Auxiliary Fault Status Register 
   3)、系统时钟寄存器组 
       STM32的固件库中有如下定义: 
       typedef struct 
       { 
         vu32 CTRL; 
         vu32 LOAD; 
         vu32 VAL; 
         vuc32 CALIB; 
       } SysTick_TypeDef; 
       它们对应ARM手册中的名称为 
       CTRL = SysTick Control and Status Register 
       LOAD = SysTick Reload Value Register 
       VAL = SysTick Current Value Register 
       CALIB = SysTick Calibration Value Register

STM32中断名词的更多相关文章

  1. STM32中断管理函数

    CM3 内核支持256 个中断,其中包含了16 个内核中断和240 个外部中断,并且具有256 级的可编程中断设置.但STM32 并没有使用CM3 内核的全部东西,而是只用了它的一部分. STM32 ...

  2. 第16章 STM32中断应用概览

    第16章     STM32中断应用概览 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fi ...

  3. STM32 中断应用概览

    本章参考资料< STM32F4xx 中文参考手册>第十章-中断和事件.<ARM Cortex™-M4F 技术参考手册> -4.3 章节: NVIC 和 4.4 章节: SCB— ...

  4. 第16章 STM32中断应用概览—零死角玩转STM32-F429系列

    第16章     STM32中断应用概览 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fi ...

  5. STM32中断应用总结

    STM32中断很强大,STM32中断可以嵌套,任何外设都可以产生中断,其中中断和异常是等价的. 中断执行流程: 主程序执行过程可以产生中断去执行中断的内容(保护现场),然后在返回继续执行中断. 中断分 ...

  6. 【转载-Andrew_qian】stm32中断学习

    [转载]stm32中断学习 中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大 ...

  7. STM32中断编程三步曲教你弄会中断设置以及中断优先级设置

    中断作为stm32中必不可少的一个功能,其重要性是不言而喻的因此把中断学习好是根本. 所以今天就来好好啃一下中断配置的知识,俗话说:磨刀不误砍柴工.问题是什么呢?项目中我用到了一个触摸键盘TTP229 ...

  8. stm32 中断几个库函数实现过程分析

    感谢原文作者:鱼竿的传说,这篇文章写得不错,转载自 http://www.cnblogs.com/chineseboy/archive/2013/03/14/2956782.html 前题: 闭门造车 ...

  9. stm32中断无电平触发的解决办法

    这几天在用stm32读取FPGA中FIFO里的数据,遇到了不少的问题.其中有个自己觉得比较好玩的问题,就拿出来写写.其实这个问题也比较简单,开始我觉得没必要拿出来写,不过,想想后觉得还是写写吧,就当做 ...

随机推荐

  1. Codeforces 986A. Fair(对物品bfs暴力求解)

    解题思路: 1.对物品i bfs,更新每个小镇j获得每个物品i的最短距离. 2.时间复杂度o(n*k),满足2s的要求. 代码: #include <iostream> #include ...

  2. checkbox控制显示隐藏

    显示文本框<input type = "checkbox" id="checkbox" onclick="on_hide();"/&g ...

  3. luogu P1622 释放囚犯

    题目描述 Caima王国中有一个奇怪的监狱,这个监狱一共有P个牢房,这些牢房一字排开,第i个紧挨着第i+1个(最后一个除外).现在正好牢房是满的. 上级下发了一个释放名单,要求每天释放名单上的一个人. ...

  4. vuejs--递归组件(树型表格分享)

    前言    前段时间使用vue做了一套后台管理系统,其中使用最多就是递归组件,也因为自己对官方文档的不熟悉使得自己踩了不少坑,今天写出来和大家一起分享. 递归组件    组件在它的模板内可以递归地调用 ...

  5. Adobe Flex迷你教程 —Flex4全屏显示

    应用场景 1.播放器 我们经常看视频的时候,需要全屏显示,(在flex中这个视频初始化的时候是嵌入到html的iframe中). 2.监控 如下图所示,大多时候我们的监控用的是flex,而树形菜单和标 ...

  6. 洛谷 P2926 [USACO08DEC]拍头Patting Heads

    P2926 [USACO08DEC]拍头Patting Heads 题目描述 It's Bessie's birthday and time for party games! Bessie has i ...

  7. 洛谷 P2747 [USACO5.4]周游加拿大Canada Tour

    P2747 [USACO5.4]周游加拿大Canada Tour 题目描述 你赢得了一场航空公司举办的比赛,奖品是一张加拿大环游机票.旅行在这家航空公司开放的最西边的城市开始,然后一直自西向东旅行,直 ...

  8. ubuntu下不用拔盘就可以重新识别usb设备

    #!/bin/sh # Usage: ./resetusb ARGUMENT(The keyword for your usb device) var1=$ keyword=${var1:=Stora ...

  9. Ruby创建命令

    Ruby创建命令

  10. HDOJ 5008 Boring String Problem

    后缀数组+RMQ+二分 后缀数组二分确定第K不同子串的位置 , 二分LCP确定可选的区间范围 , RMQ求范围内最小的sa Boring String Problem Time Limit: 6000 ...