LibOpenCM3(四) VSCode IDE 环境配置
目录
- LibOpenCM3(一) Linux下命令行开发环境配置
- LibOpenCM3(二) 项目模板 Makefile分析
- LibOpenCM3(三) .ld文件(连接器脚本)和startup代码说明
- LibOpenCM3(四) VSCode IDE 环境配置
说明
因为 PlatformIO 的 platform:st-stm32 自带 libopencm3, 如果用 PlatformIO 创建 libopencm3 项目可以做到零配置, 只是 libopencm3 的版本会旧一点. 这里说的是仅使用 VSCode 创建C/CPP项目时的配置. VSCode 有代码提示, 定位来源和各种快捷键, 更适合日常编码工作.
前提条件
参考 Linux下命令行开发环境配置, 先将 GNU Arm Embedded Toolchain 和 st-flash 工具准备好
创建项目
导出模板项目
git clone --recurse-submodules https://github.com/libopencm3/libopencm3-template.git
或者
git clone --recurse-submodules https://gitee.com/iosetting/libopencm3-template.git
VSCode 创建项目
用 VSCode 的 Open Folder 打开. 需要修改一下 my-project/Makefile 中的配置, 将 DEVICE 修改为实际使用的MCU型号
DEVICE=stm32f103c8t6
配置C/CPP环境
快捷键Ctrl+Shift+P, 在打开的对话框中, 输入/找到 C/C++: Edit Configurations (JSON), 用JSON进行配置
配置内容
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/libopencm3/include"
],
"defines": [
"STM32F1"
],
"compilerPath": "/opt/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gcc",
"cStandard": "gnu11",
"cppStandard": "gnu++14",
"intelliSenseMode": "gcc-arm"
}
],
"version": 4
}
- compilerPath 根据自己的工具链路径进行修改
- defines 下的 STM32F1 与编译无关(编译使用的是DEVICE和链接库), 不设置也能正确编译, 设置这个是为了 VSCode 能正确定位变量和函数声明
配置编译任务
快捷键Ctrl+Shift+P, 在打开的对话框中, 输入/找到 Tasks: Configure Task, 用others模板创建
配置内容, 其中TARGETS=stm32/f1根据实际的MCU型号修改
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build libopencm3",
"type": "shell",
"command": "PREFIX=/opt/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi- TARGETS=stm32/f1 make -C libopencm3",
"problemMatcher": []
},
{
"label": "build clean libopencm3",
"type": "shell",
"command": "PREFIX=/opt/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi- make -C libopencm3 clean",
"problemMatcher": []
},
{
"label": "build",
"type": "shell",
"command": "PREFIX=/opt/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi- make -C my-project",
"problemMatcher": []
},
{
"label": "build clean",
"type": "shell",
"command": "PREFIX=/opt/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi- make -C my-project clean",
"problemMatcher": []
},
{
"label": "build download",
"type": "shell",
"command": "st-flash --reset write my-project/awesomesauce.bin 0x8000000",
"problemMatcher": []
}
]
}
使用时, 通过Shift + Alt + F10调出菜单并选中执行.
先执行一次 build libopencm3 , 生成 libopencm3 的链接库之后, 编译项目就只需要执行 build 了.
LibOpenCM3(四) VSCode IDE 环境配置的更多相关文章
- ubuntu命令行下java工程编辑与算法(第四版)环境配置
ubuntu命令行下java工程编辑与算法(第四版)环境配置 java 命令行 javac java 在学习算法(第四版)中的实例时,因需要安装配套的java编译环境,可是在编译java文件的时候总是 ...
- anaconda + VSCode + 生产环境配置
1. 修改jupyter notebook 默认路径: 进入anaconda 命令行, jupyter notebook --generate-config 生成配置文件, 该文件在 本机用 ...
- Spring Boot 入门系列(二十四)多环境配置,3分钟搞定!
之前讲过Spring Boot 的系统配置和自定义配置,实现了按照实际项目的要求配置系统的相关熟悉.但是,在实际项目开发过程中,需要面对不同的环境,例如:开发环境,测试环境,生产环境.各个环境的数据库 ...
- spring boot入门笔记(四) - 多环境配置、加载顺序、静态资源映射
1.多环境配置 先描述下以前的开发流程:从SVN把项目下载到本地,各种修改配置文件,启动成功:完成功能后上传到公司的测试服务器,修改各种配置文件,启动成功:最后到上线的日子里,把新功能中涉及到的文件打 ...
- Linux从入门到适应(一):VSCode C++环境配置
作为在Windows环境下习惯使用Visual Studio IDE的人,对于Linux环境下的Vim编辑使用十分难受,虽然网上很多人说vim非常牛逼和强大,但是我更加习惯于使用VS code的界面, ...
- 简单易懂的VS-CODE C++环境配置(ACM向)
网上教程比较繁琐,他们似乎要把vs-code变得无所不能,而我只是想代替dev进行简单的输入输出 所以大概花了1个多小时找到了能用的方法(中途还搞了个ubuntu子系统发现没啥用) 这里随便说下 1. ...
- 【python】vscode python环境配置
安装python插件:ext install python 配置flake8:pip install flake8 配置yapf:pip install yapf(在VScode中按Alt+Shift ...
- VSCode JAVA环境配置使遇到的几个小问题
1.出现的问题: The JAVA_HOME environment variable points to a missing or inaccessible folder等三个报错! 2.说明及解决 ...
- 半吊子菜鸟学Web开发6 -- Vscode开发环境配置
1vscode上手一周不到,终于弄出点门路,终于弄清楚了点vscode的设置是什么样子的了....哭 2就我这两天的使用来看,一般vscode默认只让打开一个文件夹,然后在你打开的文件夹里面自动生成 ...
随机推荐
- [BJDCTF2020]EzPHP-POP链
那次某信内部比赛中有道pop链问题的题目,我当时没有做出来,所以在此总结一下,本次以buu上复现的[MRCTF2020]Ezpop为例. 题目 1 Welcome to index.php 2 < ...
- sql多行合并一列
with a as( select * from( select 1 userId , '天津' province union select 1 userId , '北京' union select ...
- 1012day-人口普查系统
1.name.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pa ...
- 【刷题-LeeetCode】260. Single Number III
Single Number III Given an array of numbers nums, in which exactly two elements appear only once and ...
- 【问题排查过程】vm-backup的snapshots导致磁盘满
使用中发现,vm-storage节点仅仅过了6天,就占用了800GB的硬盘空间.很不正常.下面是排查过程: 1.查看磁盘占用情况: 先登录容器,执行: df -h /dev/vdb 1012.8G 8 ...
- 【记录一个问题】macos下lldb调试opencv的一个程序,出现“failed to load objfile for”错误,并且无法调试进入opencv的函数
opencv编译使用了Debug版本,打开了BUILD_WITH_DEBUG_INFO=ON选项. 发现问题后,我又在CMAKE_CXX_FLAGS_DEBUG中设置为 -g -ggdb3,在CMAK ...
- ros实例_百度语音+图灵
1 百度语音模块 参考http://blog.csdn.net/u011118482/article/details/55001444 1.1 百度语音识别包 git clonehttps://git ...
- 学习AJAX必知必会(3)~自动重启工具nodemon、缓存问题、请求超时和网络异常、取消重复请求
1.nodemon 自动重启工具(自动重启基于nodejs开发的服务端应用) ■ nodemon 是一个工具,通过在检测到目录中的文件更改时自动重新启动node应用程序来帮助开发node.js. // ...
- 列表页面(html+css+js)
html文件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
- 多选菜单shell脚本
有 很多方法 可以读取Bash脚本中的用户输入. 但是,允许用户键入输入会带来一些问题. 主要问题是输入验证,您必须在其中考虑所有可能的输入. 解决此问题的一种简单方法是为Bash脚本创建一个多选菜单 ...