加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

如何获取Jlink-ob的固件

05/29 10:14
5527
阅读需 6 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

前面文章提到,我准备自己DIY一个DebugTool,自己做一个既能够通过SWD下载又能实现RTT和兼容Jscop进行波形输出,同时还能进行串口通信的工具。

在对比了DAPLink和Jlink-ob之后,我觉得先使用STM32F072这个芯片来DIY一个Jlink-ob,使用072好处是,它电路简单,不需要外部晶振,同时支持opencdc的虚拟串口和SWO引脚

这样,如果效果好的话,就在DebugTool上面继承DAPlink和Jlink-ob两个烧录器,可以同时跟踪调试多个板子。

首先花了一个小时画了个小板子,正好嘉立创有免费的打板优惠卷,连运费都不需要,真的感谢嘉立创。

为了方便可靠,接口使用了TypeC接口,并将CC1和CC2进行下拉,保证任何接口都可以获取到5V的VBUS电压。

由于无需晶振,电路非常简洁,为了方便手工焊接,所有阻容元器件全部选用了0603封装,吃激素吃的手还是抖,驾驭不了0402的器件。

鉴于嘉立创的免费卷,先做一个独立的下载器手工一下。另外,立创商城的STM32真的价格太高了,我还是选择了淘宝,目前STM32F072C8T6大概是3块钱一片,拆机件便宜一些,还在板子上的,没拆下来的更便宜,1.8就可以拿到手。

板子还没到,所以先学习一下,如果获取STM32F072中的jlink-ob的固件

SEGGER肯定不会给我们在官方网站上提供一个按钮的。

但是,我们知道,我们在使用jlink-ob的时候,经常会遇到固件更新的提示,既然它能够通过usb更新jlink-ob的固件,那么说明jlink的驱动程序中一定包含了对应的固件。

一个网名为DIY JLink-OB-072 (JLink + COM) : X893的大神就找到了固件的位置,我们一起来探究一下。

先说答案,这个固件存放在jlink的驱动文件中,就是我们在MDK中也会调用的JlinkAMR.dll文件。

dll文件就是window系统中编译好的二进制文件,所以我们可以使用vs code或者Winhex打开这个二进制文件,就像我们打开bin文件一样。

我们可以在里面搜索关键字,关键字搜索可以直接搜索STM32F072,这个dll文件里面包含多个jlink-ob的固件,这里我们只关心对应STM32F072的。

从上面的图里,我们可以看到这个版本的dll文件中,对应的jlink-ob的固件,以及他的编译时间为2017年。

顺着这个地方向上翻阅,可以翻到一个40 22 00 20 的地方,他后面还跟着 8D 46 01 08。

这里因为是小端模式,所以我们应该把这两个32bit的数据反过来,它就变成了0x20002240和0x0801468D。

熟悉Cortex-M核的朋友都知道,编译后生成的bin文件的第一个32bit数据和第二个32bit数据是处理器的SP和PC两个寄存器对应的取值。

SP是对应的程序的栈顶指针,而PC则对应着程序要运行的指令。

至于,这里的为什么是0x20002240和0x0801468D,我们在下一篇文章中分析。

这里,我们有了程序的起始部分,只需要把他后面的数据全部copy出来另存为一个bin文件就可以了,要copy多少呢,其实按照STM32F072的flash大小来复制就可以,因为程序结尾之后的数据并不会执行,除非他在程序末端存放了一些配置数据。

接下来,我们还需要制作一个bootloader固件,因为从PC指针对应的0x0801468D可以看出来,固件是从很大的一个地址开始运行,的所以我们需要将前面的数据补充为0xFF,然后将上面的提到的SP和PC指针对应的8个字节一起覆盖到bootloader的开始。

这样程序就会自动跳转到我们的固件中执行了。

关于SP和PC指针的确定,以及bootloader的大小还需要在研究一下。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
ECS-.327-12.5-17X-TR 1 ECS International Inc Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, ROHS COMPLIANT PACKAGE-4

ECAD模型

下载ECAD模型
$0.86 查看
SN74AHC1G14DBVR 1 Texas Instruments Single 2-V to 5.5-V inverter with Schmitt-Trigger inputs 5-SOT-23 -40 to 125

ECAD模型

下载ECAD模型
$0.1 查看
BCM53125MKMMLG 1 Broadcom Limited GIGIBIT ETHERNET SWITCH
$135.6 查看

相关推荐

电子产业图谱

多年硬件从业经验,专注分享从研发到供应链,再到精益制造过程中的经验和感悟!