J-link全家桶
什么是j-link全家桶呢?我们下载好j-link的驱动之后,一般还会顺便下载j-link的sdk,这些sdk就是j-link全家桶啦这是干嘛的?说白了,就是为了方便用户下载和调试代码的。只是如果没用过,一开始会用点懵逼,啊!那么多sdk我怎么用啊?我拿头玩?所以,很多时候就没管它,其实,他是一个非常牛逼的东西哦!下面就大致说一下这个sdk的作用。
J-flash
这个是j-link其中的一种,一般可以看到它有啥j-flash-spi、j-flash反正都是一个目的就是下载代码。我们这里使用j-flash举例子,打开之后,就会显示一个操作界面,这个界面可以选择打开下载文件,可以选择烧录的mcu型号和初始地址,所以,这样还可以依靠bootloader跳转到其他地方执行我下载的这个函数。选择swd下载,连接,清空flash,任何下载即可。
J-mem
看名字大概就知道是干嘛得了吧,没错就是修改和查看内存的。J-Mem 是一个 GUI 应用程序,用于在目标运行时显示和修改目标系统的 RAM 和 SFR(特殊功能寄存器)。打开之后也是一个类似于j-flash的页面,可以选择读取特定地址的内容,查看和保持甚至是修改内容,这个还是不错的,可以用来后续的一些序列号的烧录呢,设置周期性刷新显示的内存内容。逆向的话这应该有可能吧。
J-Link command
看名字又知道是什么意思了,命令行操作,这个就有点像debug操作了,可以通过命令来进行pc指针和运行过程的跳转,hold内核、单步、全速、设置断点、查看内核和外设寄存器、读取flash代码等等,方便大家拥有最高的权限查看在运行中的MCU情况,查找非IDE仿真情况下,MCU运行异常的原因。
Jlink commander使用方法(附指令大全)-CSDN博客
可以参考这个博客哦。
J-Link GDB
GNU 项目调试器 (GDB) 是一个免费提供的开源调试器,根据 GPL 条款分发。 它可以在命令行模式下使用,这个原本是linux环境下的debug调试器,现在用了这个gdb,就可以调用和操作了,但是这个东西真的不如keil自身的debug,不够如果使用的其他ide装备了GBD,那没办法了,只能靠这个使用了,毕竟keil界面确实老了。
J-Scope
这个就是一个图形显示,可视化可在目标运行时实时分析和可视化微控制器上的数据。就是说,项目通过特定的函数来实现发送任何这个应用接受之后就会显示在UI上面,可以就是一个示波器的作用。具体怎么使用呢?找到Scope的安装位置,找到sample中就可以看到很多没有解压的包了,还包括下面的rtt的包,把它解压了,把c和h文件复制到项目中。进行一些配置和处理,在项目中使用这些c文件中的api就可以进行向这个应用发送波形啦。其实本质就是调用api,配置好对应的宏,J-Scope进行捕捉显示罢了。
工具 | 教你使用Jlink+JScope显示波形_j-scopev7.66a怎么打印正弦波-CSDN博客
可以参考这个博客哦。
J-Link RTT
RTT全称是Real Time Transmit(实时传输)是Segger公司推出的调试手段之一。它是一种用于嵌入式中与用户进行交互的技术。这个就是一个互通手段而已,因为要知道swd是串行调试接口,本来就是可以双向通信的,所以还是和上面一样的操作,进行一些ch添加到项目,配置config属性,调用api进行读取和发送就实现了。其实直接使用打印也是一个好办法呢!不过这个方法省了一个串口还是不错的哦。
详解J-Link RTT打印 - 知乎 (zhihu.com)
可以参考这个博客哦。
结语
下面这个是j-link官方文档的地址,有什么疑惑或者歧义,我i们都应该以官方文档为标准,以实际开发中的现象为依据。其实功能不止那么点,只是说了一下常用的,更多功能可以到官网去查看使用哦。官方有api调用实例,可以参考分析哦。
UM08001 J-Link / J-Trace User Guide - SEGGER Wiki
这个是一个很好用的工具,但是这个有和没有都不会对项目开发有什么致命影响,就是开发效率的作用,一个好的工程师,肯定会借助多个工具。正所谓,君子生非异也,善假于物也。