VSCode+gcc搭建STM32开发环境的几种方案

本文介绍了如何利用VSCode的插件生态构建一个基于gcc的开发环境,包括STM32的编译套件安装,如make和CMake的使用,以及如何配合EmbeddedIDE和CortexDebug插件进行代码编写、编译和调试的过程。

VSCode虽然只是一个代码编辑器,由于开源并提供了易用的插件接口,目前已拥有丰富的第三方插件,可以联合gcc构建一个类似于IDE的开发调试环境。

gcc编译套件

stm32使用了arm的Cortex-M内核,直接上arm官官网下载mcu编译套件:https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads,下载arm-none-eabi版本可以编译裸机程序或者RTOS的程序。下载成功后直接解压到本地目录,并添加其bin文件夹到环境变量。安装成功后可通过下面指令进行测试(目前gcc为12.2.1版本):
windows上gcc安装成功测试
成功安装了这个gcc编译套件几乎还不能编译哪怕是一个led闪烁的工程,这是由于任何一个工程几乎不太可能只有一个源文件组成,在文件达到一定的规模直接使用gcc命令去编译是一件容易出错且效率极低的工作,这里我们就需要一套建构工具,比如常听说的GNU Make、qmake、namake、pmake、SCons等等。

构建工具

make

make几乎属于构建工具的第一代但是应用较为广泛,从头makefile文件编写对经常使用makefile的工程师也较为困难,但STM32CubeMX生成的工程也提供了较为完善的支持可自动生成基础的makefile文件。
在windows上下载make工具:https://github.com/skeeto/w64devkit/releases,下载成功后将其bin文件添加到环境变量,安装成功后可以通过以下指令进行测试,此时按理说应该能使用make进行编译了,但makefile中可能重新定义了某些绝对路径导致编译失败,这是需要重新定义Makefile中的相关变量,然后就能正常编译了。
windows上gnu make安装成功测试
安装成功后直接使用STM32CubeMX生成Makefile工具链工程即可,切换到源码目录直接编译:
生成makefile工程适配
make启动编译
make编译成功
STM32CubeMX生成了一个基础可直接使用makefile工程,后续仅需要把应用代码添加到其Makefile中即可。代码编写直接使用VSCode即可,编写完成后执行make指令进行编译。

##########################################################################################################################
# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Mon Jul 03 18:35:08 CST 2023]
##########################################################################################################################

# ------------------------------------------------
# Generic Makefile (based on gcc)
#
# ChangeLog :
#	2017-02-10 - Several enhancements + project update mode
#   2015-07-22 - first version
# ------------------------------------------------

######################################
# target
######################################
TARGET = GCC


######################################
# building variables
######################################
# debug build?
DEBUG = 1
# optimization
OPT = -Og


#######################################
# paths
#######################################
# Build path
BUILD_DIR = build

######################################
# source
######################################
# C sources
C_SOURCES =  \
Core/Src/main.c \
Core/Src/stm32l4xx_it.c \
Core/Src/stm32l4xx_hal_msp.c \
Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c \
Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c \
Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c \
Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c \
Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c \
Drivers/STM32L4xx_HAL_Driver/Sr
<think>嗯,用户想了解如何在VS Code中配置STM32开发环境。我之前看到过几个不同的引用,需要先理清楚这些引用的内容。引用1提到了使用VSCode+STM32的环境搭建和工程运行,但没有详细步骤。引用2详细介绍了使用ARM GCC和OpenOCD的流程,包括软件准备、配置步骤,这可能比较全面。引用3则提到用Keil Assistant插件简化配置,可能更适合新手。 用户可能需要一个清晰的步骤指南,所以应该综合这些方法,给出不同的配置方案。首先,用户可能不知道有哪些方法,所以分成两种:使用ARM GCC+OpenOCD和使用Keil Assistant插件。需要比较两者的优缺点,比如前者更灵活但配置复杂,后者更简单但依赖Keil工程。 接下来,要详细列出每个方法的步骤,确保用户能逐步操作。例如,引用2中的软件工具准备包括安装VSCode、ARM GCC、OpenOCD、STM32CubeMX,可能还需要配置环境变量和编辑配置文件。这部分需要一步步说明,比如如何安装扩展,如何修改tasks.json和launch.json,如何生成代码。 而引用3的方法更简单,只需要安装Keil Assistant插件,但前提是用户有Keil工程,可能适合已有项目迁移的用户。需要提醒用户注意插件的依赖和可能的限制。 用户可能遇到的问题包括环境变量配置错误、编译链工具安装不正确、调试配置问题等,应该在注意事项中提到这些,并建议检查路径和依赖。此外,引用来源需要正确标注,比如引用2和3对应不同的方法。 最后,生成的相关问题要覆盖环境搭建的常见疑问,比如对比不同工具链、解决编译错误、替代方案等,帮助用户深入解决问题。需要确保回答结构清晰,分点说明,让用户容易跟随。</think>### VSCode配置STM32开发环境教程 根据引用内容,VSCode搭建STM32开发环境主要有两种主流方法,以下是分步说明: #### 方法一:ARM GCC + OpenOCD全开源方案(推荐)[^2] 1. **软件工具准备** - 安装VSCode及必要插件: - C/C++(代码高亮) - Cortex-Debug(调试支持) - ARM Assembly(汇编支持) - 安装ARM GCC工具链(arm-none-eabi-gcc) - 安装OpenOCD调试服务 - 安装STM32CubeMX工程生成器 2. **环境配置** ```json // tasks.json 编译配置 { "tasks": [{ "label": "Build STM32", "command": "make", "group": {"kind": "build","isDefault": true} }] } // launch.json 调试配置 { "configurations": [{ "name": "Cortex Debug", "type": "cortex-debug", "servertype": "openocd", "executable": "${workspaceFolder}/build/project.elf" }] } ``` 3. **工程搭建** - 通过STM32CubeMX生成Makefile工程 - 配置includePath和defines参数 - 添加STM32标准库路径到`.vscode/c_cpp_properties.json` #### 方法二:Keil Assistant插件方案(快速上手)[^3] 1. 安装Keil Assistant插件 2. 打开现有Keil工程(需保留`.uvprojx`文件) 3. 直接使用插件界面进行编译/下载 4. 支持代码跳转和调试功能 ### 性能对比 | 方案 | 编译速度 | 调试功能 | 环境复杂度 | |--------------|----------|----------|------------| | ARM GCC方案 | ★★★★ | 全功能 | 复杂 | | Keil插件方案 | ★★★ | 基础功能 | 简单 | ### 注意事项 1. ARM GCC工具链需要添加至系统PATH环境变量 2. OpenOCD需配置对应调试器配置文件(如stlink.cfg) 3. 建议通过STM32CubeMX生成基础工程框架[^2] 4. 编译错误时检查`arm-none-eabi-gcc`版本兼容性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值