小小毛

  • 85 主题
  • 301 帖子
  • 1128 积分
  • 身份:版主
  • 热心工程师 技术达人
  • E币:1648

【原创】Segger RTT使用踩坑总结:如何寻找打印buff的起始地址?

2021-5-24 14:01:05 显示全部楼层
本帖最后由 小小毛 于 2021-5-24 14:04 编辑

       在写本文之前,参考了网上的一篇文章:
Segger RTT的使用——调试技巧_Andy001847的专栏-CSDN博客 https://blog.csdn.net/Andy001847/article/details/79241984?utm_medium=distribute.pc_relevant_download.none-task-blog-2~default~BlogCommendFromBaidu~default-7.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-2~default~BlogCommendFromBaidu~default-7.nonecas

很不幸踩坑了,所以才有了今天的文章来总结一下。

       网上很多类似这样介绍的,但是真正按照步骤实践起来却没那么顺利。我按照以上步骤进行操作,发现RTT-Viewer 并没有任何打印,经过一番折腾,
发现文章中介绍的有一个步骤需改更改,才能达到效果。
      按照网上的步骤移植完成了,但是呢?没有成功,一开始还怀疑代码没有移植好,后来才发现不是这个原因。
      最终原因是 内存池地址不对:
      企业微信截图_16213917961830.png
最终我把地址设置为0x20001210,此时打印就正常了!

       如何寻找这个up-buff的地址呢?需要进行在map文件中寻找,一般在调试过程中mdk工程不做大的改动,这个是地址几乎是不变的。
如果有变化,请到map文件中寻找!
企业微信截图_16213917483453.png
最后,看看效果吧。杠杠的!
企业微信截图_16213916594958.png

总结: 对于打印内存地址,需要灵活处理。 有的MCU能自动获取打印内存地址,我使用的国产M0+的mcu,却没有自动识别到内存地址,这也是一个因素吧!也就是国外的RTT软件对国产的mcu的兼容性没有做的那么好!




您需要登录后才可以评论 登录 | 立即注册

最新评论

楼层直达:

电子阔少

  • 150 主题
  • 653 帖子
  • 1577 积分
  • 身份:版主
  • 论坛新秀 灌水之王
  • E币:1688
电子阔少 2021-5-25 06:55:57 显示全部楼层
对于打印内存地址,需要灵活处理
感觉好难
快速回复
1
9
广告
关闭 热点推荐上一条 /6 下一条
快速回复 返回列表