完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
是否有看门狗定时器的功能,如泛型异常处理程序(空洞)用于异常处理?当看门狗过去时,我想把一些数据存储在内存中,这样我就可以追踪到底是什么原因造成的。谢谢,约翰·维克斯。
|
|
相关推荐
5个回答
|
|
约翰,在您的代码中建立一个调用堆栈,调用堆栈是查找看门狗问题的方法,并在例外情况下给我信息。它是如何工作的:在持久内存中有一个EnUM函数代码的数组*CatsAd**(参见我在持久性问题上的文章)。IONCODE)函数的空隙PulfFuffCMAC(EnUM函数代码)在函数的代码输入的每一个重要函数中调用函数pUsUnCaltStApp,该函数具有唯一的函数代码退出,(我的代码只有一个返回点)调用具有相同唯一性的函数PulLoFcCualStAc堆栈函数代码。在WDT重置时,请查看数组,这样您就可以从主函数开始调用函数调用流。如果怀疑Harmony代码在调用无效的和谐函数之前具有PushOnCallStack。在和函数之后具有PullFromCallStack。它还有助于调试exce。除了异常信息,我还想看看如何制作一个Windows蓝色屏幕。贾景晖,
|
|
|
|
我不认为WDT有ISR。我也不认为这样做有道理。如果你有一个循环卡在主,ISR会执行,不管主程序没有响应。您将清除WDT并返回到无限循环。编辑:我想也许博斯克正在考虑定时器ISR来清除WDT。这不会导致上述问题吗?
|
|
|
|
如果CPU处于休眠模式,WDT将产生复位或NMI中断。但是,当前的EC Errata说这个NMI特性被破坏了,我没有在新的EF部分使用它。如果您认为WDT重置是由您的代码陷入某种等待状态引起的,那么可能最简单的事情就是bosco所说的——使用定时器中断来替换WDT。当定时器中断发生时,获取EPC寄存器的内容,这将给您一个好主意,您的代码在哪里卡住了。
|
|
|
|
或者博斯克习惯于武装。第一次看门狗定时器到期时,如果您满足所有条件(例如,设置在代码的关键部分或操作系统任务中的标志),则会触发中断,在这里您可以清除WDT。如果没有,你让看门狗定时器再次过期,芯片被重置。如果在第一次中断中清除看门狗不满足条件,则可以设置断点并调试原因。至少,这是我用过的皮质M4设备的行为。虽然没有帮助OP……/ Ruben
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
5244 浏览 9 评论
2035 浏览 8 评论
1955 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3209 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2260 浏览 5 评论
779浏览 1评论
672浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
598浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
682浏览 0评论
579浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 06:25 , Processed in 1.332845 second(s), Total 87, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号