使用 esp8266 的 micropython 二进制映像预编译 main.py

Precompile main.py with the micropython binary image for esp8266

micropython 图像中默认有 boot.py 可用。

我测试了 python 模块 main.py 中的代码。我想做以下事情

  1. 我想编译一个镜像,这样可以更容易地将它刷写到 10 个以上的设备上,而且我不必启动 webrepl。

  2. 有没有办法停止显示微python版本号等的启动消息?

我尝试了以下方法:显然它们已经被激活了: https://forum.micropython.org/viewtopic.php?t=2334

我使用以下方法成功编译了图像: https://cdn-learn.adafruit.com/downloads/pdf/building-and-running-micropython-on-the-esp8266.pdf

问题:

如何使用 main.py 创建图像,此文件应放在此文件夹中的什么位置 /home/vagrant/micropython/esp8266?

1) boot.py 由以下脚本生成:

/home/vagrant/micropython/esp8266/script/inisetup.py

函数:setup() 在每次启动时将 boot.py 写入文件系统。 这将是添加 main.py 的地方,也将其写入文件中。 或将其添加到脚本中并以 boot.py

启动

2) 停止引导消息:"performing initial checks" 开启 inisetup.py。有些在脚本文件夹中 port_diag.py。

您需要更改 micropython\esp8266\modules\inisetup.py。 在这个文件中,一段代码在 micropython 启动时写入 boot.py 文件。喜欢下面

    with open("boot.py", "w") as f:
        f.write("""\
# This file is executed on every boot (including wake-boot from deepsleep)    
#import esp
#esp.osdebug(None)
import gc
#import webrepl
#webrepl.start()
gc.collect()
import mymain
""")

注意最后一行 import mymain。将 mymain.py 文件复制到 micropython\esp8266\modules 目录。

mymain.py 文件应该 而不是 if __name__ == '__main__' 块,以便在导入时执行。 mymain 正在导入的所有其他文件也应该在 modules 目录中。构建代码后,所有必需的文件都将包含在二进制文件中。