[PIC®/AVR®/dsPIC®产品]

断点的故事: 2.数据断点

[复制链接]
563|3
手机看帖
扫描二维码
随时随地手机跟帖
lcczg|  楼主 | 2020-1-20 15:17 | 显示全部楼层 |阅读模式
我想大多数人都应该没有用过数据断点。先思考一下,什么是数据断点,有什么用。

想想这个情形:曾经面对程序的某个变量,偶然会出现异常,于是在每个赋值的地方打断点,停下后观测其值是否正确。
因为偶然,所以大多数时候是空耗气力。虽然最终能够抓到,但过程却崎岖不平。

数据断点简而言之是针对数据的断点。也是说针对数据的操作能够设置断点抓到,只要你提供一个数据所在的
地址。
这样,前面麻烦的乌云是不是一扫而光。
来一个鲜活的例子,串口打印,且记下次数。
下图中cnt用作打印计数器,数据断点在其值为8时就停下来。可以看到串口窗口中的对应的输出。
data breakpoint.PNG


我们再抓一下打印的ASCII码 '/n', 就是往串口发送寄存器TXREG写入0x0A的时候,
data breakpoint2.PNG
此时TX2REG的值
data breakpoint3.PNG

数据断点还有其他的选项,感兴趣的朋友可以尝试一下。
现在对于飘忽的象野马一样的数据,我们是不是有了套马索一样的利器。

PIC18F47Q10的例子工程见附件,基于MPLAB X IDE 5.30 & XC8 2.10创建。
=====================
另:

断点的故事:1.软硬  https://bbs.21ic.com/icview-2874280-1-1.html








pic18f47q10 debug.zip

49.32 KB

使用特权

评论回复
评分
参与人数 1威望 +10 收起 理由
xyz549040622 + 10 很给力!
xyz549040622| | 2020-1-20 23:38 | 显示全部楼层
PIC没玩过,这么做的前提是仿真器和编辑器要支持,MDK不知道支持不?

使用特权

评论回复
lcczg|  楼主 | 2020-1-21 10:36 | 显示全部楼层
xyz549040622 发表于 2020-1-20 23:38
PIC没玩过,这么做的前提是仿真器和编辑器要支持,MDK不知道支持不?

是的,仿真器要支持

使用特权

评论回复
pzsh| | 2020-1-22 10:35 | 显示全部楼层
深入, 有趣, 套马索一样的利器

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:滴水可穿石,众志更成城 http://my.21ic.com/static/image/smiley/comcom/2.gif

27

主题

812

帖子

4

粉丝