美文网首页
工欲善其事,必先利其器:使用VS Code搭建ARM Corte

工欲善其事,必先利其器:使用VS Code搭建ARM Corte

作者: tianxiaoMCU | 来源:发表于2021-02-10 14:19 被阅读0次

    越来越多的芯片厂商提供了自己的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标准,具体的版本看自身需求


      通过以上配置,会在.vscodec_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文件,还可以查看外设寄存器。

    相关文章

      网友评论

          本文标题:工欲善其事,必先利其器:使用VS Code搭建ARM Corte

          本文链接:https://www.haomeiwen.com/subject/eqpkzktx.html