用bash脚本实现openocd一次性烧录

有的时候eide扩展烧录莫名奇妙就会失灵,弹出"upload busy"的错误,网上也查不到是怎么回事,只好手动打指令,奈何openocd烧录指令又太过麻烦,于是多方查找整了个适合自己的脚本供自己实验,这里把脚本分享出来,方便自己在公司的时候就能在网上找到,也方便各位开发,有更好的方案欢迎提出哈

开发环境:
IDE:vscode+eide扩展
开发板:stm32f103c8t6
烧录器:stlinkv2

目录配置例:

/Program
	/build
		/Program
			-Program.hex
	/Core
	/Drivers
	/MDK-ARM

脚本设置:

#!/bin/bash

path="$1"
filename="$2"

openocd -s "$path" -f interface/stlink.cfg -f target/stm32f1x.cfg -c "program \"$path/build/$filename/$filename.hex\" verify" -c "reset run" -c "exit"

在git bash上输入:

./openocd_script.sh "/path/to/program" "program"

可根据自身实际情况做更改。

如果项目结构固定,比如上图例子Program项目,输出和项目名相同,输出hex就在build/Program里面,那么连参数也省了:

#!/bin/bash

path="$(pwd -W)"
filename="$(basename $PWD)"

openocd -s "$path" -f interface/stlink.cfg -f target/stm32f1x.cfg -c "program \"$path/build/$filename/$filename.hex\" verify" -c "reset run" -c "exit"

你可能感兴趣的:(bash,开发语言,单片机,openocd)