# daplink_cli **Repository Path**: jhembed/daplink_cli ## Basic Information - **Project Name**: daplink_cli - **Description**: DAPLink上位机DAPLinkUtility分支软件,daplink命令行工具,用于替代pyocd。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-10-17 - **Last Updated**: 2025-10-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # daplink_cli ### 介绍 > 交流QQ群:832486982,可在群文件中下载,也可在这里: > > https://gitee.com/jhembed/daplink_cli DAPLink上位机DAPLinkUtility分支软件,daplink命令行工具,用于替代pyocd。 纯C/C++实现,静态编译,无任何依赖,即开即用。 免安装pack包,与具体芯片无关使用,只需在命令行中指定目标芯片的设备信息如:内存地址、内存大小等。 > 注:当前版本仅支持BIN格式文件烧录。 ![ ](./assets/main.png) --- ### 支持命令 - help:帮助信息 - list:列举出当前接入的DAPLink调试器 - flash:烧录固件 - erase:擦除目标FLASH - read:读取目标FLASH - cmd:启动SWD控制台 任意一个子命令都可以通过-h或--help参数查看使用帮助,例如: ```bash daplink.exe flash -h ``` --- ### 使用示例 **公共参数说明** - --connect:连接方式,默认正常连接 - --speed:时钟速度,默认1MHz - --reset:复位方式,默认软件复位 - --AP:Debug Access Port,AP端口,默认为0,绝大多数芯片都为0 - --flm:指定芯片.FLM格式的烧录算法文件名称 - --rambase:内存地址,目标芯片的内存起始地址 - --ramsize:内存大小,可以比实际芯片的内存小,主要是用来生成烧录算法所需的内存 - --stacksize:指定烧录算法所用的栈大小,默认会自动根据ramsize适应,最大适应为1024。(烧录外部FLASH时堆栈空间使用较大,此时需要手动指定栈大小) #### 擦除FLASH **参数说明** - --mode:指定擦除方式 - --addr:擦除地址 - --size:擦除大小 **扇区擦除** ```bash daplink.exe erase --mode sector --addr 08000000 --size 1000 --flm STM32F10x_128.FLM --rambase 20000000 --ramsize 5000 ``` **全片擦除** ```bash daplink.exe erase --mode chip --flm STM32F10x_128.FLM --rambase 20000000 --ramsize 5000 ``` #### 烧录固件 > 注意!!!当前仅支持BIN格式固件烧录! **参数说明** - --verify:不带此参数,编程完成后不进行校验 - --fullerase:带此参数后,芯片将全片擦除,否则按照固件大小自动执行扇区擦除 - --addr:指定烧录地址 **扇区擦除+编程+校验** ```bash daplink.exe flash --rambase 20000000 --ramsize 5000 --flm STM32F10x_128.FLM --verify --file led_test.bin --addr 08000000 ``` **全片擦除+编程+校验** ```bash daplink.exe flash --rambase 20000000 --ramsize 5000 --flm STM32F10x_128.FLM --verify --file led_test.bin --addr 08000000 --fullerase ``` #### 读取固件 **参数说明** - --addr:读取地址 - --size:读取大小 - --file:保存文件名 **读取08000000开始的64K并保存至文件read.bin** ```bash daplink.exe read --addr 08000000 --size 10000 --file read.bin ``` 如果芯片具有XIP总线并支持将外部FLASH通过XIP总线映射到内部地址,读取前必须要初始化FLASH才可以正常读到。 例如STM32H7系列支持将外部QSPI类型FLASH直接映射到0x90000000地址处,映射完毕后,直接在程序内访问该地址就可以,无需在通过QSPI驱动函数。 此时,需要通过 **--flm** 参数指定外部FLASH烧录算法文件,命令行在读取前自动将烧录算法文件下载进目标芯片内存中,并调用Init函数对FLASH初始化。 **读取STM32H7芯片XIP总线外部FLASH(90000000开始的64K并保存至文件read.bin)** ```bash daplink.exe read --addr 90000000 --size 10000 --file read.bin --flm STM32H7xx_W25QXX.FLM --rambase 24000000 --ramsize 8000 --stacksize 1800 ``` --- ### 使用演示 ![ ](./assets/result.gif) --- ### 脱机烧录器 > 有需要的小伙伴在淘宝店铺: > - **行一工作室** > > - **禾文智能科技企业店** > > 进行购买~~~ ![ ](./assets/白底图.png) --- ends...