Microchip
直播中

江璐

8年用户 275经验值
私信 关注
[问答]

请问怎么确定一个函数是否从带有PIC32MZ的ISR调用?

嗨,我有一个非常简单的问题,但是答案很难找到。有没有办法确定一个函数是否从带有PIC32MZ的ISR调用?我查看了FRM部分8,但没有得到相关的信息。谢谢。

回帖(10)

李缬呓

2019-9-11 09:04:20
其他人可能有更好的答案,但应该有一些方法来做。一个是检查调用堆栈,看看返回地址是否在ISR内部。不过,使用GigalFrand可能会更容易做到这一点。
举报

唐红菊

2019-9-11 09:20:13
如果当前优先级为0,则可能处于ISR中。原子计数器变量也可以完成这项工作。
举报

卫斯晾

2019-9-11 09:36:16
我没想到…我会优先考虑。我不能使用全局变量或原子计数器,因为我使用插装函数,并且enter回调在函数的第一行之前执行。这个想法是概要介绍我的应用程序,并分开中断和常规执行的跟踪。在通过读取CP0的寄存器对其进行测试之后,我不确定正在读取哪个寄存器。我用和谐的PLIB读取寄存器,函数是PLBIGITIN CPUCurrrPrimRosialLeIGET(ItIn IDO0)。谢谢。
举报

唐红菊

2019-9-11 09:48:31
当前的IPL在CP0.状态寄存器中找到。你如何处理这些函数,并且它能处理ISR,它已经有一个编译器生成的序言?
举报

更多回帖

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