GCC+VSCODE 从0开始配置嵌入式开发环境
GCC+VSCODE 从0开始配置嵌入式开发环境
GCC(GNU Compiler Collection)和VSCode(Visual Studio Code)是嵌入式开发中常用的工具链和开发环境。本文将详细介绍如何从零开始配置基于GCC的VSCode嵌入式开发环境,包括工具链下载、插件安装、工程配置等步骤。
前言
最近想折腾GCC来做MCU的固件开发,网上写VSCODE来进行嵌入式开发的文章很多,但是很多写的步骤不完整或者过于复杂,另外一些是基于STM32CubeMX来自动生成工程,不适合其他MCU的配置入门。我想写一篇简单且完整从0开始的步骤,如果有错误,欢迎指正。
关于MCU 固件开发可以选择的工具链,主流的有以下几种:
- ACC5 : ARM MDK 工具,ARM公司基于GCC开发,不免费,开发需要授权;
- ACC6 : ARM MDK 工具,ARM公司基于LLVM开发,不免费,开发需要授权;
- IAR :IAR编译器,不免费;
- GCC for ARM : GCC 嵌入式工具链,免费软件;
- LLVM for ARM:LLVM 嵌入式编译器,免费软件,但是EIDE不支持。
调试软件网上也有很多选择,我们这次选择最简单的VSCODE 插件cortex-debug,其他工具比如OpenOCD....,我们以后再讨论。
作为入门,我们从简单的开始,只需要下面软件:
- IDE 及插件 VSCODE + EIDE + Cortex-debug。
- 编译工具链:GCC for ARM(arm-none-eabi)。
一、嵌入式工具链及插件下载
1-1、下载GCC 工具链
Arm GNU Toolchain Downloads – Arm Developer
下载完成后双击安装,安装完成后需要将其添加系统环境变量,这样电脑上其他软件才能找到这个工具链
添加windows环境变量:
检查安装是否成功:cmd 或者powershell输入以下命令
arm-none-eabi-gcc -v
1-2、下载VSCode 插件
VSCode 种安装 EIDE插件
VSCode 种安装Cortex-Debug插件
1-3、下载CMSIS 芯片支持包
Arm Keil | CMSIS Packs
根据你芯片选择对应packs
CMSIS 内核支持包也必须下载:
可以去github下载最新的版本,最新版本V6.1
GitHub - ARM-software/CMSIS_6: CMSIS version 6 (successor of CMSIS_5)
CMSIS除了上面必须有的支持包, 还有其他包,也可以按照需要下载
如果需要添加操作系统下载CMSIS-FreeRTOS支持包。另外推荐CMSIS-Driver支持包,里面的I2C 驱动用汇编写的。
到这里我们需要的下载的工具和支持包都完成了
二、配置工程环境
配置EIDE工具链的路径
前面我们讲到,我们选择GCC工具链来作为编译器,只需要配置以下脚本。注意这里和前面的环境变量配置不一样,需要退一级目录,就是包含bin文件目录
也可以从configure Toolchain来选择
选择对应工具链,指向对应的bin文件夹路径,如果配置成功后面会显示一个√
另外注意一个从EIDE Setting进去,要把下面这个选项去掉,否则每次重新打开工程,你在RTE_Components.h文件添加的代码会被覆盖掉,如果不清楚是这里导致的,会被弄的一头雾水。
三、创建工程并配置
3-1、从一个空的工程开始创建
3-2、导入库文件
工程创建后,我们先点击加号把前面下载的MCU 芯片支持包添加进来:
选择对应芯片子型号:
选择Startup后面的加号安装MCU的组件:
安装完成后,我们工程里面看到导入的芯片组件
我们继续添加CMSIS 标准支持包和操作系统包(操作系统不需要的可以不加)
如果你在ARM 官网下载的是类似 ARM.CMSIS.6.1.0.pack 可以和前面一样添加package方式
如果你和我一样是在github下载的源文件可以在Project Resources 通过添加文件夹到工程的方式添加:
这里注意,GCC 默认会将整个文件夹添加到工程,对于工程不需文件或者文件夹,选中后将文件夹或者对应文件手动排除到工程外面,以免影响编译。
当然你也可以去文件夹中删除不需要的文件,但是我不建议这样中,CMSIS 应该作为一个公共文件给多个项目公用,每个项目根据需要来包含文件,而不是每个项目用独立的CMSIS,不然会导致冗余的代码太多并难以维护。
最后我们还要去IncludeDirections 下面把源文件和头文件路径都包含进来
3-3、编译器配置
如果你前面的load MCU pack正确的话,编译器部分配置会自动识别,你也可以手动将配置地址复制过来,GCC使用ld或者lds文件,如果选择其他编译器,这里链接配置会不一样。
3-4、下载工具配置
Flash 下载配置,这个按照自己硬件环境的来选择
3-5、Debug 工具配置
我们使用前面下载的Cortex-debug插件来配置debug功能
在菜单栏选择Run->Add configrution, 然后在弹出来选项中选择cortex-debug,然后配置一个launch.json 文件,以下是我的配置文件供参考:
当然你也可以从创建的文件链接中,去Vscode官网看详细的配置:
Debugging in Visual Studio Code
Segger 的官网也有关于这个脚本配置指导:
J-Link Visual Studio Code - SEGGER Knowledge Base
至此,配置应该都完成了
四、测试功能
测试编译,EIDE视图下选择编译按钮:
编译成功会输出下面信息:
选择下载按钮测试下载:
测试debug功能,菜单栏选择Run-Start debug
至此,环境配置全部完成。然后就可以愉快的写代码了和调试了。
最后关于EIDE插件更多功能,我附上官方指导,这个写的非常详细,建议大家去看:
这是什么? | Embedded IDE For VSCode