源码编译micropython到esp32,你可以试试
授人以渔
你有没有想过,一年后你再看这篇文章,是不是已经过时? 我是技术人员,给你演示过程,同时会告诉你方法,方法不会过时。 你可以回复消息,我会持续修正过时错误的部分
源码编译,验证质量
micropython是多年的一个框架,认可度极高。我想知道他对官方支持的芯片,是不是友好。 行业喜欢把代码交叉编译叫移植,官方支持的芯片,一般不叫移植。本来就支持嘛,那你就应该支持好, 别让我们再改bug嘛。
小知识
git config --global http.proxy http://127.0.0.1:xxxxx
git config --global https.proxy http://127.0.0.1:xxxxxx
git config --global --unset http.proxy
git config --global --unset https.proxy
上面这两行是配置github的网络的, 很多人github很慢, 需要做这个修改。看不懂问谷歌。 因为很多包在网上,很慢,容易断。不要让这些非技术原因阻碍你。
还有一个方法是云平台买一台linux服务器,按量付费买1天,地点选海外。在上面下载编译。速度很快。
不要搜教程
我还是手贱搜了一下, 有知乎,csdn,和b站。我看了一下文字版本的。 都是介绍他是怎么编译的, 结果是全错。都过时了。
如何硬刚源代码
- 搜 micropython 找到官网 https://micropython.org/
- 点击下载或者其他地方或者github直接搜,找到git地址: MicroPython is developed using git for source code management, and the master repository can be found on GitHub at github.com/micropython/micropython.
- 看首页说明,里面有编译方法。使用make作为编译脚本。挺好。页面写了交叉编译的方法和支持板子的方法 这里有个小坑,对应板卡编译的时候忘记写make命令了
- 针对不同的板卡移植还有一个更详细的说明。 在Supported platforms & architectures分类下找到,自己的板子 esp32 – Espressif ESP32 SoC (including ESP32S2, ESP32S3, ESP32C3). 点击esp32,进入板子页面 https://github.com/micropython/micropython/blob/master/ports/esp32/README.md
大方向如下
1, 安装特定版本的idf,如果已经下载了。就checkout指定版本。(特别好的方法。保证所有人环境一致)
$ git clone -b v5.0.4 --recursive https://github.com/espressif/esp-idf.git
- 按照idf要求,执行安装脚本,导出脚本
$ cd esp-idf
$ ./install.sh # (or install.bat on Windows)
$ source export.sh # (or export.bat on Windows)
- 编译交叉编译相关
$ make -C mpy-cross
- 编译板子相关
$ cd ports/esp32
$ make submodules
$ make
- 添加用户组是为了可以访问usb串口。这个我macos不需要,看系统要求。我跳过了。
- 文档说了串口路径。大概率每个人都不一样。 一定要注意是usb串口驱动,如果是猫驱动,需要重装,我以前文章提过这个坑。 打开Makefile直接改
Device serial settings.
PORT ?= /dev/cu.wchusbserial54E20303731(我已改,你的不一样。)
- 重新编译下载
make erase # 串口正确就能正常擦除
make BOARD=ESP32_GENERIC_S3 # 一定要选对板子。esp32s3是我的板子
make BOARD=ESP32_GENERIC_S3 deploy # 上一步指定不是默认板子,那这一步也要指定。
8.ok, 重启板卡,看串口能显示提示符号就成功了。
验证
>>> import sys
>>> sys.version
'3.4.0; MicroPython v1.23.0-preview.176.g90e517862.dirty on 2024-03-05'
help() # 执行这个函数,里面有wifi的例程可以看一下能不能搜到Wi-Fi路由器。