我也经常碰到这种问题,我查看过,应该是MPLAB的问题,因为有些C语句被优化了,所以导致MPLAB在C源代码窗口可能定位不准位置。如果你在反汇编窗口设置断点的话,就可以停在相应的的断点行。(纯属个人意见,仅供参考 ...
MyLovetus 发表于 2011-4-29 21:48 
这不是MPLAB的问题,也不是编译器优化造成的,从技术角度看,类似ICD这种方式和流水线PC必然存在的一个小麻烦.
ICD3这种方式是通过内嵌了一段代码通过串行通信协议和IDE传送各种调试信息,而类似ICE方式则不是如此,而是运行在一种虚拟机的方式下,这种本质上的区别决定了这个小小的麻烦.
这个问题其实对于熟悉PIC的ICD调试的工程师来说,基本不太可能造成障碍,如果实在很不习惯,你完全可以使用ICE工具,不过,众多的工程师最后都选择了ICD本身就说明了其实是一个无所谓的问题.
呵呵,如果一切代码尽在掌握之中,你又何必在乎哪种调试手段?只有当你自己对自己写出来的代码'茫然'时,你才会需要通过大量的DEBUG来解决问题,一个合格的工程师写出的代码,其实不需要太多的DEBUG就能OK ,这就是功力,经验,能力的全面成就.
|