赞
踩
其实这套工具链(除开STM32CubeMX)不仅STM32能用,还能给8051,ESP32,Arduino等芯片使用,只要你所使用的烧录工具以及芯片本身被PlatformIO支持。
在本文介绍的这套工具链中,Visual Studio Code为文本编辑器,gcc-arm-none-eabi为编译器,STM32CubeMX用于创建基础代码,而PlatformIO则将上述内容组合到一起,形成了一个强大的IDE。
抛弃这些老旧的IDE的理由很多,对于初学者而言,这些IDE通常没有如代码补全之类的现代IDE的基本功能,UI也异常老土;对于大多团队,MDK等老旧IDE通常仅有Windows版本,就大多数情况而言,统一开发平台往往比较困难,甚至有部分团队因为各种各样的原因不得不在Linux平台上进行开发;而对于嵌入式领域从业者而言,该类IDE通常为专有软件,使用其进行嵌入式开发,必须遵守相关的协议,具体内容包括但不限于软件付费,编译器限制代码行数等。
其次,STM32CubeMX以及HAL库的出现向老旧的生产方式发起了挑战,使用STM32CubeMX以及HAL库,我们可以很轻松地生成STM32 MCU的初始化代码以及工程,而不需要深入了解ARM架构中海量的寄存器以及芯片内部各种晦涩难懂的电路。
尽管这种不需深入理解硬件便直接“浮沙筑高台”的开发方式以及HAL库本身的代码质量一直饱受诟病,但不得不承认,此乃大势所趋。
但是STM32CubeMX只是一个项目生成工具,HAL也仅仅只是一个代码库,我们还需要一个代码编辑器。
Visual Studio Code是微软牵头的一个半开源软件(其开源项目名为vscodium,Visual Studio Code是微软构建的发行版,两者关系类似于AOSP和Android),该软件基于Electron框架构建,定位为代码编辑器,但得益于其强大的扩展能力以及社区生态(当然还有微软的钱),打满插件的Visual Studio Code可以摇身一变,成为21世纪最好用的IDE。
但其实,对于我们的需求,只需要打一个PlatformIO IDE插件就足够了。
PlatformIO是一个开源项目,其的本体是一个Python脚本,它是一个集成工具,提供了对各种嵌入式平台的一键部署和调试,以及代码补全功能。PlatformIO的开发者为该项目编写了相应的Visual Studio Code插件,以使该套系统能集成在Visual Studio Code上,形成一个强大的嵌入式IDE。
STM32CubeMX是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。
这是STM32的东家ST公司开发并推出的一款用于配置STM32工程的图形化软件,基于Java构建,提供了对于初始化代码,GPIO,分频,调试,甚至是实时操作系统的一键部署以及图形化配置功能,极大简化了基于ARM架构的STM32芯片原本复杂的配置过程。
在我们的工具链中,STM32CubeMX主要负责生成基础的,让硬件至少能运行的代码。
VSCode是微软推出的一款半开源的代码编辑器,基于Javascript的Electron框架构建,拥有庞大的社区生态以及无与伦比的可扩展性,通过第三方插件,Visual Studio Code能被轻易配置为多种语言的类IDE环境,甚至有部分新兴编程语言直接将VSCode指定为官方开发工具。
在我们的工具链中,VSCode主要作为代码编辑器,以及整套系统的框架。
OpenOCD(Open On-Chip Debugger),即开源片上调试器,是一个命令行工具,一个诞生于2005年的嵌入式设备调试,编程工具。OpenOCD需要一个仿真器(一个通常使用USB接口的硬件设备,是能够提供调试目标的电信号的小型硬件单元)才能运作,这个仿真器可以是JLink,也可以是STLink,只要开发板兼容相应的协议。
在我们的工具链中,OpenOCD负责与仿真器合作建立其从主机到开发板的连接,在此基础上进行程序烧录和调试。
gcc-arm-none-eabi是GNU项目的GCC项目的一部分。(此处GCC指GNU‘s Compiler Collection,GNU项目的编译器集),是一个交叉编译器,用于在Windows,Linux等平台上为ARM架构的嵌入式环境编译软件。
在我们的工具链中,gcc-arm-none-eabi作为编译器。
实际上,你不需要自行下载以及配置它,该过程会由PlatformIO自动完成。
PlatformIO IDE插件是Platform项目的组成部分之一,是VSCode的一款插件,提供了嵌入式工程的一键式环境部署以及编译,调试功能。PlaformIO就像是一瓶胶水,将原本零零散散的各个模块粘连形成了一个整体。
在我们的工具链中,PlatformIO插件为VSCode补充了功能,使其变成一个强大的跨平台嵌入式IDE。
STLink是由ST公司推出的一款在线调试编程器,支持JTAG和SWD协议,以及用于STM8系列MCU的SWIM协议。几乎是国内嵌入式工程师人手一个的必备品。
实际上,你也可以使用其他的仿真器,比如JLink,只要开发板和OpenOCD都兼容其协议。
在我们的工具链中,仿真器负责辅助OpenOCD运作,建立从主机到开发板的通信。
STM32CubeMX
ST公司的官网提供了该软件的下载页面:STM32CubeMX - STM32Cube初始化代码生成器 - STMicroelectronics
不过你需要注册一个账号才能下载,建议使用临时邮箱,因为ST会朝你的邮箱里不断地赛广告。
Visual Studio Code
微软的官网提供了该软件的下载页面:Download Visual Studio Code - Mac, Linux, Windows
Python
由于PlatformIO IDE插件基于Python构建,你需要安装一个Python以运行PlatformIO。
Python官网的下载页:Download Python | Python.org
或者,如果你的C盘足够大,可以在微软商店里搜索并安装Python。
OpenOCD
OpenOCD在Github上有一个镜像仓库,这是它的Release页:Releases · openocd-org/openocd (github.com)
此处提供了基于mingw32构建的Windows版本(32位),解压后需配置环境变量(path项)。
直接在VSCode的插件商店中搜索PlatformIO IDE即可,图标为一个蚂蚁头。
你都会用Linux了,这些还要我教你?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。