如何使用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语言简单实现三子棋游戏

    C语言简单实现三子棋游戏

    这篇文章主要为大家详细介绍了C语言简单实现三子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • C++char类型和输入输出优化

    C++char类型和输入输出优化

    这篇文章主要介绍了C++char类型和输入输出优化,char的全称是character,也就是字符的意思。顾名思义,char类型是专门为了存储字符而设计的。下面我们一起来看看文章的具体内容吧
    2021-11-11
  • C语言简易扫雷游戏

    C语言简易扫雷游戏

    这篇文章主要为大家详细介绍了C语言简易扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • C++实现页面的缓冲区管理器

    C++实现页面的缓冲区管理器

    这篇文章主要介绍了C++实现页面的缓冲区管理器,文章围绕主题展开详细的内容介绍具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • C语言自制测色弱找方块游戏的示例代码

    C语言自制测色弱找方块游戏的示例代码

    这篇文章主要介绍了基于C语言自制测色弱找方块的游戏。该游戏是仿照最近网上流行的找方块游戏编写的,可玩性还是挺高的,感兴趣的可以了解一下
    2022-12-12
  • C++实现双向循环链表

    C++实现双向循环链表

    这篇文章主要为大家详细介绍了C++实现双向循环链表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C++实现蓝桥杯竞赛题目---搭积木

    C++实现蓝桥杯竞赛题目---搭积木

    这篇文章主要介绍了C++实现蓝桥杯竞赛题目---搭积木,本篇文章通过题目分析列举公式进行分析算法,包含详细的图文,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • 深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换

    深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换

    本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C++ 学习之旅三 我和超级玛丽有个约会

    C++ 学习之旅三 我和超级玛丽有个约会

    学习了c++有一周有余了吧,感谢孙鑫老师的视频教程,让我   对C++有了基本的了解,并理解到C++与.net 的许许多多的区别,更要感谢网民为programaking的人,会为我提供了超级玛丽制作揭秘 这套宝贵的教程,让我 做做出了这个项目,对c++ 有了一个更深层次的认识
    2012-11-11
  • 循环队列详解及队列的顺序表示和实现

    循环队列详解及队列的顺序表示和实现

    这篇文章主要介绍了循环队列详解及队列的顺序表示和实现的相关资料,需要的朋友可以参考下
    2016-12-12

最新评论