VSCode+gcc搭建STM32开发环境的几种方案

使用vscode + gcc进行 STM32 单片机开发(一)编译及调试 简介 众所周知,单片机MCU的开发通常是使用keil来进行的,但是keil作为一款有几十年历史的IDE,bug层出不穷,界面也越来越丑,加上使用盗版jlink,导致keil各种崩溃卡死。 故越来越多的单片机IDE也如雨后春笋般冒出,例如 st官方出版的st studio、rt-thread出版的rt-studio,至于好不好用、能不能满足工作需要,则仁者见仁智者见智了。 反正我本人是不喜欢这些IDE的。 本文介绍的使用vscode (visual studio code)来进行单片机MCU的开发。 vs 阅读详情
AI摘要

本文介绍了如何利用VSCode的插件生态构建一个基于gcc的开发环境,包括STM32的编译套件安装,如make和CMake的使用,以及如何配合EmbeddedIDE和CortexDebug插件进行代码编写、编译和调试的过程。

VSCode虽然只是一个代码编辑器,由于开源并提供了易用的插件接口,目前已拥有丰富的第三方插件,可以联合gcc构建一个类似于IDE的开发调试环境。

gcc编译套件

stm32使用了arm的Cortex-M内核,直接上arm官官网下载mcu编译套件:https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads,下载arm-none-eabi版本可以编译裸机程序或者RTOS的程序。下载成功后直接解压到本地目录,并添加其bin文件夹到环境变量。安装成功后可通过下面指令进行测试(目前gcc为12.2.1版本):
windows上gcc安装成功测试
成功安装了这个gcc编译套件几乎还不能编译哪怕是一个led闪烁的工程,这是由于任何一个工程几乎不太可能只有一个源文件组成,在文件达到一定的规模直接使用gcc命令去编译是一件容易出错且效率极低的工作,这里我们就需要一套建构工具,比如常听说的GNU Make、qmake、namake、pmake、SCons等等。

构建工具

make

make几乎属于构建工具的第一代但是应用较为广泛,从头makefile文件编写对经常使用makefile的工程师也较为困难,但STM32CubeMX生成的工程也提供了较为完善的支持可自动生成基础的makefile文件。
在windows上下载make工具:https://github.com/skeeto/w64devkit/releases,下载成功后将其bin文件添加到环境变量,安装成功后可以通过以下指令进行测试,此时按理说应该能使用make进行编译了,但makefile中可能重新定义了某些绝对路径导致编译失败,这是需要重新定义Makefile中的相关变量,然后就能正常编译了。
windows上gnu make安装成功测试
安装成功后直接使用STM32CubeMX生成Makefile工具链工程即可,切换到源码目录直接编译:
生成makefile工程适配
make启动编译
make编译成功
STM32CubeMX生成了一个基础可直接使用makefile工程,后续仅需要把应用代码添加到其Makefile中即可。代码编写直接使用VSCode即可,编写完成后执行make指令进行编译。

##########################################################################################################################
# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Mon Jul 03 18:35:08 CST 2023]
##########################################################################################################################

# ------------------------------------------------
# Generic Makefile (based on gcc)
#
# ChangeLog :
#	2017-02-10 - Several enhancements + project update mode
#   2015-07-22 - first version
# ------------------------------------------------

######################################
# target
######################################
TARGET = GCC


######################################
# building variables
######################################
# debug build?
DEBUG = 1
# optimization
OPT = -Og


#######################################
# paths
#######################################
# Build path
BUILD_DIR = build

######################################
# source
######################################
# C sources
C_SOURCES =  \
Core/Src/main.c \
Core/Src/stm32l4xx_it.c \
Core/Src/stm32l4xx_hal_msp.c \
Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c \
Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c \
Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c \
Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c \
Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c \
Drivers/STM32L4xx_HAL_Driver/Sr
【工具使用】VScode配置gcc开发环境 本文,主要介绍如何使用vscode配置gcc环境,供参考。 阅读详情

相关推荐

VSCode+gcc+CubeMX=优雅的编译STM32

makefile cubemx vscode

cooldeed的博客 2198

ubuntu搭建STM32开发环境

所需软件 GNU Arm Embedded Toolchain gcc make openocd STM32CubeMx VSCode 一、环境配置 1、安装gcc-arm-none-eabi 进到官网选择Linux版本 等待下载~ 接着直接解压,解压之后用 cd 进到解压的文件目录下,查看一下文件(文件我已经重命名) 紧接着进到 bin 目录下,查看一下文件信息 下面我们将此路径添加到环境变量中 打开终端,输入:vim ~/.bashrc 跳转到最后一行,将gcc-arm-none-eabi的b

m0_47329175的博客 5570

linux上搭建stm32开发环境 vscode+gcc+stm32cubeMX 和 vscode+platformIO

PC系统:ubuntu-18.04一、软件清单VScode:https://code.visualstudio.com/Downloadarm-none-eabi-gcc:https://launchpad.net/gcc-arm-embedded/+downloadCortex-Debug:  VSCode里面的插件,搜即可OpenOCD:sudo apt install openocd    ...

An introvert extrovert 的博客 8884

VSCode搭建STM32开发环境

STM32CubeMX + VScode 完成32的开发

ciqujinnian_的博客 1711

基于ubuntu下stm32开发环境搭建

主要学习了ubuntu下stm32开发环境搭建,实现编译、烧录、调试等功能。

weixin_41742029的博客 1855

ESP32驱动TFT屏幕实战:LVGL与TFT_eSPI完美结合

本文详细介绍了如何在ESP32上结合TFT_eSPI驱动库与LVGL图形库,实现高效、流畅的嵌入式GUI开发。内容涵盖硬件连接、软件环境搭建、库配置、LVGL移植、界面创建及性能优化等全流程实战指南,帮助开发者快速构建低成本、高性能的交互式显示应用。

weixin_29206669的博客 200

DIY玩家必备:用SSS1623芯片打造高性价比USB麦克风(附完整电路图)

本文详细介绍了如何利用SSS1623芯片DIY高性价比USB麦克风,包括元件选型、电路设计、PCB布局及调试技巧。通过完整的电路参考设计和实用建议,帮助电子爱好者打造专业级录音设备,实现免驱动即插即用功能。

weixin_29166013的博客 238

文本→图像→视频:AIGC跨模态转换全流程解析

本文旨在系统性地解析AIGC领域中跨模态内容生成的技术原理和实现方法,特别聚焦于从文本到图像再到视频的完整转换流程。跨模态表示学习的基本原理文本到图像生成的核心技术图像到视频转换的关键算法端到端跨模态生成系统的构建方法实际应用场景和性能优化策略背景介绍:建立基本概念和知识框架核心概念:解析跨模态转换的关键技术和原理算法细节:深入讲解文本到图像、图像到视频的核心算法数学模型:提供必要的数学基础和公式推导项目实战:通过完整案例展示实现过程应用场景:探讨技术的实际应用可能性。

AI天才研究院 1352

CelebA-HQ数据集下载【详细明了版】分辨率包括【64,128,256,512,1024】

CelebA-HQ 是在ICLR2018上,nVidia发表了一篇名为Progressive Growing of GANs for Improved Quality, Stability, and Variation的论文,文中通过训练高分辨率GAN生成了一个新的人脸数据集CelebA-HQ.CelebA是港科大汤晓鸥组收集的人脸数据集(总共200k图片),包括了人脸特征点(landmark),人脸属性(attribute)等信息,详细介绍参考链接[1]和[2]

zik的博客 1万+

以宠辱之戒写 SAP Fiori Elements,把标准能力当成身体,把扩展冲动当成大患

SAP Fiori Elements开发中常面临业务方追求"独特页面"的压力,但过度自定义会破坏框架价值。老子"宠辱若惊"的智慧提醒开发者:不应因用户称赞或批评而动摇架构原则。标准模板的价值在于确保业务语义、交互规范和后端服务的一致性。扩展应遵循官方API,将业务逻辑放在ABAP/CDS层而非前端控制器。成熟项目会平衡标准与定制,使用annotation表达UI行为,仅在必要时通过受支持的extension points进行增强,保持系统的长期可维护性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 996

小梅哥Xilinx FPGA学习笔记11——亚稳态

亚稳态就是D触发器输入信号在其数据窗口期内发生变化,导致D触发器的输出进入一段时间的不稳定状态,有可能发生振荡,并最终随机稳定在高电平或者低电平。

m0_51430584的博客 631

YOLO11改进|卷积篇|引入SPDConv

YOLO11中添加SPDConv卷积

A1983Z的博客 3696

YOLOv9改进,YOLOv9添加CBAM注意力机制

CBAM是一个简单而有效的注意力模块,用于前馈卷积神经网络。给定一个中间特征图,我们的模块按顺序推断两个独立维度(通道和空间)的注意力图,然后将注意力图乘以输入特征图以进行自适应特征细化。由于 CBAM 是一个轻量级的通用模块,因此它可以无缝集成到任何 CNN 架构中,开销可以忽略不计,并且可以与基础 CNN 一起进行端到端训练。论文链接:(CBAM论文)

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 856

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: 无符号数减法在嵌入式开发中的应用
下一篇: 日期与时间戳-如何将时间戳转换成日期
老Z先生
博客等级 码龄4年 417粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值