Ubuntu VSCode STM32开发环境搭建(以ODrive为例)

参考了ODRIVE的教程

Ubuntu编译环境

如下命令安装环境

sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get update
sudo apt-get install gcc-arm-embedded
sudo apt-get install openocd
sudo add-apt-repository ppa:jonathonf/tup && sudo apt-get update && sudo apt-get install tup
sudo apt-get install python3 python3-yaml python3-jinja2 python3-jsonschema

如下命令验证安装是否成功

arm-none-eabi-gcc --version
arm-none-eabi-gdb --version
openocd --version             # should be 0.10.0 or later
tup --version                 # should be 0.7.5 or later
python --version              # should be 3.7 or later

VSCode扩展安装

在VSCode中按Ctrl+P,分别执行如下命令

ext install ms-vscode.cpptools
ext install marus25.cortex-debug
ext install marus25.cortex-debug-dp-stm32f4

如果是在Windows下,那还需要添加ARM_GCC_ROOT环境变量,但Linux就不需要了。

VSCode Task创建

应该可以直接复制已有的工程的tasks.json文件到.vscode文件夹。
参考:ODrive的tasks.json
已经将这个放到VESC工程中编译成功了,但是还没有测试调试是否可以用。

调试器配置

调试器有两个参数需要配置:调试器种类(如本文使用jlink)和调试接口(如本文使用swd而非jlink默认的jtag)。
默认的指令在Makefile中,如下

OPENOCD := openocd -f interface/stlink-v2.cfg $(PROGRAMMER_CMD) -f target/stm32f4x.cfg -c init

其中,interface/stlink-v2.cfg位于/usr/share/openocd/scripts/interface,需要自己cd到 里面编辑

sudo gedit jlink-swd.cfg

复制以下内容

interface jlink
transport select swd

Ctrl+S保存,关闭文件
回到Makefile中,在flash-stlink2:前加入

JLINK_OPENOCD := openocd -f interface/jlink-swd.cfg $(PROGRAMMER_CMD) -f target/stm32f4x.cfg -c init
flash-jlink: all
	$(JLINK_OPENOCD) \
		-c 'reset halt' \
		-c 'flash write_image erase $(FIRMWARE)' \
		-c 'reset run' \
		-c exit

在命令行中进入ODrive/Firmware
执行make,再执行make flash,可以看到下载成功!
下载成功截图

VSCode编译步骤

  • 编译生成:Terminal -> Run Build Task (Ctrl+Shift+B)
  • 下载:Terminal -> Run Task -> flash
  • 调试:Run(Ctrl+Shift+D)-> “Debug ODrive (Firmware)”

总结

可以看出,安装过程十分简洁,而Windows可能就不这么简单了。所以还是优先使用Ubuntu进行开发。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值