标签 J-Link V9 下的文章

J-Link V9 使用7.x工具包提示 Probe 为 Clone 产品的处理

前言:

今天找出了以前低价拍到的 STM32_F4VE 开发板,又找到了网友处以散件形式低价购得的 J-Link V9 ,去 SEGGER 官网下载了 JLink 工具包并进行了安装。到了测试连接时却出现了问题,J-Flash 弹出以下警告:

The connected probe appears to be a J-Link clone.Using the J-Link software with a clone is forbidden and illegal.Proper operation cannot be guaranteed.

翻译成中文大致如此:当前连接的探针(调试器)看起来是一个 J-Link 复制品(盗版)。在复制品上使用 J-Link 软件不被允许也不合法。我们无法保证它能正常工作。

看了一下固件版本,固件应该是还是16年的魔改版本,也没有像原版一样的自动更新功能。这样肯定不行,于是我搜索了一下该如何处理。通过一番搜索,发现出现此问题的原因貌似是因为SEGGER升级了盗版识别机制,加入了对 SN 和扩展功能方面的验证,从而导致被检测为 Clone品,具体参考该贴

注意:本文所述方法仅针对使用 STM32F205RC/RE 主控的 J-Link V9 复制品,随着厂商更新,无法保证方法一直有效。刷写固件存在设备报废的风险,请自行斟酌,谨慎操作!

处理办法:

通过网友们的帖子了解到,解决此问题的方法,无非就是刷固件、改序列号、清除掉魔改添加的功能。经过一番尝试,发现最简单的方法就是刷入某不具名大佬提供的 Bootloader ,连接电脑打开 J-Link Configurator ,等待其自动升级最新固件即可。这样的结果是 SN 值会变成 -1,当然也有办法自定义 SN ,但神奇的是,SN 值为 -1 并不影响其功能。

相关文件已存储于IPFS网络,链接在此

具体过程:

相信您已经安装了 J-Link 软件包,对此这里不再赘述。使用一个可以正常工作的 J-Link 连接此异常 J-Link 的 SWD 调试接口,J-Link V9 标准克隆版通常会在靠近 PCB 边缘有四到五个预留焊盘,一般从靠近 F205 一端开始,依次为 VCC、GND、SWDIO、SWCLK 。没有大鸡也可以用 J-Link OB ,只是需要用 OB 的 SN 在 Segger J-Link keygen 中生成一个 J-Flash 许可添加到 J-Link License Manager 中,因为 J-Link OB 默认是不具有 J-Flash 使用许可的 。注意:视情况,目标板可能需要单独供电。

保证 SWD 接口稳固连接,打开 J-Flash 。在欢迎页选择 Create new project --> Start J-Flash 。Target device 中点击 ··· 按钮,根据实际情况搜索并选择 STM32F205R* ,Target interface 选择 SWD,Speed 选择1000kHz,如果后面无法建立连接,建议减小速率。最后点击 OK

将解压后的 bootloader.bin 文件拖入 J-Flash,设置起始地址为 0x8000000 ,点击 OK。点击 Target --> Connect 建立连接,点击 Manual Programming --> Erase Chip 擦除原始固件,点击 Manual Programming --> Program&Verify 刷入 Bootloader 并校验。

如果您希望自定义 J-Link 的 SN,此时可以关闭 Bootloader 数据窗口,点击 Manual Programming --> Read back --> Entire chip 回读整个芯片数据,然后回读的数据会显示在数据窗口中。通过Go To: 功能快速跳转到地址 0x800BF00 ,通过修改0x800BF000x800BF03 四个字节可以定义 J-Link V9 的 SN 。例如:0x800BF000x800BF03 依次是 7D、C3、C0、01,则 SN 为 01C9C37D = 29999997。按自己意愿修改后参考上面步骤重新全片擦除并写入即完成 SN 的自定义。如果不需要自定义 SN,可跳过本段。

拆除固件烧录的相关连接,将刷好 Bootloader 的 J-Link V9 通过 USB 连接到计算机,打开 J-Link Configurator ,会自动弹出固件修复窗口,等待其完成最新版本固件的刷入,然后拔下 USB 重新连接,J-Link V9 即可正常使用了。如果没有自定义SN,会看到硬件SN是-1,如果有自定义SN,则会显示自定义的SN。

参考: