- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
K60芯片NVIC模块中断相关寄存器配置以及应用举例K60芯片NVIC模块中断相关寄存器配置以及应用举例
飞思卡尔Kinetis 芯片中NVIC 模块的中断寄存器的介绍及其应用举例
喻宁宁
IMM 现场应用工程师
飞思卡尔半导体
一、NVIC 模块的中断寄存器简介
嵌套式向量中断控制器(NVIC )是Cortex 内核不可分割的一部分,它与CPU 紧密结
合,可对系统异常和外设中断进行控制。如图1 所示,NVIC 右端连接到各个外围模块,
负责对外设中断进行处理;左端连接到内核,负责对内核系统异常进行处理。本文重点介
绍NVIC 对外围模块的中断控制。通常,在配置某个外围模块的中断功能时,除了需要设
置此模块本身的寄存器中的中断使能位外,还需要配置NVIC 模块中对应的中断控制寄存
器,系统才会响应此外围模块的中断请求。
图1 NVIC 的连接框图
ARM Cotex-M4 的NVIC 模块中相关寄存器的地址、名称、功能描述如图2 所示,它
们可分为两种类型:非优先级中断寄存器 (non-IPR register )和优先级中断寄存器 (IPR
register )。其中,非优先级中断寄存器有以下几种:
NVICISERx :中断使能设置寄存器;
NVICICERx :中断使能清除寄存器;
NVICISPRx :中断挂起设置寄存器;
NVICICPRx :中断挂起清除寄存器;
NVICIABRx ;中断激活状态寄存器;
其中x 为0 - 7,称为寄存器的组号,表示每种寄存器都有8 个。这些寄存器都是32 位
的。因此,如果每一位控制一个中断源,则可以分别控制256 个中断源。通常,
NVICISERx (中断使能设置寄存器)用于去使能某个中断,而NVICICPRx (中断挂起清
除寄存器)用于配合NVICISERx 寄存器来使能这个中断;NVICIABRx (中断激活状态寄
存器)为只读寄存器,用于判断某个中断是否处于激活的状态。
图2 NVIC 寄存器描述
而优先级中断寄存器只有一种:NVICIPRx ,用于设定每个中断源的优先级。从图3
可以看到,每个中断源的优先级控制字要占用4 位,再加上保留位,则每个32 位的寄存
器可以配置4 个中断源的优先级。因此,如果要配置256 个中断源的优先级,则需要256
÷ 4 = 64 个32 位的寄存器。但是Kinetis 系列MCU 的中断源一般都没有这么多,也就不需
要这么多的寄存器。
图3 中断优先级控制寄存器位域分布
下面以K60 为例进行具体说明。K60 支持16 级中断控制,所以在NVIC 中,对应于不
同的中断源,在优先级中断寄存器NVICIPRx 中都有4 个相应的位来控制其优先级,另外
还有4 位是保留位,如图3 所示。
从图2 可以看出,每种非优先级中断寄存器都是一个包含8 个32 位寄存器的寄存器组。
那么在应用过程中,对应于K60 的90 多种不同的中断源,应该配置这些寄存器组中的哪
一个寄存器 (组号)和该32 位寄存器的那一位 (位号)呢?简单来说,就是组号和位号
的确定。例如NVICICER2[21] ,它的组号就是2 ,位号就是21 。这就需要借助芯片厂商在
CPU 中为不同中断源定义的中断请求号IRQ 。需要特别注意的是,中断向量号和中断请求
号IRQ 号不同,中断请求号IRQ = 中断向量号-16,因为有16 个ARM 内核中断请求是没
有分配IRQ 号的。在K60 的Reference Manual 的P74 页可以看到CPU 中断向量分配表,
定义了各种不同的中断源所对应的中断入口地址、中断向量号、中断请求号、寄存器号以
及彼此之间的关系,如图4 所示。
图4 LPTMR 中断向量的分配
这里结合K60 的中断向量分配表,以LPTMR (低功耗定时器)模块为例介绍一下
NVIC 寄存器的配置。LPTMR 模块的中断向量分配如图4 所示,可以看到LPTMR 中断入
口地址为0x0000_0194,中断向量号为101,中断请求号IRQ 为85。那么如何确定配置
LPTMR 中断所对应的NVIC 寄存器的组号和位号呢?即LPTMR 使用NVIC 寄存器组中的
哪一个寄存器,以及该寄存器的哪个位呢?它们又和中断向量号I
您可能关注的文档
- DELL服务器+RAID配置详细中文手册DELL服务器+RAID配置详细中文手册.doc
- DKJ、ZKJ角行程电动执行机构系列使用说明书DKJ、ZKJ角行程电动执行机构系列使用说明书.pdf
- DMS1000配网自动化主站系统概述DMS1000配网自动化主站系统概述.ppt
- Digimat介绍资料Digimat介绍资料.pdf
- do does练习do does练习.ppt
- Do you like bananas教案Do you like bananas教案.doc
- do-while和for练习do-while和for练习.doc
- DR-41中文说明书DR-41中文说明书.doc
- Do_you_like_running?Do_you_like_running?.ppt
- DS02线性表习题参考解答DS02线性表习题参考解答.doc
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)