sohappyoh 发表于 2018-3-8 19:33:40

求教 MPLAB 只设置了一个断点却不能停

昨天好像断点能停,今天发现断点变成了,而且我只设置了一个断点,测试端口输出波形也是正常的。


liansh2002 发表于 2018-3-9 17:31:43

本帖最后由 liansh2002 于 2018-3-9 17:34 编辑

这种中间带裂缝的是无效断点。
原因可能与XC编译器的优化有关,最后生成的汇编与C语言并不是一一对应的(官方给的解释是效率高)。所以这一行C语言转换的汇编代码可能并不在这个位置,也可能与其它汇编合并后根本就没有
我的解决方法是把优化等级调到最低,同时Operation mode不要使用pro模式,用Free

补充一下,如果之前能断,很有可能是你在程序运行中设置了断点,PICkit3是不支持运行中设断点的,停掉以后重设一次试试

sohappyoh 发表于 2018-3-9 17:43:30

liansh2002 发表于 2018-3-9 17:31
这种中间带裂缝的是无效断点。
原因可能与XC编译器的优化有关,最后生成的汇编与C语言并不是一一对应的(官 ...

感谢,我现在就是再运行前加的断点,我用的是xc16编译器,选择优化级别是0:

浮华一生 发表于 2018-3-9 17:50:10

看着MPLAB 这环境和编译器 , 然后想想atmel 和 即将可能被收购的 Mircosemi 就心痛. ....    Microchip这货太懒了.....

liansh2002 发表于 2018-3-9 17:54:19

先在窗口->调试->反汇编 里查看是否有对应的汇编
然后优化等级我是XC8,有一个关闭优化,XC16没有的话把最后那个模式改为Free
再不行试试在前后相邻的几行打断点

sohappyoh 发表于 2018-3-9 18:21:05

liansh2002 发表于 2018-3-9 17:54
先在窗口->调试->反汇编 里查看是否有对应的汇编
然后优化等级我是XC8,有一个关闭优化,XC16没有的话把最 ...

我的默认就是0 :就是不优化

页: [1]
查看完整版本: 求教 MPLAB 只设置了一个断点却不能停