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

时间:2017-03-08 23:14:38

标签: esp8266 micropython

默认情况下,在micropython图像中有boot.py可用。

我在python模块main.py中测试了一个代码。我想做以下

  1. 我想编译一个图像,因此可以更容易地将其闪存到10个以上的设备,而且我不必启动webrepl。

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

  3. 我尝试了以下内容:显然它们已被激活: 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中?

2 个答案:

答案 0 :(得分:0)

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

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

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

启动它

2)停止启动消息:"执行初始检查"在onisetup.py上。有些是在脚本文件夹中的port_diag.py上。

答案 1 :(得分:0)

您需要更改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目录中。构建代码后,所有必需的文件都将包含在二进制文件中。