VSCode搭建ARM开发环境

为了构建Cortex M系列单片机免费开源的开发环境,网络上了解来看VSCODE+GCC+JLINK是一套比较高效的组合方式,下面记录环境搭建的流程。

我这边的PC环境为 WIN7专业版64bit。

需要用到的工具

  1. Visual Studio Code
  2. STM32Cubemx
  3. ARM GCC 交叉编译工具链:  arm-none-eabi-gcc
  4. Windows版本的GCC编译器:MinGW-W64或MinGW或TDM-GCC,任选一种。
  5. Msys2
  6. OpenOCD
  7. Make
  8. ST-link
  9. STM32F4板子

工具准备

1. arm-none-eabi-gcc下载及安装

官方下载地址

建议使用gcc-arm-none-eabi版本10.3.1(gcc-arm-none-eabi-10.3-2021.10-win32) 其他版本可能会生成太大的闪存文件。

安装过程没啥难度,记得最后一步勾选“Add path to environment variable”,默认是不打勾的。如下图所示:

这一步可以将arm-none-eabi-gcc 所在bin目录添加到PATH环境变量中,如果忘记勾选该选项,需要在完成安装后,手动添加用户变量。

arm-none-eabi-gcc所在的bin目录添加到PATH环境变量之后,就可以在命令行中使用arm-none-eabi-gcc命令了,例如查看版本:输入arm-none-eabi-gcc -v


 

2. Mingw-w64 GCC for Windows 64 & 32 bits下载及安装 

在嵌入式开发上,我们只要用到Mingw-w64提供的make.exe程序,make是用于解析Makefile文件的软件。可以认为Makefile文件是自动调用gcc,把目录里一个个*.c .*h文件喂给gcc去编译的一个自动脚本文件,用户可以自由决定那些文件是需要编译的,哪些是不用编译的,还可以设置编译的选项,比如"编译优化等级",“宏定义”,"警告等级"等等.

更多Makefile相关资料,参考: GNU Make 使用手册(中译版),
https://blog.csdn.net/weixin_40535588/article/details/89336051

安装Mingw-w64, 推荐使用离线安装包安装,其实就是解压到方便找到的目录。

官方链接一般是官方项目主页SourceForge ,或者官方项目Github release页面进行下载. SourceForge是全球最大的开放源代码软件开发平台和仓库。它集成了很多开放源代码应用程序,为软件开发提供了整套生命周期服务。

下面红框里任选, 都是可以用,区别是Windows下实现的系统调用细节不一样.我选的是i686-posix-dwarf,可能是最佳兼容性,这个是在线下载器默认安装的版本.

下载地址:
MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net

上图不同版本区别的参考文章 :
https://blog.csdn.net/AMDDMA/article/details/111600238

Mingw-w64 包含了Windows下的本机GCC编译器套件, 编译产物一般是原生 Windows 应用, 学习C/C++语言,不使用微软的VC的话,就可以使用GCC进行编译windows下的程序.

下载后解压完毕, 会得到一个bin目录(后面要放入系统环境变量里面Path), 里面有很多exe,都是是windows系统的GCC软件套装.

为了方便以后在命令行执行make指令,而不是输入较长的"mingw32-make", 要把mingw32-make.exe 复制为make.exe.

然后将bin文件路径加到环境变量。设置 -> 系统 -> 关于 -> 高级系统设置

 重启后即可生效。打开cmd,输入gcc -vmake --version验证是否成功即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/522000.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

容器安全是什么?

容器安全定义 容器安全是指保护容器的完整性。这包括从其保管的应用到其所依赖的基础架构等全部内容。容器安全需要完整且持续。通常而言,企业拥有持续的容器安全涵盖两方面: 保护容器流水线和应用保护容器部署环境和基础架构 如何将安全内置于容器流…

C/C++游戏逆向

初级 %p、size_t、%zd、%llu、sizeof %p用于输出地址,HWND类型的也可以使用%p输出size_t:C语言源代码:typedef unsigned __int64 size_t;sizeof 返回值是 size_t类型,打印的时候不能使用%d,应该使用%zu 修改窗口标题…

API可视化编排,提高API可复用率

在数字化时代,API(应用程序编程接口)已成为不同软件应用之间沟通的桥梁。然而,如何高效管理、编排和复用这些API,成为了企业和开发者面临的重要挑战。随着技术的不断进步,RestCloud API可视化编排应运而生&…

【YOLO v5 v7 v8 v9小目标改进】AFPN 渐进式特征金字塔网络:解决多尺度特征融合中,信息在传递过程丢失

AFPN 渐进式特征金字塔网络:解决多尺度特征融合中,信息在传递过程丢失 提出背景AFPN 多尺度特征金字塔 非邻近层次的直接特征融合 自适应空间融合操作 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改YOLO v9 魔改 提出背景 论文:https:…

吴恩达deeplearning.ai:数据增强数据合成迁移学习

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏 让我们看看为你的程序添加数据的技巧。在构建神经网络的时候,我们总是想要更多的数据,但是获取更多的数据往往是十分昂贵又缓慢的。相反地,添加数据的另一…

现在做抖店还能行吗?给2024年想入局抖店的新手,一些建议

我是王路飞。 说起来抖店好像也不算是个新项目了,毕竟抖音小店正式上线时间是在2019年,到现在也有5年多时间了。 我这边是从20年开始入局抖店的,比较庆幸的是赶上了当初的流量风口,且一直坚持到了现在。 由刚开始的单人单店&am…

手写分布式配置中心(六)整合springboot(自动刷新)

对于springboot配置自动刷新,原理也很简单,就是在启动过程中用一个BeanPostProcessor去收集需要自动刷新的字段,然后在springboot启动后开启轮询任务即可。 不过需要对之前的代码再次做修改,因为springboot的配置注入value("…

Unity 给刚体一个力或速度

创建平面和小球,给力或给速度让其弹起 给小球挂载刚体(Rigibdody)和脚本 (力是累计或者衰减的,直接给速度就是赋值,但如果速度就和力类似了) using System.Collections; using System.Collect…

数据库(mysql)-新手笔记(主外键,视图)

主外键 主键(唯一性,非空性) 主键是数据库表中的一个或多个字段,其值唯一标识表中的每一行/记录。 唯一性: 主键字段中的每个值都必须是唯一的,不能有两个或更多的记录具有相同的主键值 非空性:主键字段不能包含NULL值。 外键(引用完整 …

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Marquee)

跑马灯组件,用于滚动展示一段单行文本。仅当文本内容宽度超过跑马灯组件宽度时滚动,不超过时不滚动。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Ma…

Python笔记|基础算数运算+数字类型(1)

重新整理记录一下python的基础知识 基础运算符 、-、*、/ ;括号 ()用来分组。 >>>2 2 4 >>>50 - 5*6 20 >>>(50 - 5*6) / 4 5.0 >>>8 / 5 1.6向下取整除法:向下舍入到最接近的整数的数学除法。运算符是 //。比如1…

AI大模型,掀起新一波智能浪潮!

AI大模型的出现,标志着人工智能技术迈入了一个新的阶段。这些巨大的模型不仅在规模上超越了以往任何其他人工智能系统,而且在性能上也取得了巨大的突破。由于其庞大的参数量和复杂的结构,AI大模型在各个领域展现出了强大的学习能力和推理能力…