有的时候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"