jlink ob最新固件提取

开发产品一定离不开的是调试器,现在国内市场上大多用的是盗版的j_link ob和st_link。这两个调试器diy的可能性很大,我见过二合一的调试器。但是世面上的固件一般都是老版本的,在用新驱动的时候容易识别盗版导致不能用,虽然可以将驱动版本调低来解决。本文就是介绍如何提取最新的固件。

首先来看一下jlink ob。用到的文件是驱动安装目录下的JlinkARM.dll这个文件(这里以比较新的驱动版本6.18C为例)。这个文件里面包含了arm内核的所有固件,不止是jlink ob,不过其他的我没实验。还用到的软件是winhex。准备好下面开始提取固件。

第一步,用winhex打开JlinkARM.dll。

如图:

第二步,寻找固件位置。这里我就不卖关子了,直接用搜索功能 向下搜索stm32(ob的ic是stm32的)。由于stm32关键词比较多,固件位置一般靠下,可以鼠标向下适当拉一下在向下搜索。

我搜索到的第一个内容,可以看到这个固件的编译日期是2017年 用的ic是stm32f072。

找到固件的大题位置了怎么找到开头那?我就值说了,为什么就不说了,在这里向上搜索16进制字符0020(注意是16进制)。

找到了这个,首先是0020的位置一般是偶地址开始的(比对其他固件没发现不是)。

还有就是后面不愿处跟着一大堆有规律的数据,什么规律我也不知道,但是能看出来特殊,像这样

看着差不多就行了。然后从0020在往前推2个字节,比如这个也就是40 22 00 20;40就是固件的开始,开始找到了,那么怎么找到结尾那。这个比较简单,因为你多取没事,但是不能少取;最极端的方法就是看看你jlink ob用的ic的flash多大,就取多大(注意,因为固件前面还有一段bootloater,用来更新固件用的,所以要减去这个长度,这个bootloater后面会说)。

第二种方法就是找到下一个固件的开始,然后截取,不一定这么精确,多取一点没事。

把着一段内容复制出来,用winhex新建一个文件,粘贴过去。这个文件就是你提取的固件了,比如这个是2017年编译的已经非常新了,再也不怕报错了。

市面上的jlink ob大多是stm32F103的,这个固件不适合用,读者们自己接着往下搜索,就可以找到stm32F103的固件,提取方法时一样的。

F103的固件有两个:

这个编译时间比较新2017年,不知到时什么版本的,我烧写到我的jlink ob(stm32f103c8)里面时可以用的,但是好像指示灯和我手上的不一样了,不影响使用。但是最高支持2250K的频率。

这个版本在我的jilin ob(stm32f103c8)指示灯正常,显示最高频率4000K。(但是我经过测试两个固件的烧写速度一样,设置1M 2M 3M 5M烧写速度全部一样)。

你以为完了吗?当然没有,上面提到过前面还有一段用来更新固件的bootloater,这个bootloater的大小有0x4000(f103c8的大小,其他不知道)的大小并且在jlinkarm.dll里面找不到。怎么办?

有两种办法解决:

  1. 不用这个bootloater直接跳过,但是也要经过一些处理。在你提取出来的固件前面用winhex添加0x4000大小的空字节,充填数据全是0xFF就行了,然后改充填完0xFF的固件前面8个字节和提取出来的固件前8个字节一样

比如(注:图片有错误,应该重填0xFF,而不是0x00)

这个是真正固件的开头(无改动,注意偏移地址在stm32f103c8上是0x4000)。

这样把改完的固件烧写到stm32F103c8里面就行了,至于为什么这样改这里就不多讲了,内核决定。但是这样处理是不能用官方软件更新升级固件的,因为根本没有bootloater

第二种处理方法是,找一段官方的bootloater加在固件前面,这个bootloater我在下面提供下载(但是我认为没必要,因为本来就是盗版)

下载资源含有两个完整的jlink ob固件;适用ic:stm32f101c8/cb stm32f103c8/cb。一个bootloater

下载链接:https://download.csdn.net/download/qq_39663845/10547285

  • 13
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
J-Link OB V2 固件是指 Segger 公司开发的用于 J-Link OB V2 仿真器的固件版本。J-Link OB V2 是一款用于调试和仿真的产品,广泛应用于嵌入式系统的开发中。 该固件提供了许多功能和特性,使其成为开发者理想的工具之一。首先,它支持多种主流的嵌入式处理器架构,例如 ARM、MIPS 和 RISC-V,能够满足不同项目的需要。 其次,J-Link OB V2 固件支持高速下载和调试,能够快速加载程序和调试代码,并提供实时和准确的调试信息。这有助于开发者快速定位和解决问题,提高开发效率。 此外,J-Link OB V2 固件还支持各种调试接口,包括 SWD(Serial Wire Debug)、JTAG(Joint Test Action Group)和 cJTAG(Compact Joint Test Action Group),为开发者提供了灵活的连接方式。 J-Link OB V2 固件还具有易于使用的命令行界面和图形界面,使其更加友好和直观。它还具备自动识别目标设备的功能,使得开发者可以快速开始调试过程,无需手动配置太多参数。 最后,J-Link OB V2 固件经过了严格的测试和验证,具有非常稳定和可靠的性能。Segger 公司定期发布固件更新,以修复漏洞、改进功能和支持新的处理器架构。 总之,J-Link OB V2 固件是一款高性能、稳定可靠的固件版本,为嵌入式系统开发提供了强大的调试和仿真功能。无论是初学者还是经验丰富的开发者,都可以从中受益并提高工作效率。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值