STM32使用VScode开发

Makefile形式创建项目
新建stm项目

https://blog.youkuaiyun.com/Brendon_Tan/article/details/107869664

下载stm32cubemx

https://www.st.com/en/development-tools/stm32cubemx.html
~~
STM32f103C8T6

新建项目

在这里插入图片描述

IED makefile

在这里插入图片描述

保存到本地

在这里插入图片描述

arm gcc是编译的工具链

https://developer.arm.com/downloads/-/gnu-rm
在这里插入图片描述

G++配置

在这里插入图片描述

编译

在这里插入图片描述

Cmake +vscode +MSYS2方式
bilibili

全文参考bilibili博主视频教程,感兴趣的可以去了解下

MSYS2 统一环境配置

https://packages.msys2.org/packages/mingw-w64-x86_64-openocd

在这里插入图片描述

mingw32-make -> make

改名mingw32-make.exe -> make.exe
在这里插入图片描述

windows环境变量

在这里插入图片描述

Cmake CmakeList

cmake ..
OR
cmake -G Ninja ..默认为ninja
在这里插入图片描述

nijia 编译输出elf

在这里插入图片描述

CMAKE_GENERATOR查询

message(STATUS "==========CMAKE_GENERATOR==========: ${CMAKE_GENERATOR}")
在这里插入图片描述
cmake .. -N -L

改为生成makefile文件

cmake -G "Unix Makefiles" ..
在这里插入图片描述
生成如下
在这里插入图片描述

make编译输出elf

make -j16
在这里插入图片描述

elf文件

在这里插入图片描述

烧录

openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "program G:/WorkSpace_Thing/Stm32Test/build/Debug/Stm32Test.elf verify reset exit""

云调试
wokwi.toml

在这里插入图片描述

diagram.json
 {
   
  "version": 1,
  "author": "Uri Shaked",
  "editor": "wokwi",
  "parts": [
    {
   
      "type": "board-stm32-bluepill",
      "id": "stm32",
      "top": -174.16,
      "left": -262.83,
      "attrs": {
   }
    },
    {
   
      "type": "wokwi-led",
      "id": "led1",
      "top": -174
### STM32 VSCode 开发配置教程 #### 1. 安装必要的工具链 在使用 Visual Studio Code (VSCode) 进行 STM32开发之前,需要安装一系列的基础工具链。这些工具包括但不限于 GCC 工具链、OpenOCD 调试器支持以及 JLink 驱动程序。 - **GCC 工具链**: 可以为 ARM Cortex-M 系列微控制器提供编译功能的 GNU 编译器集合[^1]。 - **OpenOCD**: 提供调试接口的支持,允许开发者通过 SWD 或 JTAG 接口连接到目标设备并进行调试操作[^2]。 - **JLink 驱动**: 如果计划使用 Segger J-Link 作为硬件调试探针,则需下载对应的驱动程序以确保兼容性和稳定性[^3]。 #### 2. 设置 VSCode 插件环境 完成上述基础设置之后,下一步是在 VSCode 中安装特定插件来增强其针对嵌入式系统的开发能力: - **C/C++ 扩展包**:由 Microsoft 提供,用于改善 C 和 C++ 文件的语言特性支持,比如 IntelliSense 自动补全等功能。 - **ARM GCC Cross Compiler Extension Pack**:此扩展包含了交叉编译所需的全部组件,并简化了路径配置过程。 #### 3. 创建项目结构与 Makefile 对于基于 Keil uVision 建立的传统工程项目而言,将其迁移到 VSCode 上通常涉及重新定义构建脚本。推荐采用 `Make` 构建系统以便于管理源文件依赖关系和生成最终二进制镜像文件(.bin/.hex)[^3]。 以下是简单的 Makefile 示例代码片段: ```makefile TARGET = main MCU = cortex-m4 CMSIS_DIR = ./cmsis_device_f4 STARTUP_FILE = $(CMSIS_DIR)/Source/Templates/gcc/startup_stm32f4xx.s CC = arm-none-eabi-gcc LD = arm-none-eabi-ld OBJCOPY = arm-none-eabi-objcopy CFLAGS += -std=gnu99 -Wall -Wextra -T$(LINKER_SCRIPT) all: $(TARGET).elf $(TARGET).hex %.elf: %.o @echo "[LD] $@" $(LD) -o $@ $< --gc-sections %.hex: %.elf @echo "[HEX] $@" $(OBJCOPY) -O ihex $< $@ clean: rm -rf *.elf *.hex *.o ``` #### 4. 配置 launch.json 实现断点调试 最后一步也是至关重要的一步就是调整 `.vscode/launch.json` 来启用 OpenOCD 并加载符号表从而可以正常执行单步跟踪或者观察变量值变化等情况下的调试工作流: ```json { "version": "0.2.0", "configurations": [ { "name": "Debug STM32 with OpenOCD and GDB", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/main.elf", "miDebuggerPath": "/usr/bin/arm-none-eabi-gdb", "setupCommands": [ { "text": "-enable-pretty-printing", "description": "Enable pretty printing" } ], "cwd": "${workspaceRoot}", "externalConsole": false, "MIMode": "gdb", "preLaunchTask": "build", "serverLaunchOptions": "--debug-brk --no-restart" } ] } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值