我用PIC汇编语言编写了一些测试代码,我并不打算在实际的PIC MCU上运行,而是要生成跟踪文件,以便稍后可以使用单独的工具进行分析。因此,我需要一种在特定代码点永久停止模拟器的方法,而无需手动在那里设置断点。这样,我就可以从代码中终止跟踪收集。
回到MPLAB 8.92中,我使用这个简单的技巧来完成这个任务:"call $“命令。这条指令只是简单地调用自己,迅速溢出堆栈,在MPLAB 8.92中,这是通过CORE-E0001消息暂停模拟器。任务完成!
但是,当我迁移到MPLAB X 5.25时,我发现使用此技巧模拟器不再停止。即使我转到项目设置并指定模拟器应在所有类型的警告消息上中断,它也不会停止。
那么,我做错了什么呢?在MPLAB X中使用MCU代码停止模拟器的最佳工作方式是什么?请不要建议使用明确的断点,这是不可行的,我需要在几十个项目中设置数百个断点。
发布于 2021-03-07 07:12:27
在MPLAB中,转到Project Properties。在树中:选择Simulator Categories Options for Simulator are now visible。在Options categories下选择Warning Messages Break Options,然后按on Unlock按钮。
假设您不希望您的模拟在Watchdog Timer重置事件时停止。Find on list W0004-CORE: Watchdog Timer has caused a Reset.并将Report选项更改为Break。按Apply按钮。现在,程序模拟将在每次Watchdog Timer重置事件时停止。
PS:我使用的是MPLAB v5.35。对于在堆栈溢出时中断,请使用选项W0012-CORE: Device Resets on stack overflow.
https://stackoverflow.com/questions/66502328
复制相似问题