leiyin 发表于 2015-3-13 10:41:14

请教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等概念我不是很清楚,所以请大家帮我解释一下,这两个概念有什么不同?

FSL_TICS_ZP 发表于 2015-3-16 14:22:06

请参考此篇文档。

security 发表于 2015-3-16 15:34:23

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]
查看完整版本: 请教Vector num 和 IRQ num 的区别是什么?