• 2022-03-01

当调试传感器、AD值时,特别想把转换值直观的展示出来,就用到了下面几咱方法

通常的解决办法是用串口上位机,USB接口上位机或者MDK的逻辑分析仪功能,使用这三种方式都比较繁琐。
MDK的逻辑分析仪,我在网上看到的很多例程都是通过MDK的模拟debug才能够使用的,但是硬汉的例程中,他的例程可以实时调试,但是JLINK口需要接SWO引脚才可以使用,在单片机这个资源非常紧张的场合,能少用一个就少用一个。且,SWO输出速度也不快,好像是走的UART协议,应该速度 快不到哪去。

那最有前途的应该就是J-Scope了。 J-Scope有2种模式HSS RTT,这2种模拟各有千秋,

  1. HSS不需要任何修改代码,只要jscope打开xx.axf就可以了,
  2. RTT需要增加代码,把要输出的数据写入到DWT数据缓冲区中。

这个网友总结的非常好,
一些SEGGER RTT、MDK Event Recorder等记录/跟踪软件的思考 总结的核心在于SEGGER RTT VS MDK Component Viewer,侵入式 VS 非侵入式
根据上面的分类,那J-Scope的2种方式就分别对应了上面的2个类别。
J-Scope RTT <----> 侵入式
J-Scope HSS <----> 非侵入式
特别是这个J-Scope HSS模式,直接在非调试状态下,就可以看到程序中用到的globle static变量的值,还是很有用的,不过有时候我并不需要以图形化的界面展示, 既然能够图形化展示,那以列表展示就更加没问题了。
当需要高速数据分析时,可以用RTT模式。

串口通过上位机分析,
H7tool中也有个功能,可以把串口收到的温度值直观的在界面上展示出来,这个不知道能不能自己定制,比如展示其它模拟量,不一定是温度值,

还有一点,尽量用通用的一些工具,而不要用与编译器深度绑定的工具,比如 RTT Viewer J-Scope,这些工具无论用什么MCU,什么开发工具,基本上都可以用,但是如果你用MDK的逻辑分析义的话,那就限制的太死了,只能用MDK了。
(JLINK的国内版价格低廉是主要的)

amobbs上那个高人把调试软件从另外一个维度也分了2类:结构化和非结构化 RTT VIEW就是非结构化的,可以打印字符串/调试信息,仅仅就是替代printf()
而event recorder / system view 就是结构化的工具,因为他向PC发送的数据是一组组的,往往把数据,时间戳、事件ID、消息ID等等信息一起发过来, 这样往往获得的信息更多,PC做可以做更多的图形化展示。system view也是与开发工具无关的,板子正常运行时就只可以监测

前面介绍过J-SCOPE,感觉已经很好用了,没想到这还有一个system view,不过这2个工具是针对不同的调试目的的,
system view是从整体上观察嵌入式系统运行的细节
jscope是观察数据,特别是传感器产生的模拟数据,能够直观的观察数据的走向趋势
 

COdesys可视化数值输入和显示_systemview