请教Vector num 和 IRQ num 的区别是什么?
我使用的芯片是 MK16Z64VHL4,在数据手册中描述关于中断有如下3.3.2.3 Interrupt channel assignments
The interrupt vector assignments are defined in the following table.
• Vector number — the value stored on the stack when an interrupt is serviced.
• IRQ number — non-core interrupt source count, which is the vector number minus
16.
配置中断时是用IRQ num
比如:SYStick中断,就是 enable_irq(-1);
可能对NVIC等概念我不是很清楚,所以请大家帮我解释一下,这两个概念有什么不同? 请参考此篇文档。
Vector number就是异常表的序号,也就是MSP、系统异常、IRQ中断在异常表的索引序号。
IRQ number就是IRQ中断的逻辑序号,举个例子,IRQ number = 0,对应于异常表的第16个元素,也就是Vector number的编号为16。
举个例子,SysTick的Vector number是15,IRQ number是-1。
而你举得例子,
比如:SYStick中断,就是 enable_irq(-1);
理论上,是不会出现这样的调用,因为enable_irq是针对外部中断的,也就是IRQ number >= 0的中断。
你可以再看下代码,开启SysTick异常中断的具体方法。
页:
[1]