当前位置: 首页 > news >正文

从Keil到VScode的一站式服务(stm32和GD32)

本文将主要介绍如何通过EIDE插件从keil转到vscode平台开发,将介绍使用VScode的优点,简单的编译流程,EIDE环境搭建,项目配置,以及一些简单的Git命令,帮助初学者快速入门vscode开发

本篇将不局限于stm32芯片环境的搭建,还会为你介绍GD32环境的搭建,同时也将提供我在初学途中所遇到过的一些琐碎的问题

背景

你经历过keil的开发,自然面临着许多比较差的体验,老旧的UI界面,残缺版的代码补全,需要ctrl C + ctrl V 实现与ai交互或者实现项目的合作.基于以上原因,vscode这个轻量化的编程平台可以很好的解决这些问题.

由于vscode本身的使用范围不局限于嵌入式开发,同时也不局限于C语言这一种高级语言.

因此你需要通过EIDE插件来搭建开发环境,同时依靠C/C++插件来让你能够敲C语言

步骤流程

你可以直接访下面这个链接下载vscode,和正常的软件下载没什么区别,这里就不做演示,

(你可以设置你浏览器的默认下载路径,自己设置下载的软件的压缩包路径)

https://code.visualstudio.comhttps://code.visualstudio.com/当你打开vscode界面大抵是下面这样的

(原版是英文,你只需要在插件里面搜索Chinese有一个汉化插件,下载之后,=右下角弹窗告诉你重启, 重启后就可以和我有相同的界面)

VScode的这些插件,以及后面的工具链会默认保存在C盘当中,如果想要保存到D盘可以问ai(我不会承认我没试过,如果不麻烦call我),如果你想清残余文件可以通过win + R指令"appdata" 清除残余文件(快感谢我,我不信就我不知道如何清卸载后的残余数据)

安装完这三个插件(截图的只是一部分,EIDE由很多插件组成)你就可以进入下一步了.

简单的编译流程

在开始聊步骤之前,先讲一讲你写完代码之后,编译器是如何对你的程序进行编译的,这有利于你理解我后面的这些操作.

(如果你想了解详细的编译流程,可以选择"龙""虎""鲸"书.如果只是简单的了解可以看一看<嵌入式c语言自我修养>第四章,反正我自己没看进去,只是有个了解 )

(ps:一般来讲,人们常说的编译器其实不单单是只是编译的工具,用工具链描述更合适)

1.首先,当你编译之后,工具链会先进行预处理 处理源代码中以#开头的指令 生成一个原汁原味的.i文件

2在预处理结束,工具链会进行编译,将这个原汁原味的c文件编译成汇编文件.s

3汇编文件会通过汇编器被翻译成计算机可识别的.o可执行文件(可重定位,就是内存起始地址可变)

4最后这些.o文件(一个项目不可能只有一个.c文件)还有库文件(stdio这种)经过链接器的链接变成最终的可以执行的.elf文件

(连接器需要借助链接文件.ld才能知道如何给每个.o 库文件划定自己的地盘 ,对于多出来的.o文件(你添加新文件)链接器会自己把代码扔到空余出来的内存空间)

0.在编译开始之前,你还需要一个.s启动文件来给芯片运行初始化,在整个编译流程之前,.s文件会先为后面编译出来的文件"搭建一个房子"

EIDE环境搭建

当你了解了上面的流程,那么不管是stm32还是其他芯片,你完全可以自己依靠EIDE插件搭建对应的开发环境.

当然要实现编译之间,你需要先有工具链,keil软件使用的时ARMCC工具链,而这里我将为你介绍开源免费的GCC编译器

左侧栏新增出来的就是EIDE插件的图标,打开之后,打开最下面的OPERATIONS,我们将在这里,下载工具链,创建项目,安装使用工具

(ps:如果你看到我的左下角设置,你会看到一个TI的标识,当你打开只有有配置文件选项卡,你可以新建配置文件,会重置你的插件,这样就可以实现不同芯片分单独配置,我们继续~)

安装实用工具里面,安装GNU Arm Embedded Toolchain 这个就是专门用于arm的gcc编译器,如果你要开发RISC-V的芯片,那么可以下载下面的那个gcc编译器.

(眼神比较好的人可能注意到我下面有个OpenOCD也下载了,这个等到调试的时候再说)

接下来我们设置对应的工具链,也就是刚才下载的Arm gcc,只要后面不是对号那就表示你设置成功了

(ps:如果你想使用keil的调试功能,那么可以选择ARMCC的工具链,具体要如何操作,我自己没有试过,但是大体流程差不多,可以去查一查其他人写的文章~)

调试器配置

这里使用的调试器主要是ST_Link,当然你也可以选择其他的调试器在安装使用工具当中安装ST_Link,同时为了能够让你写的代码和ST_Link之间能够正常沟通,你就需要两个"翻译官",首先你需要将你写的代码通过Cortex Debug插件翻译成OpenOCD能够识别的语言,然后再通过OpenOCD与ST_Link或者J_Link交流 .

记得在设置工具链中设置,同时你也要确定,你使用的是什么调试器,如果是J_Link或者其他不要下载错.


项目相关配置

项目配置环节,就类似于你在keil当中通过魔法棒为添加,c和,h文件,如果你使用stm32的HAL库开发,那么可以通过CubeMX配置文件,如果你是开发其他芯片的标准库(如GD32),那么可以下载固件库,在固件库当中CMSIS当中Sourse当中有对应的芯片的.ld和.s文件

前面的配置就根据自己的情况自己设置就行,生成的文件如下图


只要有这两个文件就没大问题,你不管是选择CMake还是Makefile 都没关系,因为用不到hh

如果时GD32的标准库那么你就需要自己去固件库中找到你使用的芯片所对应的.ld和.s芯片

(放心肯定有,在CMSIS当中多翻一翻,因为不需要用到CMake或者Makefile所以不需要去GitHub当中找)

我使用的时GD32F470大概如下(经过了整理,其他的ld和s文件记得都删掉不然会报错)

对于CubeMX玩家,因为你是通过CubeMX配置的文件,所以你在EIDE新建项目的时候,需要和CubeMX当中的文件名一样,都在同一级路径当中,让vscode弹出合并文件的弹窗(这样做是为了让你创建的带有VScode 的项目与CubeMX的项目合并)

(在创建项目的时候会要求你选择你的芯片的架构,比如说8051 , Cortex-M 等在顶部输入框输入向明名称即可)

点击yes,然后切换到对应的工作区

对于GD32或者其他芯片的玩家,你可以直接新建文件,然后把固件库提供的Firmware文件user文件 ld 和s文件都添加到里面.(上上图所示)

这个就是初始的界面

配置流程

1 首先你需要配置项目资源(也就是将你前面所准备或者CubeMX为你生成的固件库和你自己的库文件夹添加到EIDE当中,能够让插件知道都有哪些文件)

2除此之外,你还需要创建虚拟文件夹("虚拟",就是为了方便管理而虚构的文件夹实际上它并不存在)在这里面添加你的启动文件(提示:在弹出你电脑文件管理器界面的时候,你需要在底部选择)

选择asm,你就可以找到启动文件

3在构建配置当中,复制你的链接器相对地址

Git命令

(待完成。。。)

http://www.rkmt.cn/news/1499530.html

相关文章:

  • 【干货】DeepSeek / 豆包数学公式完美转 Word 攻略!告别乱码,效率翻倍!AI 导出鸭一键快速转换公式
  • 包包回收行业避坑总结,合肥 2026 连锁商铺诚信经营 - 奢侈品回收评测
  • C++:初始化列表
  • 2026年展柜厂家推荐榜单:内衣展柜/酒柜/鞋柜/眼镜柜/珠宝展柜,专业定制与空间美学深度解析 - 企业推荐官【官方】
  • 2026东莞配眼镜镜片膜层工艺深度解析:防反射、耐磨、疏水三大镀膜技术详解 - 配眼镜新资讯
  • ijkplayer vs ffplay.c:架构优化与工程实践深度解析
  • 【Redis分布式缓存实战】第22章 企业级Redis缓存项目架构复盘
  • 2026年北京刑事律师权威榜单TOP10:刑事案件辩护深度评估 - 新闻快传
  • 2026年郑州机场货物人工搬卸公司权威分享报告:港区搬迁服务优选指南! - 品研笔录
  • Web分布式网站架构之-Squid缓存【20260608】002篇-Squid 工作流程图
  • 斯坦福李瑞江团队在Nat Med发表能够融合病理切片与虚拟CODEX染色的多模态医学AI框架
  • 2026煤磨气体分析仪品牌盘点:防爆燃监测设备哪家强?全国厂家排名揭晓 - 品研笔录
  • 2026年如何降AI率?「三层过滤法」教你高效降AI【附降AI提示词】
  • Web分布式网站架构之-Squid缓存【20260608】003篇-Squid 工作流程图
  • 无锡高考复读学校核心提分技术与管理体系深度拆解 - 起跑123
  • 项目实训个人工作记录(四):用户管理模块全流程开发
  • 【NLP自然语言处理】4.基础-文本特征处理文本数据增强
  • Function Calling 与 MCP 深度对比:从原理到实践,一文讲透区别与关系
  • 在Python中,不可变(immutable)数据类型是指一旦创建后,其内容不能被修改的数据类型
  • 2026 香奈儿名牌包包回收规则,无锡门店回收对哪些款式更热忠 - 奢侈品回收评测
  • 【Uniapp 插件 una-banner 】轮播图 / banner / swiper
  • 2026上海百达翡丽回收价格怎么算?全套、单表、成色差价明细解析 - 奢侈品回收评测
  • 素材去水印实用技巧:按场景选择工具,兼顾效率与画质
  • 伺服电机仿真(3):PMSM在三相静止坐标系下的数学模型
  • 系统规划与管理师选老师:案例不好的人,需要什么样的老师?
  • 新装修的石材为什么开裂?5大原因+预防措施(2026版) - 宁波融诚石业
  • 2026窑炉气体分析系统选购指南:全国优质厂家排名与实战经验分享 - 品研笔录
  • Python之encrypti0n包语法、参数和实际应用案例
  • 如何利用 OpenCV 将图像显示在对话框窗口上
  • 2026合肥市生成式引擎优化(GEO)技术能力权威测评报告|百分制量化技术版 - 安徽工业