VScode+STM32CubeMX开发STM32
前言
之前一直使用的Keil+STM32CubeMX来进行的32程序开发,但是Keil的界面着实不好看,自动补全啥的也不太好使,加上本人喜欢使用UTF-8
作为文件编码,而网络上找的大部分例程都是GB2312
的编码,转换起来很麻烦,VScode拥有许多插件可以自动进行编码转换,格式化代码,自动补全啥的都不错,之前尝试过使用VScode进行编辑,使用Keil进行编译调试,但是这样的话两个软件切换起来也很麻烦就放弃了,之前的Keil版本还有如果工程路径有中文进入调试后如果没有删除所有断点就退出调试就会出现Keil卡死不动的情况,虽然最新的MDK529解决了这个问题,但是最近也在学习嵌入式Linux,没有IDE可以用,使用的ARM_GCC和Makefile进行程序编译,所以准备STM32的开发也用这种方法,利用ARM_GCC以及VScode进行程序编写和编译,利用OpenOCD和Jlink进行调试。VScode的界面确实漂亮,有很多主题可用,也有很多插件方便开发。
软件准备
- VScode:官网下载最新版就行。
- Git:Git是一个分散式版本控制软件,这篇文章不讲他跟版本控制有关的部分,安装Git只是用到他带的Git Bash这个终端。
- GNU Arm Embedded Toolchain:STM32是ARM内核的芯片,这个交叉编译工具链包含了所有用于交叉编译ARM内核程序的软件,我这里使用的是
gcc-arm-none-eabi-9-2019-q4-major-win32.exe
这个Windows上的最新版的,如果是在别的系统上搭建只需要选择对应系统版本的即可。 - MinGW:MinGW是将GCC编译器和GNU Binutils移植到Windows平台下的产物,包括一系列头文件、库和可执行文件。这里选用的是64位版的MinGW,主要使用其中的make工具。
- OpenOCD:OpenOCD(Open On-Chip Debugger)开源片上调试器,是一款开源软件,最初是由Dominic Rath同学还在大学期间发起的(2005年)项目。OpenOCD旨在提供针对嵌入式设备的调试、系统编程和边界扫描功能。OpenOCD在这里的作用就是连接Jlink,STlink等仿真器进行程序下载或者调试。这里给出的链接是已经预编译好的可执行文件。
- J-Link Software and Documentation Pack:Jlink的驱动以及各种相关软件,这篇文章里Jlink没有使用OpenOCD进行连接而是使用的JlinkGDBSever和JFlash进行的调试以及程序下载。当然使用OpenOCD也是没有问题的,只是配置文件有一些区别。
- STM32CubeMX:STM32CubeMX是一个图形化的工具,也是配置和初始化C代码生成器(STM32 configuration and initialization C code generation),也就是自动生成开发初期关于芯片相关的一些初始化代码。简单来说就是通过鼠标点一点来设置各种外设的参数,然后一键生成包含自己设置的这些外设底层驱动的工程框架,STM32CubeMX生成的代码使用的是HAL库。
搭建流程
软件安装及配置
VSCode
正常安装VScode,然后安装一些需要的插件。
在VScode中使用快捷键Ctrl
+Shift
+P
,打开命令面板,接着输入Install Extensions
,跳到扩展页面,或者直接鼠标点击左侧活动栏上的扩展图标,接下来输入下面的扩展名称进行搜索然后安装。
- ARM:使的ARM汇编代码获得语法高亮,这里主要用在启动文件上。
- C/C++:使VScode获得对C/C++语言的支持,包括智能提示,调试等。
- Chinese (Simplified) Language Pack for Visual Studio Code:VScode中文语言包。
- C++ Intellisense:提供C++智能感知功能。
- Cortex-Debug:对ARM Cortex-M内核的单片机提供调试支持。
- Cortex-Debug: Device Support Pack - STM32F1(F4,L1):这三个芯片包分别对Cortex-Debug提供三款芯片的设备支持。
- GBKtoUTF8:因为平时的Keil的STM32工程文件大部分都是
GB2312
编码的,这个扩展可以自动将GB2312
转换为UTF-8
编码。
VScode也有丰富的主题可以选用,这里推荐两个主题和一个图标包。
- Atom One Dark Theme
- Atom One Light Theme
- One Dark Pro
- Material Icon Theme
STM32CubeMX
Cube基于Java运行环境,安装前要先安装JRE。安装好Cube后记得安装芯片包。
在Cube主界面按图中顺序点击选择需要的芯片包安装即可。
OpenOCD,GNU Arm Embedded Toolchain, J-Link Software and Documentation Pack
Open