VsCode- 单片机开发和调试详细步骤

181 阅读2分钟

目录

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


VsCode- Embedded IDE 搭建单片机开发环境操作]: juejin.cn/post/749453…


一、 创建项目工程

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

create-001.png


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

create-002.png


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

create-003.png


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

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

5.添加芯片支持包

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

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

create-004.png

create-005.png


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) ;

create-007.png

create-006.png


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

create-008.png


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

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

create-009.png

create-010.png


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

create-011.png


9.项目属性配置:

9.1 设置要包含的目录;

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

create-012.png

create-013.png



二、 编译与烧写

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(二进制文件);

build-001.png


2.2 烧写

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

三、 在线调试

1. 调试配置

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

debug-001.png


{
    // 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 或 点击开始调试,即可进行在线调试.

debug-002.png