NVIC中断配置固件库详解

描述

14.3.3

NVIC中断配置固件库

固件库文件core_cm33.h的最后,还提供了NVIC的一些函数,这些函数遵循CMSIS规则,只要是Cortex-M33的处理器都可以使用,具体如下:

表格15‑3符合CMSIS标准的NVIC库函数

NVIC

点击可查看大图

这些库函数我们在编程的时候用的都比较少,甚至基本都不用。在配置中断的时候我们还有更简洁的方法,请看中断编程小节。

14.4

RA6M5

瑞萨的RA6M5采用了Cortex-M33内核,Cortex-M33内核的NVIC支持为数众多的系统异常和外部中断,除了个别异常的优先级被定死外,其它异常的优先级都是可配置的。Cortex-M33可以配置的支持多达480个外部中断,瑞萨对于中断向量表的使用有112个,其中可配置的有96个,RA6M5外围模块的可配置的中断事件有287个,最高可达256个优先级。

14.4.1

中断向量表

中断向量表提供了相应的中断服务程序,我们一般称它为ISR,中断响应通过提取中断服务程序首地址的方式来完成程序指针PC的跳转。但是对于Cortex-M33的内核,RA6M5在中断向量表中使用了112个ISR。下面提供了瑞萨RA6M5对于ISR的使用。

NVIC

点击可查看大图

注解

其中前16个是配置Arm的比如初始堆栈指针等为黄色的部分。后面96个是配置ICU事件选择寄存器ICU.IELSR。具体可翻阅《RA6M5 Group User’s Manual: Hardware》里的Table13.3 Interrupt vector table。

14.4.2

ICU.IELSRn寄存器

IELSRn寄存器选择NVIC使用的IRQi源。IELSRn对应于NVICIRQ输入源编号,其中n=0至95。

NVIC

点击可查看大图

IELS[8:0]位将事件信号链接到相关的NVIC或DTC模块。事件选项分为8组(组0至7)。IR状态标志表示来自IELS[8:0]中指定事件的单个中断请求。DTCE位是DTC激活使能位,当DTCE位设置为1时,相关事件被选择为DTC激活源。

14.4.3

中断事件表

在中断事件表里,瑞萨RA6M5中可以配置什么中断,如IIC中断、GPT中断、Port中断、DMAC中断、DTC中断、AGT中断等等,具体可翻阅《RA6M5 Group User’s Manual:Hardware》里的Table13.4Event table。

14.5

ELC模块简介

事件链接控制器(EventLink Controller,ELC)将各种外围模块产生的事件请求作为源信号,连接到不同的模块,允许模块之间直接链接,不需要CPU干预。就是将事件(中断源)绑定到外设功能,当事件触发时,就会执行所绑定的外设功能。你可以认为这是一种中断,只不过这种中断不需要CPU的参与。

事件号和中断号之间的关系:事件链接的事件号与相关联的中断源的事件号相同。

ELC特性

219种事件信号可以被直接连接到各个模块。ELC生成ELC事件信号和激活DTC的事件。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分