vscode+makefile开发STM32(二)—下载篇
文章目录
配置jlink使用Jlink.exe下载
本质是通过J-link Commander进行下载的,通过这种方式下载必须配置命令的脚本文件(具体支持的详细指令描述可以打开commander终端,输入‘?’来查看)。
在.vscode
文件夹下的task.json
文件中配置如下任务
{
"label": "download-jlink(JLink.exe)",
"type": "shell",
"command": "jlink.exe",
"args": [
"-device",
"stm32f405rg",
"-if",
"swd",
"-speed",
"4000",
"-CommanderScript",
"download.jlink"
],
"dependsOn": "build",
"problemMatcher": [
"$gcc"
]
},
这里配置的任务实际相当于在shell终端中执行
jlink.exe -device stm32f405rg -if swd -speed 4000 -CommanderScript download.jlink
上面指令中的-CommanderScript
也可以用-CommandFile
来代替。jilink.exe后面可以跟的参数信息都是从网上搜到的,也没有找到哪里有这些参数信息的说明,有人知道希望不吝赐教。
在jlink Wiki网站上找到了解释:
网址:https://wiki.segger.com/J-Link_Commander#Using_J-Link_Command_Files
支持的参数选项:
在工作空间目录下新建download.jlink
文件
reset
loadfile build/stm32f405_u8g2_oled.hex
r
qc
指令说明:
reset ------ 复位目标芯片
loadfile ----- 加载要写到目标内存的文件
r ----- 重启目标板
qc ----- 关闭jlink连接并推出
详细指令说明可以在jlink commander终端中输入‘?’来查看:
J-Link>?
运行任务完成下载
在vscode
菜单中选择终端
—>运行任务
—>download-jlink(JLink.exe)
便可以将程序通过jlink下载到单片机中
注意:
这里的下载参数是要根据特定工程相关联的,因而在修改工程后也要修改对应参数:
需要改动的地方:
task
中的设备参数stm32f405rg
需要根据不同芯片而修改download.jlink
中的loadfile
后面的下载文件名称也要根据实际情况而修改
配置jlink使用OpenOCD下载
使用该方式会导致Keil MDK,JFlash识别 不到Jlink驱动,如果还需要使用上述的软件来连接jlink,建议使用上面的第一种方式来进行下载,当然在用到的时候将驱动的版本进行回退也是可以的。
通过zadig重装jlink驱动
OpenOCD默认识别不到Jlink驱动,必须通过zadig重装为Win USB驱动才能识别到。
注意:这有个问题重装驱动后会导致JFlash,keil等软件识别不到jlink
修改OpenOCD的配置文件
openOCD默认的jlink配置是JTAG接口,如果使用swd接口需要修改配置jlink.cfg文件(可以复制一份改个名字jlink-swd.cfg),增加如下语句,将传输接口改为SWD
transport select swd
配置task任务
{
"label": "download-jlink",
"type": "shell",
"command": "openocd",
"args": [
"-f",
"interface/jlink-swd.cfg",
"-f",
"target/stm32f4x.cfg",
"-c",
"program build/${workspaceFolderBasename}.elf verify reset exit"
],
"dependsOn": "build",
"problemMatcher": [
"$gcc"
]
},
参考文章:
https://blog.csdn.net/u010058695/article/details/108871995