如何使用arm-none-eabi-gcc编译器搭建STM32的Vscode开发环境

 更新时间:2023年07月26日 10:19:58   作者:lyq308152569  
这篇文章主要介绍了使用arm-none-eabi-gcc编译器搭建STM32的Vscode开发环境,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

工具

  • make:Windows中没有make,但是可以通过安装MinGW或者MinGW-w64,得到make。
  • gcc-arm-none-eabi:建议最新版,防止调试报错
  • OpenOCD
  • vscode
  • cubeMX

VSCODE 插件

  • Arm Assembly:汇编文件解析
  • C/C++:c语言插件
  • Cortex-Debug:调试插件

添加环境变量路径

  • gcc-arm-none-eabi\bin
  • OpenOCD\bin
  • 建议MinGW-make工具重命名为make.exe并添加到gcc-arm-none-eabi\bin路径

测试工具环境变量是否生效

 arm-none-eabi-gcc -v
 OpenOCD -v
 make -v

创建工程

使用cubeMX创建Makefile工程

Makefile:由于window没有rm指令,所以这里修改为 del,并添加了系统判断

将makefile一下
-------------------------------
clean:
	-rm -fR $(BUILD_DIR)
-------------------------------
修改
-------------------------------
ifeq ($(OS),Windows_NT)
clean:
	del $(BUILD_DIR)
else
clean:
	-rm -fR $(BUILD_DIR)
endif
-------------------------------

工程添加文件

调试器配置OpenOCD\share\openocd\scripts\interfacestlink-v2.cfg芯片配置OpenOCD\share\openocd\scripts\targetstm32f7x.cfg

vscode 配置任务脚本

  • 创建任务脚本
    F1
    输入 tasks
    选择 运行任务
    选择 配置任务
    选择 使用模板创建task.json
    选择 other
    选择创建 tasks

使用任务脚本

CTRL + SHIFT + B 选择对应的任务
tasks.json

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
“version”: “2.0.0”,
“tasks”: [
//make 任务
{
“label”: “build”,
“type”: “shell”,
“command”: “make”,
“problemMatcher”: [],
“group”: {
“kind”: “build”,
“isDefault”: true
}
},
// clean 任务
{
“label”: “clean”,
“type”: “shell”,
“command”: “make clean”,
“problemMatcher”: [],
“group”: {
“kind”: “build”,
“isDefault”: true
}
},
//下载任物
{
“label”: “download”,
“type”: “shell”,
“command”: “openocd”,
// openocd 传递的参数
“args”: [
“-f”,
“stlink-v2.cfg”,
“-f”,
“stm32f7x.cfg”,
“-c”,
“program build/stm32f767_project.elf verify reset exit”,
],
“group”: {
“kind”: “build”,
“isDefault”: true
},
},
]
}

vscode 配置调试脚本

1.创建调试脚本
选择调试窗口
选择 创建 launch.json 文件2. 启用调试
快捷键 F5

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Cortex Debug",
            "cwd": "${workspaceFolder}",
            "executable": "${workspaceFolder}/build/stm32f767_project.elf",             // 编译文件
            "request": "launch",
            "type": "cortex-debug",
            "servertype": "openocd",
            "interface":"swd",
            "device": "STM32F7IGT6",                
            "configFiles": [
                "stlink-v2.cfg",              
                "stm32f7x.cfg",
            ]
        }
    ]
}

调试过程中报错:仔细查看报错信息,gcc版本过低也会造成调试报错

到此这篇关于使用arm-none-eabi-gcc编译器搭建STM32的Vscode开发环境的文章就介绍到这了,更多相关arm-none-eabi-gcc编译器搭建Vscode开发环境内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • c++调用实现yolov5转onnx介绍

    c++调用实现yolov5转onnx介绍

    大家好,本篇文章主要讲的是c++调用实现yolov5转onnx介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • C++实现逆波兰式

    C++实现逆波兰式

    这篇文章主要为大家详细介绍了C++实现逆波兰式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • OpenGL实现3D空间中移动图像

    OpenGL实现3D空间中移动图像

    这篇文章主要为大家详细介绍了OpenGL实现3D空间中移动图像,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • C++实现类似延时停顿的打字效果

    C++实现类似延时停顿的打字效果

    这篇文章主要介绍的是使用C++实现类似延时停顿的打字效果的代码,非常的简单,推荐给大家,有需要的小伙伴可以参考下。
    2015-03-03
  • c++验证哥德巴赫猜想

    c++验证哥德巴赫猜想

    这篇文章主要介绍了c++验证哥德巴赫猜想,哥德巴赫猜想就是任一大于2的偶数,都可表示成两个素数之和,需要的朋友可以参考下
    2014-04-04
  • C++指向类成员函数的指针详细解析

    C++指向类成员函数的指针详细解析

    由于这几天在开发中要用到函数指针,所以就整理了一下关于函数指针的概念
    2013-08-08
  • C++语言实现拼图游戏详解

    C++语言实现拼图游戏详解

    这篇文章主要为大家详细介绍了C++基于EasyX库实现拼图小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 解析C++编程中异常相关的堆栈展开和throw()异常规范

    解析C++编程中异常相关的堆栈展开和throw()异常规范

    这篇文章主要介绍了C++编程中异常相关的堆栈展开和throw()异常规范,throw()规范部分文中结合了C++11标准的新特性来讲,需要的朋友可以参考下
    2016-01-01
  • C++ QgraphicsScene类案例详解

    C++ QgraphicsScene类案例详解

    这篇文章主要介绍了C++ QgraphicsScene类案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • C++实现猜数字游戏

    C++实现猜数字游戏

    这篇文章主要为大家详细介绍了C++实现猜数字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07

最新评论