PlatformIO 入门学习笔记(一):背景了解
PlatformIO 入门学习笔记(一):背景了解
外文参考链接:link
文章目录
- PlatformIO 入门学习笔记(一):背景了解
- 荣誉奖项
- 产品理念
- 现有技术
- 嵌入式开发常见问题
- PlatformIO 工作流程
- PlatformIO IDE
- PlatformIO Core (CLI)
- PlatformIO Home
- PlatformIO Account
PlatformIO 是一款跨平台、跨架构、支持多种框架的专业工具,适用于嵌入式系统工程师以及为嵌入式产品编写应用程序的软件开发人员。在学习ESP32-S3的ESP-IDF中,感觉配置流程过于复杂,使用起来比较复杂。且目前学习的目的是为了解读NanoStat开源代码,该代码是基于PlatformIO开发的,因此后续有关ESP32-S3的代码学习应该都会基于PlatformIO平台。
荣誉奖项
PlatformIO 在 2015/16 年度物联网奖评选中荣获年度最佳软件及工具奖提名。
微软 Visual Studio Code 编辑器内置的 PlatformIO IDE 扩展是微软 Marketplace 上最受好评/评价的扩展之一,在整个微软市场中拥有超过 2500 条五星评价。此外,该扩展还被全球超过 300 万开发者安装使用。
产品理念
PlatformIO 在嵌入式市场的独特理念为开发者提供了跨平台运行的现代化集成开发环境(云端及桌面版集成开发环境),支持多种不同的软件开发工具包(SDK)或框架,并包含高级调试(调试)、单元测试(单元测试)、自动化代码分析(静态代码分析)以及远程管理(远程开发)等功能。其架构旨在最大程度地满足开发者的灵活性和选择性,开发者可以使用图形界面编辑或命令行编辑器(PlatformIO Core(CLI)),或者两者兼用。
PlatformIO 是一款必不可少的工具,适用于那些在多个特定平台上开发解决方案的专业嵌入式系统工程师。此外,凭借其去中心化的架构,PlatformIO 为新老开发者提供了一条快速集成路径,以开发出符合商业标准的产品,并且能够缩短整体上市时间。
而且它能在您所喜爱的任何一款现代操作系统(macOS、MS Windows、Linux、FreeBSD)上运行。
现有技术
PlatformIO 将最新的可扩展且灵活的软件技术应用于嵌入式市场——这是一个传统上由复杂软件工具来服务的领域,而这些工具往往是经验丰富的硬件工程师经过多年摸索(有时甚至是痛苦摸索)才掌握的。不过,有了 PlatformIO,用户既可以是业余爱好者,也可以是专业人士。他们既可以导入经典的 Arduino “Blink” 脚本,也可以为商业产品开发复杂的底层嵌入式 C 程序。任何受支持的框架的示例代码都可以在几分钟内编译并上传到目标平台。
构建系统结构会自动标记软件依赖项,并通过一个模块化的层次结构来应用这些依赖项,从而消除了通常的复杂性和痛苦。开发人员不再需要手动查找并组装针对特定目标的应用程序所需的工具链、编译器和库依赖项环境。使用 PlatformIO 时,只需点击编译按钮,所有必要的依赖项就会自动引入。这就好比你是家具设计师,而你的 CAD 程序有一个“构建”按钮,它会让一个机器人取走所有必要的部件和紧固件,并正确地将它们组装起来。
PlatformIO Core(命令行界面)是一款独具特色、完全自主开发的构建系统,它消除了软件集成、打包以及库依赖关系等通常会给开发者带来的困扰,这些困扰往往会在开发者超出特定 SDK 或示例嵌入式应用程序的范围时出现。它可与多种代码开发环境配合使用,并能轻松与众多云平台和网络服务源进行集成。用户在快速入门方面没有任何障碍:无需支付许可费用,无需签署法律合同。用户能够保持构建环境的完全灵活性,因为这些工具是开源的,并且采用宽松许可协议(无需获得修改许可即可修改它们,也无需分享修改后的代码。)
嵌入式开发常见问题
- 阻碍人们投身嵌入式领域的主要问题在于为特定的微控制器/开发板设置开发软件的过程十分复杂:需要工具链、供应商专有的集成开发环境(有时该环境并非免费的),而且更重要的是,还需要一台支持该软件运行的操作系统计算机。
- 多种硬件平台(微控制器、开发板)需要不同的工具链、集成开发环境(IDE)等等,而且分别需要花费时间去熟悉新的开发环境。
- 寻找有关如何使用常见传感器、执行器等的恰当库和代码示例。
- 在团队成员之间共享嵌入式项目,无论他们倾向于使用何种操作系统来进行工作。
PlatformIO 工作流程
无需对 PlatformIO 的实现细节进行深入探讨,使用 PlatformIO 开发的项目的工作流程如下:
- 用户选择他们感兴趣的“platformio.ini”(项目配置文件)所在的板卡(或板卡组)
- 根据这份板子列表,PlatformIO 会自动下载所需的工具链并进行安装。
- 用户编写代码,而 PlatformIO 则确保其被编译、准备妥当并上传至所有感兴趣的开发板。
PlatformIO IDE
PlatformIO IDE 是面向物联网的下一代集成开发环境。
- 跨平台开发系统,无需依赖于操作系统软件的外部资源:
1000 多块板子
40 多个开发平台
20 多个框架 - 调试
- 远程开发
- 单元测试
- C/C++ 智能代码补全
- C/C++ 智能代码检查工具,助力快速实现专业开发目标
- 数百个流行库的库管理器
- 多项目工作流程(包含多个窗格)
- 主题支持采用深色和浅色两种颜色进行搭配
- 串口监视器
- 内置终端,搭载 PlatformIO Core(命令行界面)及 CLI 工具(pio、platformio)
- 内置的 PlatformIO Home
注意:根据经验,适用于 VSCode 的 PlatformIO IDE 具有更出色的系统性能,而且用户使用它来入门会更加容易。
Visual Studio Code 是一款轻量级但功能强大的源代码编辑器,可在桌面上运行,并且适用于 Windows、macOS 和 Linux 系统。它内置支持 JavaScript、TypeScript 和 Node.js,并且拥有丰富的扩展生态系统,适用于其他语言(如 C++、C#、Python、PHP、Go)和运行时环境(如 .NET 和 Unity)。
PlatformIO Core (CLI)
PlatformIO 核心(命令行工具)是整个 PlatformIO 生态系统的核心部分,它由以下内容组成:
- 多平台构建系统
- 统一包管理器
- 库管理
- 库依赖查找器(LDF)
- 串口监视器
- 集成组件(云与桌面集成开发环境以及持续集成)
PlatformIO Core 是用 Python 编写的,可在 Windows、macOS、Linux、FreeBSD 以及基于 ARM 架构的信用卡大小的计算机(如 Raspberry Pi、BeagleBone、CubieBoard、三星 ARTIK 等)上运行。
PlatformIO Core 提供了功能丰富且文档详尽的命令行接口(CLI)。基于 PlatformIO 的其他软件和集成开发环境(IDE)均基于 PlatformIO Core CLI,例如 PlatformIO IDE。换句话说,它们是用自身的图形用户界面(GUI)对 PlatformIO 核心进行了封装。
请注意,如果您打算使用 PlatformIO IDE,无需安装 PlatformIO Core。PlatformIO Core 已内置于 PlatformIO IDE 中,您可以在 PlatformIO IDE 终端中使用它。如果您需要在 PlatformIO IDE 之外使用 PlatformIO Core 命令,请安装 Shell 命令。
PlatformIO Home
PlatformIO Home 是一款功能强大、现代且交互性强的用户界面(UI),专为 PlatformIO 协作平台设计。它由 PlatformIO Labs 的现代 UI 工具包提供支持,并包含以下关键工具:
- PlatformIO 账户
- 项目管理
- 库管理
- 开发平台、框架和开发板管理
- 设备管理(串行、逻辑以及多播 DNS 服务)
- 静态代码分析
- 固件文件浏览器
- 固件内存检查
- 固件段与符号查看器
您无需单独安装 PlatformIO Home,因为它已内置在 PlatformIO IDE 和 PlatformIO Core(命令行界面)中。
PlatformIO Account
以下情况需要使用 PlatformIO 账户:
- 社区论坛
- 远程开发
- 管理组织以及组织的所有者
- 管理团队及团队成员关系
- 在注册表中管理软件包
- 管理资源(包)访问权限
PlatformIO IDE 在 PlatformIO Home中内置了用户界面,用于管理 PlatformIO 账户。您可以创建新账户、重置密码、更新个人资料或获取身份验证令牌。此用户界面必须用于通过 OAuth 登录。