断点是工程师最常见的调试手段了。下面是MPLAB里Dashboard看到的。
很简单,不过软件断点和硬件断点有什么区别?
搜索MPLAB的Help。可以看到下表
1. 硬件断点会写入到芯片内部调试模块,占用硬件资源,因此也就几个而已。
软件断点是无限的,其根由是因为调试工具会将break的指令写入到程序区打断点的地方,
断点碰到后,再用原来的指令替换掉break。执行效果一样,只是程序区已经被写了两次了。
2. 硬件断点还支持程序/数据两种(后续再加以讨论),软件断点因其根由也只能支持程序一种。
3. 同样的,由于软件断点本质上是修改程序区,所以其设置时间基本和写程序区的时间相关。
4. 最下面一行是断点的前滑,只有硬件断点可能有此表现,并且也和芯片有关系。
这是PIC18F87K90的例子,可以看到指针指到了断点的下面。
这是PIC16F18446, 没有skidding
如果有不准确的地方,欢迎大家指正和补充。
|