开发环境#
开发环境需要确定 IDE 的操作系统,采用的编程语言,集成开发环境 IDE,以及 SDK。这主要取决于所采用的:
编程语言
MCU 可使用的 IDE 环境
官方的 SDK
IDE 对本实验箱的兼容性
IDE 的跨平台特性以及易用性
1 OS#
本手册实验项目基于 Ubuntu 24.04 操作系统进行编写,鉴于本项目所采用的 IDE 具备跨平台特性,亦可支持 Windows 及 macOS 操作系统。各平台间的差异仅体现在驱动程序版本与 Python 运行环境的配置上。
在实际应用中,跨平台项目、集成开发环境(IDE)及编程语言(如 Python)在不同操作系统间常存在兼容性差异。鉴于嵌入式开发、开源项目以及 GitHub 上的主流代码多基于 Linux 平台进行开发与测试,本文档及实验系统均以 Linux 环境为基准。虽然允许学生在个人电脑上使用 Windows 系统,但不予提倡,建议通过安装虚拟机的方式构建 Linux 开发环境。
2 开发语言#
本系统的两块 MCU 均支持开发语言与开发框架。
Cmicropythonarduinoplatformio
MicroPython 具有简单易学的特点,同时也是跨平台语言,在构建项目原型以及验证设计方法时有着方便快捷的特点,但由于以下两个原因,本手册不以这两种语言讲述,建议有兴趣的同学自行学习使用。
运行速度和功耗不适宜生产环境。
不能使用 OS,无法完全隔离硬件。
本手册在选着开发语言中兼顾如下两个因素:
借助 Arduino 易于上手且开源生态丰富的特性,学生能够迅速掌握相关技能并高效完成原型开发。
使用官方的 esp-idf sdk,尽量符合生产环境要求。
因此,最后选择两种方式:
先 arduino后 esp-idf
3 IDE#
本手册的实验箱涉及到两颗 MCU,因此 IDE 的选择应当兼顾到两块 MCU 的兼容性。IDE 有官方提供的 IDE,以及第三方 IDE。
3.1 官方 IDE#
对于 ESP32:
Eclipse + esp-idf pluginVsCode + esp-idf plugin
对于 STM32L475
STM32CubeIDEVsCode + STM32 Plugin
官方 IDE 的共同特点是支持比较丰富。但是其缺点是都基于 eclipse,Eclipse 的最大不足有两点:
由于需要 Java 虚拟机,运行速度慢,对机器要求高
代码补全功能差,编程不友好。
因此,本手册不采用官方提供的 Eclipse + esp-idf plugin。
3.2 第三方 IDE#
对于 ESP32:
vscode + platformio
对于 STM32L475:
vscode + platformiokeilIAR
本项目希望两块 MCU 能够统一 IDE,因此,由于 keil,iar 均只用于 Windows,不予考虑。可见,vscode + platformio 是最统一的,且是开源的。
综上所述,本手册采用以下两种开发方式作为IDe
vscode + platformio(同时可使用 arduino 和 官方的 esp-idf )
VsCode + esp-idf plugin
4 SDK 以及 Tools#
ESP-IDF#
STM32L4CUBE#
待更新