从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文件编译成汇编文件.s3汇编文件会通过汇编器被翻译成计算机可识别的.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命令待完成。。。