电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

NVIC与中断控制VIP免费

NVIC与中断控制_第1页
1/43
NVIC与中断控制_第2页
2/43
NVIC与中断控制_第3页
3/43
NVIC与中断控制•NVIC概览•中断配置基础•中断使能与除能•中断的悬起与解悬•中断建立全过程的演示•软件中断•再论SysTick定时器NVIC概览正如前文已经多次提到的,向量中断控制器,简称NVIC,是Cortex‐M3不可分离的一部分,它与CM3内核的逻辑紧密耦合,有一部分甚至水乳交融在一起。NVIC与CM3内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。NVIC的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断处理的控制逻辑之外,NVIC还包含了MPU的控制寄存器、SysTick定时器以及调试控制。本章中,我们将体检NVIC的中断处理控制逻辑。MPU与调试控制逻辑在后续章节中讨论。NVIC共支持1至240个外部中断输入(通常外部中断写作IRQs)。具体的数值由芯片厂商在设计芯片时决定。此外,NVIC还支持一个“永垂不朽”的不可屏蔽中断(NMI)输入。NMI的实际功能亦由芯片制造商决定。在某些情况下,NMI无法由外部中断源控制。NVIC的访问地址是0xE000_E000。所有NVIC的中断控制/状态寄存器都只能在特权级下访问。不过有一个例外——软件触发中断寄存器可以在用户级下访问以产生软件中断。所有的中断控制/状态寄存器均可按字/半字/字节的方式访问。此外,有几个中断屏蔽寄存器也与中断控制密切相关,它们是第三章中讲到的“特殊功能寄存器”,只能通过MRS/MSR及CPS来访问。中断配置基础每个外部中断都在NVIC的下列寄存器中“挂号”:•􀁺使能与除能寄存器•􀁺悬起与“解悬”寄存器•􀁺优先级寄存器•􀁺活动状态寄存器另外,下列寄存器也对中断处理有重大影响•􀁺异常掩蔽寄存器(PRIMASK,FAULTMASK以及BASEPRI)•􀁺向量表偏移量寄存器•􀁺软件触发中断寄存器•􀁺优先级分组位段中断的使能与除能中断的使能与除能分别使用各自的寄存器来控制——这与传统的,使用单一比特的两个状态来表达使能与除能是不同的。CM3中可以有240对使能位/除能位,每个中断拥有一对。这240个对子分布在8对32位寄存器中(最后一对没有用完)。欲使能一个中断,你需要写1到对应SETENA的位中;欲除能一个中断,你需要写1到对应的CLRENA位中;如果往它们中写0,不会有任何效果。通过这种方式,使能/除能中断时只需把“当事位”写成1,其它的位可以全部为零。再也不用像以前那样,害怕有些位被写入0而破坏其对应的中断设置(写0没有效果),从而实现每个中断都可以自顾地设置,而互不侵犯——只需单一的写指令,不再需要读‐改‐写。如上所述,SETENA位和CLRENA位可以有240对,对应的32位寄存器可以有8对,因此使用数字后缀来区分这些寄存器,如SETENA0,SETENA1…SETENA7,如表8.1所示。但是在特定的芯片中,只有该芯片实现的中断,其对应的位才有意义。因此,如果你使用的芯片支持32个中断,则只有SETENA0/CLRENA0才需要使用。SETENA/CLRENA可以按字/半字/字节的方式来访问。又因为前16个异常已经分配给系统异常,故而中断0的异常号是16,(回顾第7章中的表7.2)SETENAs:xE000_E100–0xE000_E11C;CLRENAs:0xE000E180-0xE000_E19C中断的悬起与解悬如果中断发生时,正在处理同级或高优先级异常,或者被掩蔽,则中断不能立即得到响应。此时中断被悬起。中断的悬起状态可以通过“中断设置悬起寄存器(SETPEND)”和“中断悬起清除寄存器(CLRPEND)”来读取,还可以写它们来手工悬起中断。悬起寄存器和“解悬”寄存器也可以有8对,其用法和用量都与前面介绍的使能/除能寄存器完全相同,见表8.2。优先级每个外部中断都有一个对应的优先级寄存器,每个寄存器占用8位,但是允许最少只使用最高3位。4个相临的优先级寄存器拼成一个32位寄存器。如前所述,根据优先级组设置,优先级可以被分为高低两个位段,分别是抢占优先级和亚优先级。优先级寄存器都可以按字节访问,当然也可以按半字/字来访问。有意义的优先级寄存器数目由芯片厂商实现的中断数目决定,优先级配置寄存器的详细信息在附录D中给出(表D.18)活动状态每个外部中断都有一个活动状态位。在处理器执行了其ISR的第一条指令后,它的活动位就被置1,并且直到ISR返回时才硬件清零。由于支持嵌套,允许高优先级异常抢占某个ISR。然而,哪怕一个...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

NVIC与中断控制

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部