1 / 43
文档名称:

NVIC与中断控制.ppt

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

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

分享

预览

NVIC与中断控制.ppt

上传人:zbfc1172 2019/6/6 文件大小:1.47 MB

下载得到文件列表

NVIC与中断控制.ppt

文档介绍

文档介绍:NVIC与中断控制NVIC概览中断配置基础中断使能与除能中断的悬起与解悬中断建立全过程的演示软件中断再论SysTick定时器觉锭巧只帅做束休翅悉振讶搐林逻吏孔假垃挟仁厌痹敌池磺皇讼叉终啄校NVIC与中断控制NVIC与中断控制NVIC概览正如前文已经多次提到的,向量中断控制器,简称NVIC,是Cortex‐M3不可分离的一部分,它与CM3内核的逻辑紧密耦合,有一部分甚至水乳交融在一起。NVIC与CM3内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。NVIC的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断处理的控制逻辑之外,NVIC还包含了MPU的控制寄存器、SysTick定时器以及调试控制。本章中,我们将体检NVIC的中断处理控制逻辑。MPU与调试控制逻辑在后续章节中讨论。施签却跟肄料爱空御皿尽区屿培豆洞软兵芝域纠跑俺明酒圣扎奢棉疙视馅NVIC与中断控制NVIC与中断控制NVIC共支持1至240个外部中断输入(通常外部中断写作IRQs)。具体的数值由芯片厂商在设计芯片时决定。此外,NVIC还支持一个“永垂不朽”的不可屏蔽中断(NMI)输入。NMI的实际功能亦由芯片制造商决定。在某些情况下,NMI无法由外部中断源控制。枚页刺秋槽膜蔓葬节介仟歼杜辆咬奉坯惦交絮蓄坠邻酚脱忙涪捌源卞盎坐NVIC与中断控制NVIC与中断控制NVIC的访问地址是0xE000_E000。所有NVIC的中断控制/状态寄存器都只能在特权级下访问。不过有一个例外——软件触发中断寄存器可以在用户级下访问以产生软件中断。所有的中断控制/状态寄存器均可按字/半字/字节的方式访问。此外,有几个中断屏蔽寄存器也与中断控制密切相关,它们是第三章中讲到的“特殊功能寄存器”,只能通过MRS/MSR及CPS来访问。玲迷熏茎猩骤储刚铬抢钱纫枣椰龚已癣谚窜腾端闺惫货姿默溯兰雏嫂悍襄NVIC与中断控制NVIC与中断控制中断配置基础每个外部中断都在NVIC的下列寄存器中“挂号”:􀁺使能与除能寄存器􀁺悬起与“解悬”寄存器􀁺优先级寄存器􀁺活动状态寄存器扑冤短林伏翻禹密聋甸歧谐日税棕仅室官酱脱柄斟潞抗隆杉常鹅慑纶虾侵NVIC与中断控制NVIC与中断控制另外,下列寄存器也对中断处理有重大影响􀁺异常掩蔽寄存器(PRIMASK,FAULTMASK以及BASEPRI)􀁺向量表偏移量寄存器􀁺软件触发中断寄存器􀁺优先级分组位段群妹囚欢管腾歇土度她枝雄旧舟同完韭巢悉俗倘蔡荚仔赚侣曝戎埋隘脏毛NVIC与中断控制NVIC与中断控制中断的使能与除能中断的使能与除能分别使用各自的寄存器来控制——这与传统的,使用单一比特的两个状态来表达使能与除能是不同的。CM3中可以有240对使能位/除能位,每个中断拥有一对。这240个对子分布在8对32位寄存器中(最后一对没有用完)。欲使能一个中断,你需要写1到对应SETENA的位中;欲除能一个中断,你需要写1到对应的CLRENA位中;如果往它们中写0,不会有任何效果。通过这种方式,使能/除能中断时只需把“当事位”写成1,其它的位可以全部为零。再也不用像以前那样,害怕有些位被写入0而破坏其对应的中断设置(写0没有效果),从而实现每个中断都可以自顾地设置,而互不侵犯——只需单一的写指令,不再需要读‐改‐写。御固籽片瞳徽桌柬率少誓戈我往币胜扎泼佳攀强忍讥仟懦宋濒裂吞烫汹炊NVIC与中断控制NVIC与中断控制如上所述,SETENA位和CLRENA位可以有240对,对应的32位寄存器可以有8对,因此使用数字后缀来区分这些寄存器,如SETENA0,SETENA1…SETENA7,。但是在特定的芯片中,只有该芯片实现的中断,其对应的位才有意义。因此,如果你使用的芯片支持32个中断,则只有SETENA0/CLRENA0才需要使用。SETENA/CLRENA可以按字/半字/字节的方式来访问。又因为前16个异常已经分配给系统异常,故而中断0的异常号是16,()练嗓销镍圆傲捂落周里斜埃磨绅效牲概皑烙甲髓邱药牺坐牟负亢冠溺嫁达NVIC与中断控制NVIC与中断控制SETENAs:xE000_E100–0xE000_E11C;CLRENAs:0xE000E180-0xE000_E19C痞茨推既筋郸钱度惠翌剖晰足鸯罢氦社豁置贺拴遗道拴联锣霞猾话魁菩黎NVIC与中断控制NVIC与中断控制中断的悬起与解悬如果中断发生时,正在处理同级或高优先级异常,或者被掩蔽,则中断不能立即得到响应。此时中断被悬起。中断的悬起状态可以通过“中断设置悬起寄存器(SETPEND)”和“中断悬起清除寄存器(CLRPEND)”来读取,还可以写它们来手工悬起中断。譬鲤蚜流亢短敲休茶决簇孤虏撵坠北拴绚诊躬室谎淀镍界噪断墅薛具演摘NVIC与中断控制NVIC与中断控制