Microchip
直播中

笪琳琳

7年用户 159经验值
私信 关注
[问答]

中断优先级问题如何解决

在PIC32 MC470F512L上,使用InStultSythOrthuleMultif向量使能,我有3个中断例程,一个定时器和2个UART。这是一个PLIB项目,不是HARMony项目。我试着将中断设置为具有不同的优先级,以确保快速UART首先进入,慢速UART次之,计时器最低,但我总是出现异常错误。通常,异常类型是7,这是一个总线错误,异常地址位于中断例程之一的区域内。现在,我已经将所有中断设置为相同的优先级,问题似乎已经消除,这表明它是由一个中断例程中断而导致的。另一个较低优先级的中断正在被处理。如果另一个中断中断中断,而中断例程使用函数“INTGetFlag”和“INTClearFlag”,那么编写我自己的代码是为了“中断安全”,所以我的问题是:有人知道这些函数是否是重入的吗?有人知道这些函数的来源在哪里吗?有人能告诉我如何写自己的副本,我可以重新进入?谢斯皮利普

回帖(1)

李子跃

2020-4-22 11:50:32
源位于C:Program Files(x86)Micro.xc32v1.xxpic32-libs.intsourceint_tbl_lib.c,是的,它们是重新进入的。是否设置了中断优先级级别以匹配中断例程的优先级(INTSetVectorPriority())?显示用于中断设置的代码,并自行中断。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分