完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我想知道如何在运行时检测一段代码是从中断还是正常进程运行的。我试图从状态寄存器(CP0寄存器12)读取EXL、ERL、UM位,但是无法从中获得任何有意义的信息。我想知道我在那里做了什么错事?我的工作环境:单片机:PIC32 MZ1024ECG100MPLAB X:3.35XC32:1.42HAND1.081.01
|
|
相关推荐
12个回答
|
|
这是因为默认的中断处理程序序言清除了这些位。T)。
|
|
|
|
那么BOOL bMBPIsWithinException(从中断调用BOOL)呢,或者检查可能调用的中断的中断标志,或者在中断中设置一个标志。
|
|
|
|
同时确保从中断和主代码调用的例程是可重入的。/ Ruben
|
|
|
|
谢谢你的回答。Simung123i不知道如何使用KeePiBaseType掩蔽属性…我的中断在C:中声明,在汇编中定义:我希望有一个“硬件解决方案来解决我的问题,比如在我的代码中任何时候从寄存器中读取某种位,而不是从每个中断开始和结束创建回调来改变全局变量状态(对我来说不是)。创建每个读写的关键部分。它将使我的代码难以维护第三个人(一年后我自己也包括在内)。
|
|
|
|
也许你可以把中断包装器(VuART4TxCdultWrrpAppER)放在某个程序存储器块中。并检查中断寄存器中的返回地址寄存器($RA),以查看它从何处跳跃(JAL)。
|
|
|
|
您好,我想您可以从状态寄存器中读取CP0位12-10IPL<2:0>:中断优先级位的IPL字段,任何与0不同的值都应该在中断处理中。参见《家庭参考手册》第2节:您可以尝试:
|
|
|
|
在再次查看数据表之后,我运行了INTSTAT寄存器,它实际上应该保存有关挂起的中断的信息。每当没有中断被处理时,该寄存器保持0,否则它持有一些中断特定值。手动声明这些值应该只在单矢量模式下使用(我的MCU被设置为多矢量模式),但是在我的情况下,按照以下方式编写的函数可以正常工作。R不是,那么单/多向量模式不起作用吗?
|
|
|
|
您不能使用CP0中状态寄存器的IPL位吗?Ruben
|
|
|
|
从一开始我也会提出同样的建议:但我不是这些照片的专家。
|
|
|
|
据我所知,CP0状态寄存器中的IPL位用于阻塞优先级低于IPL规定的中断。这意味着我不能用它们来判断内核是否正在处理中断。IPL位不能由硬件设置。我想我已经看到FreeRTOS修改了它们,以防止在执行关键部分时触发中断。如果我错了请纠正我,请参阅第8节。中断(8.3次操作):
|
|
|
|
CP0中的IPL位设置在中断序幕中,以反映在重新启用中断之前当前中断的优先级,以防止较低优先级中断发生。因此,除非您自己在代码中弄乱了它们,否则它们将准确地反映优先级。当前处理中断。优先级3中断序幕
|
|
|
|
隐马尔可夫模型。。。现在有了编译器方面的解释,IPL比特对我来说是有意义的。FreeRTOS在它们自己的关键部分使用它们来禁用/启用中断(portDISABLE_INTERRUPTS()),我在这个项目中使用FreeRTOS……让我想知道我是否可以可靠地使用这些IPL位?也不能可靠地使用INTSTAT寄存器——每当软件设置IPL位,并且优先级低于IPL位的中断希望被触发时,INTSTAT位由硬件设置,其细节是挂起的中断而不触发中断。我必须想一些其他的检测方法,或者跳过这个想法,看看其他的设计。
|
|
|
|
只有小组成员才能发言,加入小组>>
5250 浏览 9 评论
2037 浏览 8 评论
1958 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3219 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2266 浏览 5 评论
792浏览 1评论
683浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
616浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
686浏览 0评论
586浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 03:48 , Processed in 1.649141 second(s), Total 97, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号