使用daplink下载任意格式固件
前言
daplink是个好东西,又便宜又好用,还不担心盗版,但是没有stlink和jlink那样的上位机可以直接下载固件,这就很头疼了。怎么办?
还好通过jtag/sw协议下载固件有很多开源的项目
项目介绍
openOCD
大名鼎鼎的openOCD(上手难度太高了,pass)
python写的pyOCD
Open source Python library for programming and debugging Arm Cortex-M microcontrollers
人生苦短,我用python
rust写的probe-rs
A debugging toolset and library for debugging embedded ARM and RISC-V targets on a separate host
考虑下用rust重构项目吗?
pyOCD和probe-rs都可以使用命令行下载,前者有pack包就可以,后者需要用软件将pack包转换成yaml使用。
命令行指令官方有提供,但是用起来还是不够方便,打包成GUI会好很多。
获取GUI
好人当然要做到底,这里奉上对应的GUI项目:
-
一个简单的GUI,为DAP-LINK提供烧录工具,基于tkinter,pygubu和pyocd。
早期写的GUI,由于pyocd有bug,只能给daplink用
-
a easy gui for probe-rs, use daplink/stlink/jlink download bin/elf/hex file
好处是下载快,支持大部分link
上手使用
两个GUI操作方式相同(毕竟长得也完全一样),只是使用的配置文件不同。
dap_download
使用该上位机,需要以下几个文件:
- pack包
- 固件,可以是bin/elf/hex
- 配置文件
配置文件介绍:
target_override: GD32F310G8 #目标芯片型号
pack: #烧录算法所在位置,可以存放多个
./GD32F3x0_DFP.3.0.2.pack
frequency: 10000000 #烧录速率
yaml文件主要告诉pyocd要烧录的chip型号和对应的pack包在哪,通常把pack包和yaml放在一起即可。
然后在上位机页面,选择bin文件
一项,选择要烧录的固件;
选择配置文件所在文件夹
一项,选择yaml文件所在的文件,点击开始下载
即可。
probe-rs-GUI
使用该上位机,需要以下几个文件:
- pack包
- 固件,可以是bin/elf/hex
- 配置文件
配置文件介绍:
chip: HC32F4A0PGTB
pack_yaml: ./HC32F4A0-Series.yaml
speed: '16000'
base_address: '0x00000000' #just for bin file, default is 0x08000000. negligible
和dap_download不一样的是,probe-rs需要手动将pack包转成yaml文件,好在官方提供了转换方法 how to use
还有烧录Bin文件时,需要手动指定起始地址
然后在上位机页面,Select Bin
一项,选择要烧录的固件;
Select Config
一项,选择yaml文件(注意不是pack包转换的yaml文件),点击Download
即可。