PlatformIO 是什么
PlatformIO is an open source ecosystem for IoT development.
Cross-platform IDE and unified debugger.
Remote unit testing and firmware updates.
PlatformIO 是一个用于物联网开发的开源生态系统。它提供跨平台的开发环境和统一的调试器,还支持远程单元测试和固件更新…
PlatformIO 简介
PlatformIO 是独立于平台运行的,实际上它只依赖于 python,然而 python 在 macOS、linux 和 windows 都能完美适配. 也就是说 PlatformIO 的工程从一个电脑很容易迁移到另一个电脑,只需要拷贝再使用 PlatformIO 就能完美打开,不管团队中的成员使用什么操作系统 PlatformIO 可以让工程共享变得异常简单. 除此之外, PlatformIO 不仅可以在笔记本和台式机上运行,同样可以运行在没有显示桌面的服务器。PlatformIO 的核心(PlatformIO Core) 就是一个终端程序, 它能配合您喜欢的多款云 IDE、桌面 IDE 或者 通用代码编辑器构建 PlatformIO 的 IDE,比如 Atom, CLion, Eclipse, Emacs, NetBeans, Qt Creator, Sublime Text, VIM, Visual Studio, VSCode, etc.
目前官方推荐的 IDE 使用方案就是 VSCode + PlatformIO IDE 插件,界面如右图:
- PIO 统一的调试器,可以零配置的对支持硬件调试的的嵌入式开发板进行调试工作,调试器支持很多的架构和开发平台
- 跨平台的代码构建系统对系统软件没有额外的依赖: 600+ 嵌入式开发板, 30+ 开发平台, 15+ 框架
- C/C++ 智能代码补全,语法检查,快速重构以及代码跳转满足快速专业的开发需求
- VSCode 提供多工程和文件管理的支持和统一而流畅的使用体验,并且支持多种色彩主题,总有您喜欢和适合您的
- 内建的终端支持 PlatformIO Core 命令行工具,并且支持强大的串口调试器
尽管 PlatformIO 可以运行在不同的操作系统中,但从开发的角度看更重要的是它支持多少开发板和单片机。概括来说: PlatformIO 支持大约 600+ 个开发板和市面上流行的支持跨平台的 30 个开发平台。
同时,PlatformIO 还提供大量的开发库,目前超过了 6000 个,为了方便新手入门开发,他们也同样提供代码例程。
PlatformIO 解决的问题
- 嵌入式开发的世界让很多人望而却步的主要原因是针对某一个单片机或开发板开发环境复杂的配置过程:交叉编译链工具下载、安装和配置,另外还得使用厂商独有的 IDE (有时还不是免费的) ,还有有时还不得不使用 IDE 只支持的 Windows
- 多个硬件平台 (单片机, 开发板) 需要不同交叉编译链工具和开发环境, 所有相应的开发人员需要花费大量精力在配置新的开发环境上
- 为了学习如何使用常规的传感器或执行器件等外设,需要花时间查找合适的库和例程
- 每个团队成员可能会使用不用的操作系统,这就为他们之间共享成果形成阻碍(当然国内现状是公司逼着员工使用统一的操作系统,哈哈🤣)
PlatformIO 如何工作
这里不深入说 PlatformIO 的实现细节, 使用 PlatformIO 时工程的工作流程如下:
- 用户在 “platformio.ini” (工程配置文件) 中指定开发平台(开发板)
- 根据配置文件中的开发板(一个工程可以配置多个开发板),PlatformIO 会自动下载并安装对应的交叉编译链工具以及调试工具.
- 用户编写代码,PlatformIO 来保证所有指定开发板的编译、调试和上传工作
PlatformIO 需要用户进行的选择
- 决定使用什么系统运行 PlatformIO 来进行单片机开发,需要进行相应系统的安装工作
- 选择使用什么编辑器进行代码编写,可以是极简通用的代码编辑器,也可以您喜欢的桌面 IDE
- 专注于代码开发,显著简化使用开发平台和单片机的过程
PlatformIO 的相关报道
通常情况下不同的单片机需要不同的开发工具,比如 Arduino 使用的是 Arduino IDE,有些高级用户为了更好的进行代码工程管理,也会配置基于 Eclipse 的图形界面的开发环境。有时同步支持不同的单片机比较困难,您可能觉得如果有一个统一的开发工具那该多好呀! PlatformIO 就是这么一个开源的进行单片机嵌入式开发的生态工具。
PlatformIO 是一个跨平台的代码构建工具和库管理工具,并且支持像 Arduino 和 MBED 这样的平台。他们关心可以跨 macOS、windows 和 linux 三个平台工作的工具链、调试器和开发平台,它支持超过 200 个的开发板和超过 15 种的开发平台以及 10 中开发框架,所以绝大多数流行的开发板都是包含其中的。他们在收集整理开发库上倾注了大量精力,以至于您的工程可以使用上百种开发库。另外,也有很多代码例程提供方便您入门单片机开发。PlatformIO 最初以命令行的形态进行开发,现如今它可以完美配合其它的 IDE 进行使用,比如 Eclipse、Visual Studio,最近他们最新发布了基于 Atom 的 PlatformIO 开发环境。
PlatformIO 的荣誉
PlatformIO 曾提名 2015/16 IOT 年度最佳开发软件和工具奖。