MicroPython 在 esp-idf (esp32) 上编译固件
esp32 编译 micropython 的固件相关的资料应该很多吧,我也会出一篇,但会额外讲一些 linux 的东西的。
资料将按照以下顺序进行说明。
什么是 esp-idf ?
配置 esp32 工具链
准备 micropython 仓库
建立 micropython for esp32 固件
注意,以下操作截图全部在 linux 下完成(but 我在虚拟机,方便截图),顺便一提,我写的资料,并不会考虑开发新手,如果有问题可以评论解答,但我是不会在写的内容中照顾他人的,随心所欲,但是有问题欢迎来提。
什么是 esp-idf ?
esp-idf 就是 esp32 的官方标准 SDK 支持,进入仓库看下 readme 即可,但在这里并非必要了解的知识。
往下看前请先准备 esp-idf 的官方文档,进入 快速开始 一章,按步骤开始部署开发环境。
配置 esp32 交叉编译工具链
因为在电脑上写的程序将要编译运行在 esp32 上,所以这必然就需要交叉编译工具链,所以写代码先需要先配置好编译环境。
值得一提的是官方的配置文档(/get-started/linux-setup)写的流程很好,所以照着做就行,但要注意的是,它们都是在 i686(i386) 或 ARM64 上的机器上跑的二进制(bin)文件,如果需要在类似树莓派的 arm linux 上编译,则需要重新编译工具链了。
请准备一台 linux 按上述官方配置文档配置完成后,在命令行下输入 xtensa-esp32-elf 然后按 tab 键补全系统命令,确认配置完成,如下图。
注意工具链相关的文件需要绑定到系统全局下,作为命令(符号)给 makefile 接入。
所以记得在 linux 环境变量里添加路径,例如配置文档里讲的,至此编译环境已经建立,注意,不同版本的 idf 可能会变更 工具链 ,所以编译出错的时候不妨检查检查 esp-idf 和 工具链 是否匹配。
export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH";
至于如果你想编译工具链,可以继续看官方文档 从零开始设置 Linux 环境下的工具链 ,可喜可贺的是如今都有中文了鸭,上述我们设置的是编译后的二进制版本,如