VsCode-单片机项目开发和调试

目录

  一、 创建项目工程
  二、 编译与烧写
  三、 在线调试


VsCode- Embedded IDE 搭建单片机开发环境操作


一、 创建项目工程

1.点击 VsCode 界面左侧 EIDE 图标,在新界面中选择 新建项目–>空项目​;

在这里插入图片描述


2.根据需求选择对应芯片内核,本项目使用STM32F407ZGT6,故选择 Corete-M 项目;

在这里插入图片描述


3.输入项目名称(如 STM32F407_Demo),回车–>选择保存路径 ;

在这里插入图片描述


4.在 STM32F407_Demo/ 下创建目录文件:

  • Code,用于存放代码;
  • ldscripts , 用于存放链接脚本;

5.添加芯片支持包

5.1 可以加载本地.pack支持包,也可下载网络.pack支持包; 输入 STM32F4 ,就可以安装STM32F4xx_DFP.pack ,等待安装完成;

5.2 选择对应芯片型号: STM32F407ZGTx ;

在这里插入图片描述
在这里插入图片描述


6.构建配置:

6.1 选择构建配置–>编译器选择 GCC;

6.2 EIDE 在线安装的STM32F4xx_DFP.pack里面不会包含 _flash.ld 文件,若创建的项目根目录下没有ldscripts 或 linker 文件夹,则需要从 STM32CubeMX生成 或官方固件库中获取标准链接脚本如 STM32F407ZGTx_FLASH.ld);

  • 链接脚本路径修改为:${workspaceFolder}/ldscripts/STM32F407ZGTx_FLASH.ld ,
    打开.ld文件后,按芯片实际需求调整存储器定义(如 FLASH (rx) : ORIGIN = 0x8002000, LENGTH = 512K) ;

在这里插入图片描述
在这里插入图片描述


6.3 构建器选项,按需修改编译等级和c语言版本等设置 ;

在这里插入图片描述


7.烧录配置:选择JLink 或 STLink ( 此处我选择的是STLink ) ;若是JLink ,需安装 SEGGER 驱动;

  • 选择芯片名称:STM32F407ZG ;(JLink )
  • 接口类型:SWD ;
  • 更改下载速度: 2000 kHz ;

在这里插入图片描述
在这里插入图片描述


8.STM32F407_Demo\Code\ 目录下 添加源文件 :

  • 将 STM32F407_Demo.pack\Keil\STM32F4xx_DFP.2.14.0\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f407xx.s 文件拷贝,替换工程中 STM32F407_Demo\Code\startup 文件夹下的同名文件 ;

  • 方式1: 将官方 STM32F407xx Drivers 拷贝到 STM32F407_Demo\Code\ ;

  • 方式2: 使用 STM32CubeMX生成工程代码 或 原keil工程,将工程代码直接拷贝到 STM32F407_Demo\Code\ ;

本例使用的STM32CubeMX生成工程代码,拷贝到 STM32F407_Demo\Code\。

  • 项目资源–>添加源文件–>普通文件夹–>Code

在这里插入图片描述


9.项目属性配置:

9.1 设置要包含的目录;

9.2 设置预处理宏定义:
STM32F407xx
USE_HAL_DRIVER

在这里插入图片描述
在这里插入图片描述



二、 编译与烧写

2.1 编译

  1. 按下 Ctrl+Shift+B 调出任务面板 ;
  2. 选择EIDE: Build任务(对应tasks.json中的 Make 命令);
  3. 编译成功后,终端会输出:[ DONE ] build successfully !, elapsed time 0:0:0 ,
    并在工程目录下build\Debug\ 生成 .elf(调试文件)、.hex(烧写文件)、.bin(二进制文件);

在这里插入图片描述


2.2 烧写

  1. Ctrl+Alt+D 或 点击 ↓Flash 进行程序烧写 ;

三、 在线调试

1. 调试配置

  • 点击运行和调试->创建launch.json文件,调试器选择 Cortex Debug ;
  • 配置 launch.json :

在这里插入图片描述


{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        
        {
            "name": "Cortex Debug",
            "cwd": "${workspaceFolder}",
            "executable": "./build/Debug/STM32F407_Demo.elf",
            "request": "launch",
            "type": "cortex-debug",
            "runToEntryPoint": "main",
            "servertype": "stlink", // 若是 Jlink,此次应改为 jlink
            "interface": "swd",
            "svdFile": ".pack/Keil/STM32F4xx_DFP.2.14.0/CMSIS/SVD/STM32F40x.svd",
            "device": "STM32F407ZG",
           
            //"showDevDebugOutput": "raw"
      
           
        }
    ]
}


注:
 "svdFile": .svd 文件对应的路径一定要正确,是成功进入调试的关键 。


2. 进行调试

调试配置完成后,确保烧录器与板子接线正确,按 F5 或 点击开始调试,即可进行在线调试.

在这里插入图片描述


### 配置 VSCode 单片机 C/C++ 开发环境 #### 安装必要的扩展 为了支持C/C++开发,确保安装了Microsoft官方发布的C/C++扩展。该扩展提供了 IntelliSense、调试其他功能的支持[^1]。 #### 设置工作区配置 如果在VSCode中无法找到`C/C++: Edit Configurations (UI)`命令,这可能是由于缺少适当的工作区配置文件或未激活的C/C++扩展引起的问题。可以通过手动创建`.vscode/settings.json`以及`launch.json`来解决这个问题: ```json // .vscode/settings.json { "C_Cpp.default.cppStandard": "c++17", "C_Cpp.default.cStandard": "c11" } ``` 对于单片机项目而言,还需要指定交叉编译器路径及其他特定于目标平台的参数。这些设置通常放在`tasks.json`里定义构建任务时一并处理。 #### 使用 CMake 进行项目管理 采用CMake作为构建工具可以简化多平台项目的维护。按照常规流程编写好源码对应的`CMakeLists.txt`之后,在VSCode内通过快捷键组合 `Ctrl + Shift + P` 调出命令面板,执行`CMake: Configure`完成初始化配置过程[^2]。 #### 编写 launch.json 文件以便调试 为了让开发者能够更方便地测试程序行为,应该适当地调整`launch.json`中的属性以匹配所使用的硬件仿真器/烧录器接口规格。下面是一个针对STM32系列MCU的例子: ```json // .vscode/launch.json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/${fileBasenameNoExtension}.elf", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "/usr/bin/arm-none-eabi-gdb", // 修改为你自己的GDB路径 "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "cmake build", "postDebugTask": "" } ] } ``` 以上步骤涵盖了从基础环境搭建到高级特性集成的过程,使得基于VSCode开展嵌入式系统的软件设计成为可能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值