JLink Commander调试方法

JLink Commander调试方法

1. 背景

  • 目前开发中常用的调试手段主要有串口、IO口输出作为调试方式。目前串口的限制较多,有些硬件不太方便接串口或者一些实时的数据,当时没有接串口则无法实时获取调试信息。
  • IO调试,可获得的信息较少,在设备出现运行异常,如死机等情况,无法通过串口和IO口获得较多现场的信息。
    Jlink可以通过commander命令调试口或者比较多现场实时的数据以及调试信息。例如:
    1)获取当前运行PC指针,
    2)获取ram以及flash中的数据,结合map文件可以查看代码中的变量值
  • 这些信息有助于提高开发效率以及快速定位问题。
    Jlink commander命令还可以和JLINK RTT结合,用来打印应用log,RTT可以用来替换uart串口。

目标

提高开发效率,获取代码现场数据,缩短定位bug的时间。

实现方法

硬件条件:
JLink(V8版本以上),
安装JLink驱动,JLink驱动要求V4.9以上,
支持Jlink的设备

JLINK Commander使用方法。

  1. 连接JLink到设备,并安装好对应的驱动,
  2. 打开Jlink Commander 终端
  3. 输入connect命令
  4. 按照提示输入:?
  5. 系统会弹窗并提示选择对应平台,以富芮坤8018为例,这里选择Cortex M3
  6. 选择接口为SWD,并设置传输速率
  7. 界面显示识别到了Cortex M3 ,便连接上了目标板,如下图所示

image-20211013163026166

  1. 此时我们就可以使用jlink commander命令来进行调试 ,commander 命令可参考segger官方说明文档:https://wiki.segger.com/J-Link_Commander

    常用的命令有halt,go,mem(mem8,mem16, mem32), write(write1, write2, write4 )

    其他的命令可以自行体验: 如setpc命令用来设置PC指针。Erase命令用来擦除flash

    命令功能参数备注
    halt停止运行停止运行后,会显示PC指针,SP地址等信息。
    go运行
    mem读取内存地址起始地址 读取长度可以结合map文件读取对应变量的值。
    write写对应地址。 可以和mem命令配合使用起始地址 读取长度结合map文件写入变量的值。
    • halt 命令是可以与go命令配合使用,执行halt命令后,设备会停止运行,并再commander终端显示当前寄存器的数值。里面可以重点关注PC指针,SP指针和R14寄存器值。

    image-20211013170030699

    上面的信息连可以看到当前运行的PC指针,再可以结合生成的map文件,就可以看到当前运行的函数。例如上面运行的PC指针为0x01000E72,下图是固件的map文件,查看map文件对应地址的函数为SEGGER_RTT_Write。

image-20211013171321990

  • go 命令:

    用来运行程序,需要和halt命令配合执行,在halt执行后,再运行go。

  • mem:

    用来读取内存的数据,参数为内存的地址和读取的长度。 mem8 mem16 mem32分别用来读取不同长度单位的数据。 也可以直接用mem命令按照8位来读取。

    例如下图命令读取0x20003300地址16个字节的内容,里面存放的是“SEGGER RTT”的字符串

    image-20211013181436054

    write:

    用来写入对应的内存地址,参数为内存的地址和写入的数据。write1 write2 write4分别用来写入不用的自己长度。

    例如要在上面0x20003300地址写入12345678,则执行如下命令:write4 0x20003300 12345678

    在通过mem命令读取0x20003300地址数据,可以看到数据已经变成了12345678

image-20211013182156671

  • 10
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在J-Link调试器出现问题或需要升级时,我们可以尝试刷新J-Link调试器固件。下面是刷新J-Link调试器固件的具体步骤: 1.准备好J-Link调试器和电脑,并确保它们之间的连接正常。 2.下载J-Link调试器固件升级工具(J-Link Commander)并安装。 3.打开J-Link Commander,连接J-Link调试器并选中正确的接口。 4.输入命令“device erase”,清除J-Link调试器中的固件。 5.输入命令“loadbin xxx.bin,0x08000000”,将新的J-Link调试器固件下载到设备中。其中xxx.bin可以是下载的固件文件名,0x08000000为固件加载地址,需与固件实际地址对应。 6.等待固件下载完毕后,断开连接并重新连接J-Link调试器。此时,应该可以正常使用J-Link调试器了。 需要注意的是,在刷新J-Link调试器固件时,一定要选择正确的固件版本和对应的接口,否则可能会引起无法预料的问题。同时,刷新固件也会清除设备中的数据,请务必备份好重要的文件和数据。 ### 回答2: 使用J-Link调试器时,可能会出现固件版本更新导致旧J-Link调试器无法使用新功能或与新芯片兼容不良的情况。这时需要刷新J-Link调试器固件。 刷新J-Link调试器固件需要以下步骤: 1. 下载新固件:在SEGGER公司的官网上下载最新版的J-Link调试器固件。 2. 准备J-Link调试器:将需要更新固件的J-Link调试器与计算机连接。 3. 进入Bootloader模式:按住J-Link调试器上的“Reset”/“Restore”按钮或连接一些硬件引脚可以将J-Link调试器进入Bootloader模式。 4. 连接计算机:使用J-Link Commander / J-Flash Lite等工具与J-Link调试器建立连接。 5. 擦除旧固件:使用擦除命令删除原J-Link调试器中的旧固件。 6. 写入新固件:使用下载命令将新固件写入J-Link调试器中。 7. 重启设备:关闭J-Link Commander / J-Flash Lite等工具,并断开J-Link调试器与计算机的连接。按住J-Link调试器上的“Reset”/“Restore”按钮重启设备。 这样就完成了刷新J-Link调试器固件的过程。刷新后的J-Link调试器可以使用其更新的功能和与新芯片的兼容性。 ### 回答3: Jlink调试器是一种高效的调试器,经常用于调试嵌入式系统。固件是该调试器的关键部分,它包含软件和硬件。如果您需要更新固件,可以按照以下步骤: 1. 下载Jlink调试器固件升级工具和固件文件。 2. 将Jlink调试器连接到电脑上,打开J-Link软件。 3. 点击菜单栏上的“File”,再选择“Update firmware”。 4. 在弹出的固件升级对话框中选择固件文件,然后单击“Open”按钮。 5. 连接Jlink调试器时,必须在“Device”栏中选择正确的设备型号。如果您不确定设备型号,请查询官方网站或查看用户手册。 6. 点击“Update Firmware”按钮,将开始更新固件。更新过程可能需要几分钟时间,请耐心等待。 7. 更新完成后,软件会提示您是否需要重新启动Jlink调试器。单击“Yes”按钮。 8. 更新完成后,可以通过单击菜单栏上的“Info”按钮来确认新的固件已经正确安装。 以上就是刷新Jlink调试器固件的步骤。记得在操作前备份所有数据,以防止数据丢失。如果您遇到任何问题,请参考用户手册或官方网站。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

物联网布道师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值