使用STM32标准库构建VSCode+gcc+openOCD开发STM32

本文介绍了如何使用VSCode、GCC编译器和OpenOCD调试器,免费构建STM32的开发环境。STM32CubeIDE和TI的CCS虽然免费,但VSCode的开源、跨平台特性使其成为更优选择。通过安装扩展组件、GCC、OpenOCD等工具,详细讲解了在Windows 7上从零开始搭建STM32F103RC的开发环境,包括安装步骤、调试配置及Makefile编写。文章适合有一定基础的开发者,提供了完整的工程文件和调试配置,帮助开发者摆脱商业IDE的依赖。
摘要由CSDN通过智能技术生成

 

    目前为止,使用STM32的平台比较流行的是keil for Arm和IAR for ARM,这两个平台都比较类似,集成编辑、编译和调试环境,俗称IDE。用户只需简单的操作就能编译和调试STM32,非常方便。不过,比较遗憾的是keil和IAR虽然方便使用,但却不是免费的。正版的keil,不管是专业版还是非专业板,每套费用都是上万元。如果是大企业员工用使用盗版,可能keil或IAR的律师函已经在路上了。你可能想到,虽然我使用的keil或者IAR是破解的,但我开发的电脑不联网,不就行了吗?只要企业的产品有使用到单片机,并且是自主研发类型,收到律师函的可能性也不低。或者某天有某个间谍在公司研发部转一圈,也可以大概知道用到哪些收费软件。对于芯片方案商而言,肯定是希望自己的芯片被更多用户放心使用。ST官方近两年推出了STM32CubeIDE,STM32CubeIDE不仅对用户免费,而且支持window、Linux和macOS。如果用户使用STM32CubeIDE开发STM32,那就可以省去购买软件的成本。另外,不仅ST推出免费的STM32CubeIDE,TI也很早就推出了免费的CCS。我认为,跨平台、免费和开源是未来趋势。

    STM32CubeIDE和CCS都是基于eclipse,再加上编译器和调试组件,就可以编译和调试单片机了。eclipse调试单片机,速度会稍微慢点,而且编辑功能不够强大。这里推荐一款软件VSCode(堪称宇宙最强编辑器),VSCode是微软推出的免费开源软件,不仅可以安装各种功能扩展组件,而且支持Windows、Linux和macOS,绝对是无敌的存在。如果能用VSCode开发STM32,绝对爽爆了。国内有不少用户使用VSCode开发单片机程序,仅仅用作文本编辑功能,程序编译和调试还是在keil或者IAR上进行。每次修改都要在两个软件来回切换,甚是繁琐,本质上还是依靠Keil或者IAR做开发。实际上,VSCode+开源gcc+开源openOCD,开发STM32是完全可行的。然后再VSCode添加task来实现程序的编译和下载重启。调试基于开源openOCD,支持多种仿真工具,比如STLINK和CMSIS_DAP。开源VSCode+开源gcc+开源openOCD的组合没有用到任何收费软件,可以放心开发。实际体验丝毫不逊于keil和IAR,该有的功能都具备。接下来我分享一下在windows 7利用VSCode编译和在线调试STM32F103RC单片机的详细过程。Linux和MAC平台也是类似做法。我使用的库是STM32F1x标准库,可能对习惯用标准库的用户有所帮助。

  注意!本帖介绍从零开始搭建gcc开发环境,有一点的难度系数,需要懂一点单片机的开发环境基础。如果你是单片机小白,很可能搞不定,还是推荐用keil或者IAR。

 一、相关准备工作
    1、安装VSCode扩展组件
    自己去VSCode官网下载VSCode。为了方便开发STM32,我们需要下载VSCode的扩展组件,我自己使用的扩展组件如下图所示:

其中:ARM组件是提供ARM汇编环境的支持;
   C/C++、C/C++ Snipprts和C++Intellisense组件提供C/C++语言的支持、跟踪定义、语法判断等功能;
   Cortex-Debug组件是调试Cortex内核的工具,配合开源openOCD和开源pyOCD等调试软件,就可以实现调试,比如单步,全速运行、进入函数等功能。还可以查看单片机各种寄存器状态,变量的数值。有了Cortex-Debug组件,我们连接调试软件就很方便,无需使用端口号连接调试软件。
  Cortex-Debug:device Support Pack-STM32F1组件是STM32F1个设备支持包,需要配合Cortex-Debug组件使用。

2、安装gcc-arm-none-eabi
    这个工具是gcc对应的arm编译器,下载地址:https://developer.arm.com/tools- ... in/gnu-rm/downloads,我下载的文件是:gcc-arm-none-eabi-9-2019-q4-major-win32-sha2.exe,点击安装到默认地址就行,完成前,记得勾选add path to environment variable。

然后在桌面敲击“窗口图标+R",进入运行,输入”CMD",打开命令窗口,输入arm-none-eabi-gcc -v,可以查看到版本,说明安装成功。

由于gcc-arm-none-eabi软件的目录的bin文件夹不带make.exe,不能直接使用make命令编译程序,所以需要安装make.exe。详细安装过程可以查看我的其他帖子介绍,链接地址:http://www.51hei.com/bbs/dpj-185236-1.html。最后,将make.exe复制到C:\Program Files (x86)\GNU Tools Arm Embedded\9 2019-q4-major\bin。

4、下载开源openOCD
   本次使用的调试软件是ope

  • 17
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
VSCode是一款轻量级的集成开发环境(IDE),支持多种编程语言和平台。GCC是GNU Compiler Collection的缩写,是一套开源的编译器工具集,支持多种编程语言。OpenOCD是一个开源的调试和编程工具,用于与嵌入式系统进行通信和调试。 在VSCode中配置GCCOpenOCD可以帮助你进行嵌入式开发。下面是配置的一般步骤: 1. 安装VSCode:首先,你需要下载并安装VSCode编辑器,可以从官方网站上下载适合你操作系统的版本。 2. 安装插件:打开VSCode后,在扩展商店中搜索并安装C/C++插件,该插件提供了对C和C++语言的支持。 3. 配置GCC编译器:在VSCode中打开你的项目文件夹,然后按下`Ctrl + Shift + P`,输入“C/C++: Edit Configurations (JSON)”并选择它。在打开的`c_cpp_properties.json`文件中,添加以下配置: ```json { "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**" ], "defines": [], "compilerPath": "gcc", "cStandard": "gnu11", "cppStandard": "gnu++14", "intelliSenseMode": "gcc-x64" } ], "version": 4 } ``` 这里使用了默认的GCC编译器路径,如果你的GCC编译器不在系统的环境变量中,你需要修改`compilerPath`字段为GCC的完整路径。 4. 配置OpenOCD:在VSCode中打开你的项目文件夹,然后按下`Ctrl + Shift + P`,输入“Tasks: Configure Default Build Task”并选择它。选择“Create tasks.json file from template”并选择“Others”模板。在打开的`tasks.json`文件中,添加以下配置: ```json { "version": "2.0.0", "tasks": [ { "label": "OpenOCD", "type": "shell", "command": "openocd", "args": [ "-f", "interface/stlink.cfg", "-f", "target/stm32f1x.cfg" ], "group": { "kind": "build", "isDefault": true } } ] } ``` 这里使用了默认的OpenOCD配置文件路径,如果你的配置文件不在默认路径下,你需要修改`args`字段为你的配置文件路径。 以上是简单的VSCodeGCCOpenOCD的配置步骤。希望对你有所帮助!
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值