arm -linux -gcc 的编译,工欲善其事,必先利其器:使用VS Code搭建ARM Cortex-M GCC开发环境...

越来越多的芯片厂商提供了自己的IDE给用户免费使用,但是国内的厂家大多没有,总不能一直用盗版吧,常在河边走,哪有不湿鞋…………

这里就利用VS Code搭建一个GCC开发环境,所有的都是免费的!

需要的软件

VSCode及插件

比较核心的插件有下面几个,其他的按需安装即可:

C/C++

The C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging.

Cortex-Debug

Cortex-Debug adds support for debugging ARM executables through a GDB Server.

编译器及相关工具

选择官方的GCC编译器GNU Arm Embedded Toolchain以及CMake(或者make)

调试工具

我只用Segger J-Link,使用其他的工具需要装OpenOCD或者ARM官方的pyOCD

搭建过程

安装VS Code和插件

这里就不多说了,非常简单,后面跟着步骤详细记录插件的配置方法。

安装GNU Arm Embedded Toolchain

1、以管理员权限运行安装包,打开的界面选择需要的语言,选哪个应该都清楚了

2、所有的步骤都按默认的进行,除了最后一步,最后一步务必将后面三个英文的选项都打上勾

3、验证安装结果,打开命令行,输入arm-none-eabi-gcc --version回车查看是否如下图所示

安装CMake

1、双击打开安装包,一路下一步,直到下面这里,选择后面两项!后面也是一路默认的操作。

*2、验证安装结果,打开命令行,输入cmake --version回车查看是否如下图所示!

安装make

习惯make的可以按这一小节进行安装

1、先到这里下载最新的xPack Windows Build Tools工具,将下载下来的压缩包解压,我这里选择C盘根目录;

2、将工具包的bin路径添加到环境变量里

3、验证安装结果,打开命令行,输入make回车查看是否如下图所示!

安装调试工具

因为我是用jlink,所以就直接装jlink的驱动,这个应该就不特别说了,一路下一步就搞定。等哪天用别的工具了再回来写一下openOCD。

插件配置

虽然C/C++、CMake Tools都能通过配置完成编译、代码调试,但是对于MCU开发来说,Cortex-Debug更合适,不仅是配置简单,而且还能查看芯片的寄存器等内容。因此只用Cortex-Debug来做调试。

C/C++的配置

该插件只用来配置语法感知和提示,只要文件里不出现错误提示就算配置OK。

按快捷键ctrl+shift+q打开命令面板,输入C/C++,在弹出的提示中选择C/C++: 编辑配置(UI)(有UI可选我就不折腾别的)打开。然后配置以下内容:

1、建立配置建一个名称,这里我就用ARM-GCC

2、选择前面装好的工具链里的编译器,注意windows路径中的反斜杠要替换为斜杠

3、智能感知模式选择gcc-arm

4、因为前面已经配置了compilerPath,所以这里我保持默认,只包含工作区路径

*5、这个地方相当于keil中Options-C/C++页面里的Define,如果希望代码阅读起来更舒服,可以按实际的情况填写相应的宏

6、因为用的GCC编译器,所以语言标准都选gnu标准,具体的版本看自身需求

通过以上配置,会在.vscode的c_cpp_configuration.json文件中得到如下的结果,以后类似的工程都可以直接拷贝这个文件实现相同的配置

{

"configurations": [

{

"name": "ARM-GCC",

"includePath": [

"${workspaceFolder}/**"

],

"defines": [

"_DEBUG",

"UNICODE",

"_UNICODE"

],

"compilerPath": "C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major/bin/arm-none-eabi-gcc.exe",

"intelliSenseMode": "gcc-arm",

"cStandard": "gnu11",

"cppStandard": "gnu++11"

}

],

"version": 4

}

Cortex-Debug的配置

1、按F1,在命令面板中输入launch,选择Debug:Open launch.json,在弹出的选择环境的列表中选择Cortex Debug;

2、这时会在.vscode下面生成launch.json,内容长这样

3、 按下面这个完善文件内容

{

// 使用 IntelliSense 了解相关属性。

// 悬停以查看现有属性的描述。

// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387

"version": "0.2.0",

"configurations": [

{

"type": "cortex-debug",

"request": "launch",

"name": "Debug J-Link",

"cwd": "${workspaceRoot}",

"executable": "./build/xxxx.elf",

"serverpath": "C:/Program Files (x86)/SEGGER/JLink/JLinkGDBServerCL.exe",

"servertype": "jlink",

"device": "STM32H750ZB", // 可以在jflash等工具的器件选择列表里找到对应的具体型号

"interface": "swd", // 可选jtag、swd

"serialNumber": "", // 电脑上有多个JLink,通过这里指定使用一个进行调试

"jlinkscript": "",

"runToMain": true,

"svdFile": "", // 可以在jlink的安装路径下找,也可以在keil、iar等地方找到,该文件描述了器件的寄存器等内容

"rtos": "",

"preLaunchTask": ""

}

]

}

验证环境

为了方便,这里我选择使用STM32CubeMX生成的makefile工程!至于其它的芯片没有现成makefile,或者想使用CMake,找个时间另外写一篇。

编译工程

切换到终端窗口,在命令行中输入make并回车,完成编译

调试工程

点击运行图标切换到调试界面,选择前面上面完善好的配置即可出现如下的调试状态,,按上方居中的按钮可以执行全速、单步跳过等操作,左侧可以查看局部变量、全局变量、断点、CPU的寄存器,如果配置文件里配置好了对应的SVD文件,还可以查看外设寄存器。

你可能感兴趣的:(arm,-linux,-gcc,的编译)