14.3.3
NVIC中断配置固件库
固件库文件core_cm33.h的最后,还提供了NVIC的一些函数,这些函数遵循CMSIS规则,只要是Cortex-M33的处理器都可以使用,具体如下:
表格15‑3符合CMSIS标准的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的使用。

点击可查看大图
注解
其中前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。

点击可查看大图
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的事件。
全部0条评论
快来发表一下你的评论吧 !