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里面找不到。怎么办?
有两种办法解决:
- 不用这个bootloater直接跳过,但是也要经过一些处理。在你提取出来的固件前面用winhex添加0x4000大小的空字节,充填数据全是0x00就行了,然后改充填完0x00的固件前面8个字节和提取出来的固件前8个字节一样
比如我的
改了两个,没影响。
这个是真正固件的开头(无改动,注意偏移地址在stm32f103c8上是0x4000)。
这样把改完的固件烧写到stm32F103c8里面就行了,至于为什么这样改这里就不多讲了,内核决定。但是这样处理是不能用官方软件更新升级固件的,因为根本没有bootloater
第二种处理方法是,找一段官方的bootloater加在固件前面,这个bootloater我在下面提供下载(但是我认为没必要,因为本来就是盗版)
下载资源含有两个完整的jlink ob固件;适用ic:stm32f101c8/cb stm32f103c8/cb。一个bootloater
下载链接:https://download.csdn.net/download/qq_39663845/10547285
注:世面上用的ic有的是stm32f101c8/cb stm32f103c8/cb都是通用的。
大家可能会问101不是没有usb功能吗?其实是硬件是有的,但是出厂没测试,或者是残次品。
也就是说你可以用但是st不售后,出了问题别找我。
还有就是f103c8的flash其实有128K,和上面一样也是没测试。stm32f101c8/cb stm32f103c8/cb这4个感觉就是一个东西不同名而已
jlink ob最新固件提取相关推荐
- jlink、DAPLink、J-Link OB资料整理
现在市面上的单片机调试器种类太多了,什么jlink-ob.DAPLink.j-link PRO.ST-Link...... 今天就来全部介绍并且梳理一下. 一.Segger的正版j-Link家族 首先 ...
- 学习STM32日志(1):JLink OB仿真器常见问题与解决方法
作为一个刚上手STM32的小白,在刚拿到STM32最小系统板(由于正点原子的开发板太贵了就买了最小系统板)和Jlink ob后便兴冲冲想下载程序进去.然而突然发现自己一脸茫然不知怎么办,在CSDN上搜 ...
- 保姆级STM32F103C8T6做USB-TypeC版J-link OB(官方数据手册,硬件设计,固件烧录,序列号SN修改)
前言 项目开发要用到Jlink调试代码,每次连接都有用Jlink 的Jtag连接板子的SWD接口,又恰逢开发板升级,然后想着能否把Jlink集成在下一代的开发板上. 看了下手中的Jlink好像比较小 ...
- 自制Jlink ob 072
最近参考别人的帖子,自己也做了个Jlink ob,用来替代JLINK,这个是基于STM32F072做的,写个帖子,记录一下 从原理图开始 接着是PCB 布置得有点乱,尴尬 发工厂做板,焊接,有根线有错 ...
- J-link OB 读取不了的问题
今天在调试程序的时候一直显示 然后呢,因为OB我也是第一次使用,所以遇到这种情况我也一脸懵逼, 因为之前一直也玩32,也没遇到这种情况. 后来找了个老铁咨询了一下,说只要OB接上去听到电脑的声音证明已 ...
- Jlink OB仿真Cortex-M7的问题
使用淘宝便宜的jlink-ob给stm32f767进行烧录程序的时候,出现了如下提示: 回到淘宝链接查看了下商品详情: 确实人家不支持M7,博主想的是如果想支持M7,那一定要使用更高版本的Jlink固 ...
- Jlink ob制作教程 三线Jlink ob神器!!!
传统JLINK体积大.引脚多,而且我们用的非官方版本,经常掉固件,诸多问题一直困扰着我,经过一番折腾,终于找到了正解:jlinkob,一个只有三条线的调试器,除了不能检测目标板电压(也没啥用),剩下的 ...
- J-Link软件和文档包的版本发行说明(2)[V4.96 ~ V6.12j版本]
官方链接:https://www.segger.com/downloads/jlink/ReleaseNotes_JLink.html J-Link软件和文档包的版本发行说明(1)[V3.00d ~ ...
- ST-Link 转JLink
根据两篇博文,操作. 1,SEGGER官方提供 将ST-Link固件升级到成J-link OB固件 http://www.amobbs.com/thread-5649373-1-1.html ST官方 ...
最新文章
- 基于TensorRT车辆实时推理优化
- ESP8266-iot-2
- 硬盘运行微型linux,linux用smartctl看硬盘运行了多少小时
- canal 监听不到数据变化_数据的异构实战(二)手写迷你版同步工程
- 树状数组维护区间和的模型及其拓广的简单总结
- Android为spinner设置适配器,Android Spinner与适配器模式详解及实例代码
- padodb time.inc.php,怎样实现PHP中ADODB事务处理
- mysql 报错从 新安装
- [转载] 柯受良-柯受良飞跃黄河
- 电脑蓝屏后你该做的几桩要事
- db2数据库基础知识
- edid ddc 显示器识别
- PHP开发Paypal支付,支付流程和接口实现方案
- 京瓷打印机p5026cdn_京瓷ECOSYS P5026cdn驱动
- qq浏览器android flash,支持flash游戏 安卓QQ浏览器2.0预览版体验
- 关于平面束方程的理解
- 小程序和app究竟哪个好?
- 0723函数的递归以及模块的初识
- 通过修改注册表权限修复ArcMap启动报错问题
- Redux 的基本使用
热门文章
- 邂逅未来生活场景:中国房地产精装修前沿论坛直击
- 解决Google浏览器网页覆盖问题
- 【韩老师设计模式7】外观和享元模式,MyBatis的Configuration创建 MetaObject。Integer.valueOf
- assoc fetch mysql 用法_mysql_fetch_assoc与mysql_fetch_array的区别?
- Servlet之间跳转
- 百度地图js版api绘制几何图形覆盖物并保存数据库
- C51 printf格式化输出特殊用法
- 也许是目前最全的计算机的网络模型讲解
- 「精致店主理人」:青年敢有所为,梦想掷地有声
- AntD 圣诞节彩蛋事件