CORTEX-M 系列中断号偏移,CORTEX-M 系列前16个中断号一般都是负的,从0开始的是外设中断号。而 sylixos系统对于所有处理器平台都是统一从0开始的,中断号的类型为ULONG,所以两者之间有一个固定的偏移值
在CORTEX-M 系列时
NVIC_ClearPendingIRQ(UART0_IRQn); /* 裸机下标准中断号 */
API_InterVectorClearPending(UART0_IRQn + IRQOFFSET);/*Sylixos下中断号*/
API_InterVectorClearPending(ULONG ulVector)
{
NVIC_ClearPendingIRQ(ulVector - IRQOFFSET);
}
可以看见虽然在函数API_InterVectorClearPending 外面进行偏移,内部实现会减掉偏移量,与上面函数NVIC_ClearPendingIRQ没有区别,只是针对平台进行抽象封装。