ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ARM Cortex-M开发环境搭建

2022-03-26 10:35:27  阅读:221  来源: 互联网

标签:gcc Code ARM VS Cortex Debug arm 搭建


我们开发ARM一般会使用Keil MDK,IAR等工具,但有时这些工具又不满足我们的需求,现在给大家介绍另一种方案

类型 工具
代码编辑器 VS Code
编译器 arm-none-eabi-gcc
调试器 arm-none-eabi-gdb
ARM Debug工具 openOCD
VS Code插件 Cortex-Debug(用于读取launch.json配置文件进行开始调试)
- C/C++(C代码提示、自动补全等)
- Arm assembly(ARM汇编代码提示、自动补全等)

1.VS Code安装

前往官网Visual Studio Code - Code Editing. Redefined下载并安装

2.插件安装

在插件商店搜索并安装C/C++, Cortex-Debug, Arm assembly

3.编译工具链

Arm GNU Toolchain Downloads

下载后解压到某个目录,之后会在VS Code中配置这个目录

4.ARM Debug工具

此工具配合Cortex-Debug使用
OpenOCD工具在github上有镜像仓库,可访问此仓库下载最新的发布OpenOCD

同样下载后解压到某一目录,之后会在VS Code中配置这个目录

5.配置VS Code工程

形如其他GCC工程类似,可以使用makefile来自动构建,当然也可以使用其他方法
下面用STM32工程为例:
先用STM32CubeMX生成Makefile工程,使用VS Code打开工程

(1)配置代码自动提示

c_cpp_properties.json文件
添加"compilerPath"属性,值为:编译工具链目录/bin/arm-none-eabi-gcc
示例:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE",
                "USE_HAL_DRIVER",
                "STM32H750xx",
                "mfloat-abi=hard",
                "__GNUC__"
            ],
            "cStandard": "c17",
            "cppStandard": "c++17",
            "compilerPath": "D:\\program\\gcc-arm-11.2-2022.02-mingw-w64-i686-arm-none-eabi\\bin\\arm-none-eabi-gcc.exe",
            "intelliSenseMode": "windows-gcc-arm"
        },
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE",
                "USE_HAL_DRIVER",
                "STM32H750xx",
                "mfloat-abi=hard",
                "__GNUC__"
            ],
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-arm"
        }
    ],
    "version": 4
}

(2)配置调试

launch.json文件示例:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Cortex Debug(Linux)",
            "cwd": "${workspaceRoot}/bsp/stm32h750-art-pi",
            "preLaunchTask": "build",
            "executable": "build/stm32h750-art-pi.elf",
            "request": "launch",
            "type": "cortex-debug",
            "servertype": "openocd",
            "interface": "swd",
            "device": "STM32H750XB",
            "configFiles": [
                "interface/stlink.cfg",
                "target/stm32h7x.cfg"
            ]
        },
        {
            "name": "Cortex Debug(Windows)",
            "cwd": "${workspaceRoot}/bsp/stm32h750-art-pi",
            "preLaunchTask": "build",
            "executable": "build/stm32h750-art-pi.elf",
            "request": "launch",
            "showDevDebugOutput": "both",
            "armToolchainPath": "D:\\program\\gcc-arm-11.2-2022.02-mingw-w64-i686-arm-none-eabi\\bin",
            "type": "cortex-debug",
            "servertype": "openocd",
            "serverpath": "D:\\program\\openocd-v0.11.0-i686-w64-mingw32\\bin\\openocd.exe",
            "interface": "swd",
            "device": "STM32H750XB",
            "configFiles": [
                "interface/stlink.cfg",
                "target/stm32h7x.cfg"
            ]
        }
    ]
}

标签:gcc,Code,ARM,VS,Cortex,Debug,arm,搭建
来源: https://www.cnblogs.com/dwk8/p/16057868.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有