基于 VScode 搭建 STM32 运行环境
所需软件
- vscode: 是我们的代码编辑器
- STM32CubeMX: 是我们配置和初始化的软件
- OpenOCD: 是开源片上调试器, 他下载完是一个压缩包, 需要配置环境
- arm-none-eabi-gcc: 是编译器, 需要配置环境
- make: 是编译工具
- stmf4: SVD 文件
插件
- Arm Assembly
- C/C++
- C/C++ Snippets
- Cortex-Debug
生成一个 STM32CubeMX 工程
设置生成为 makefile 文件
用 vscode 打开这个生成的工程文件
在终端运行make -j4, 以 4 核心编译代码
配置下载
task 文件
{
  // See https://go.microsoft.com/fwlink/?LinkId=733558
  // for the documentation about the tasks.json format
  "version": "2.0.0",
  "tasks": [
    {
      "label": "download",
      "type": "shell",
      "command": "openocd",
      "args": [
        "-f",
        "C:/Users/Administrator/Documents/Tools/OpenOCD/share/openocd/scripts/interface/stlink-v2.cfg",
        "-f",
        "C:/Users/Administrator/Documents/Tools/OpenOCD/share/openocd/scripts/target/stm32f4x.cfg",
        "-c",
        "program build/a.elf verify reset exit"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "presentation": {
        "reveal": "silent"
      },
      "problemMatcher": "$gcc"
    }
  ]
}
使用快捷方式 ctrl+shift+b 执行 download
Cortex Debug 配置
{
  // 使用 IntelliSense 了解相关属性。
  // 悬停以查看现有属性的描述。
  // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "cwd": "${workspaceRoot}",
      "executable": "./build/a.elf",
      "name": "STM32 Debug",
      "request": "launch",
      "type": "cortex-debug",
      "servertype": "openocd",
      "device": "STM32F407VE",
      "configFiles": [
        "C:/Users/Administrator/Documents/Tools/OpenOCD/share/openocd/scripts/interface/stlink-v2.cfg",
        "C:/Users/Administrator/Documents/Tools/OpenOCD/share/openocd/scripts/target/stm32f4x.cfg"
      ],
      "svdFile": "./STM32F407.svd"
    }
  ]
}
C/C++报错
{
  "configurations": [
    {
      "name": "Win32",
      "includePath": [
        "${workspaceFolder}/**",
        "${workspaceFolder}/Drivers/STM32F4xx_HAL_Driver/Inc",
        "${workspaceFolder}/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy",
        "${workspaceFolder}/Drivers/CMSIS/Device/ST/STM32F4xx/Include",
        "${workspaceFolder}/Drivers/CMSIS/Include",
        "${workspaceFolder}/Drivers/CMSIS/Include",
        "${workspaceFolder}/Core/Inc",
        "C:\\Program Files (x86)\\GNU Arm Embedded Toolchain\\10 2021.10\\arm-none-eabi\\include"
      ],
      "defines": [
        "_DEBUG",
        "UNICODE",
        "_UNICODE",
        "USE_HAL_DRIVER",
        "STM32F407xx"
      ],
      "compilerPath": "C:\\Program Files (x86)\\GNU Arm Embedded Toolchain\\10 2021.10\\bin\\arm-none-eabi-gcc.exe",
      "cStandard": "c17",
      "cppStandard": "c++17",
      "intelliSenseMode": "windows-gcc-x86"
    }
  ],
  "version": 4
}
参考资料

基于 VScode 搭建 STM32 运行环境的更多相关文章
- Centos7安装Docker 基于Dockerfile 搭建httpd运行环境
		Centos7安装Docker 基于Dockerfile 搭建httpd运行环境 docker docker搭建 docker build 本文档完成目标内容如下 使用Docker搭建http服务器一 ... 
- 基于maven搭建hibernate运行环境
		准备案例需要的数据库表和测试数据 建表语句: create table DEPARTMENT ( DEPT_ID integer not null, DEPT_NAME ) not null, DEP ... 
- VS Code 搭建stm32开发环境
		MCU免费开发环境 一般芯片厂家会提供各种开发IDE方案,通常其中就包括其自家的集成IDE,如: 意法半导体 STM32CubeIDE NXP Codewarrior TI CCS 另外也可以用ecl ... 
- JDK+Tomcat搭建JSP运行环境--JSP基础
		一.搭建JSP运行环境之前需要了解的基本知识 配置JSP运行环境之前,我们需要了解JSP的运行机制.只有了解JSP运行机制后,我们才能知道为什么要搭建JSP运行环境?如何去搭建JSP运行环境?为什么要 ... 
- 2019-04-03 Anaconda+VSCode搭建python开发环境,并连接GIthub
		1.最好的Python开发环境 :Anaconda+VSCode搭建python开发环境,conda提供了python开发环境和大量的你不用安装的库 conda的环境变量: 直接在conda 中下载启 ... 
- 9款一键快速搭建PHP运行环境的好工具
		9款一键快速搭建PHP运行环境的好工具 胡倡萌 2011/02/19 网络资源 77,063 1 内容提要: 建立一个PHP网站,首先需要搭建PHP的开发和运行环境,对于PHP初学者也是一个难 ... 
- 漫游Kafka实战篇之搭建Kafka运行环境
		接下来一步一步搭建Kafka运行环境. Step 1: 下载Kafka 点击下载最新的版本并解压. > tar -xzf kafka_2.9.2-0.8.1.1.tgz > cd kafk ... 
- 【PHP】linux搭建PHP运行环境
		之前在windows下写了hello world,终归是不够用啊,因为开发环境是Linux,怎么办呢~~~学习学习再学习 写在前面的话:我从百度文库的一个文章里摘出来的,原文章名称<Linux下 ... 
- Windows7下搭建Django运行环境
		一直都是在Linux环境下搭建django的运行环境,开学因为需要叫前端的同学帮忙修改模板,所以需要在Windows下搭建起运行环境,想来PHP倒是有不少集成开发环境,Python倒是少的可怜…只在w ... 
- Windows上搭建Flume运行环境
		1.如果没有安装过Java环境,则需首先安装JDK. 可参考<Windows上搭建Kafka运行环境>中的搭建环境安装JDK部分 2.官方下载Flume(当前为apache-flume-1 ... 
随机推荐
- java-代码编写规范
			命名 变量/方法:小驼峰. mBtnHelloWorld 控件 mBtnTest: 按键 mTvTest:文本 
- K8S之prometheus-operator监控
			prometheus-operator 1. Prometheus Operator介绍 介绍文章:http://t.zoukankan.com/twobrother-p-11164391.html ... 
- 对Java Web中WEB-INF目录的理解以及访问方法
			事情发生 在上个暑假第一次写Java web大项目的时候,对于目录管理及分配没有任何经验,就想着清晰明了. 后端servlet是用maven进行构建的,所以在目录上没有碰到什么大问题. 用idea进行 ... 
- python(牛客)试题解析3 - 困难
			导航 一.找到已经最大承重的背包内如何放入最大价值的物品的最优解 二.查找一个字符串中包含另外一个字符串(可打乱顺序)的次数三.计算正整数数组从头走到最后一个成员所需的最小步骤四.计算字符串非严格递增 ... 
- mingw编译opencv动态链接库和静态链接库及使用方法
			前言 我一直不知道编译的过程以及cmake, make 这些工具是干什么的,所有抽时间研究了一下. 简单来说就是 cmake 是根据 CMakeLists.txt 用来生成 makefile文件的.而 ... 
- 第2-4-6章 springboot整合规则引擎Drools-业务规则管理系统-组件化-中台
			目录 7. Spring整合Drools 7.1 Spring简单整合Drools 7.1.1 以上代码均在drools_spring项目中 7.2 Spring整合Drools+web 7.2 以上 ... 
- SSH ERROR com.opensymphony.xwork2.interceptor.ParametersInterceptor
			修改struts.xml配置:struts.devMode value="false" <constant name="struts.devMode" v ... 
- ArcObjects SDK开发 004 如何学习好ArcObjects SDK开发
			1.基于Arcobjects SDK可以做什么 基于Arcobjects SDK开发,大部分情况下就是做桌面GIS应用程序.AO写的代码是不能直接在Web服务上运行的,但如果你前端是JS,需要后端处理 ... 
- PLSql在Oracle中创建表空间
			create tablespace db_test --表空间名 datafile 'D:\oracle\product\11.2.0\dbhome_1\oradata\orcl\test.dbf' ... 
- VMware宿主机访问虚拟机的Web服务
			VMware宿主机访问虚拟机的Web服务,主要就是宿主机可以通过IP能够访问到虚拟机. 可以尝试使用以下步骤. 1.关闭虚拟机,把网络连接方式修改成桥接方式. 2.打开虚拟机后,把虚拟机的防火墙关闭. ... 
