Es gibt ja schon den Beitrag MicroPython module freezing for Pycom devices, da geht es aber nur um die Pycom Geräte und auch ‘nur’ um die Kompilierung zu Bytecode, ohne die Module in die Firmware einzufrieren. Da ist bei den ESPs der Geschwindigkeitsvorteil leider nur gering (bei mir von 22s -> 16s bis der terkin zuckt).
Vielen Dank! Das mit den Manifests hatte ich aufgeschnappt, mich aber noch nicht näher damit beschäftigt, weil das für MicroPython 1.11 noch nicht implementiert ist – richtig?
Ich hatte das damals für Genuine MicroPython noch mit dieser Variante erledigt:
Ich hab mal eine Firmware mit /distpackages gebacken. Das klappte auch, inkl. Aufspielen. Allerdings kam dann beim Versuch sie anzustarten folgendes:
E (624) esp_image: Image length 1575648 doesn't fit in partition length 1572864
E (624) boot: Factory app partition is not bootable
E (627) boot: No bootable app partitions in the partition table
P.S.: Ich habe MicroPython hier mit ESP-IDF v4.x verwendet. In Summe wird dann scheinbar alles leider (knapp) zu groß.
Noch ein Test. Erstmal vorweg: ich ahne, warum die firmware bei @clemens nicht läuft [1]. In mp_manifest.py fehlt eine include Zeile. Dadurch fehlt _boot.py und es gibt kein Flashlaufwerk. Es sollte so aussehen:
# FROZEN_MANIFEST file for building firmware images for Genuine MicroPython.
# https://github.com/hiveeyes/terkin-datalogger/blob/master/doc/release.rst#build-firmware-images
include('$(PORT_DIR)/boards/manifest.py')
freeze('dist-packages')
#freeze('lib')
Da mir die Firmware zu groß wurde, habe ich /lib rausgenommen. Außerdem habe ich /lib in /src verschoben, damit ich das mit dem VSC syncen kann.
Hat soweit geklappt. Firmware ist drauf und Terkin startet. Nur leider nicht schneller, sondern noch 3s langsamer.
Da kam nach 30 Sekunden auch eine Guru Meditation. Das mag an der fehlenden Hardware liegen oder der idf4. Probiere ich morgen nochmal aus.
Das ist wirklich seltsam. Bei mir auf einem FiPy mit 160 MHz im dual core mode startet er selbst mit “nur Bytecode-kompilierten (lib-mpy)” Modulen in knapp 7 Sekunden.
Pyom MicrPython 1.20.2.rc3-0.8.1-vanilla-squirrel-ppp [v1.20.2.rc3-4-g4962aea3b-dirty] on 2020-02-22; FiPy with ESP32
Type "help()" for more information.
>>>
>>>
PYB: soft reboot
[boot.py] INFO: Python module search path is: ['', '/flash', '/flash/lib']
[boot.py] INFO: Universal MicroPython Application Loader (umal)
[umal] INFO: Python module search path is: ['/flash/lib', '/flash/dist-packages', '/flash/lib-mpy', '']
[main.py] INFO: Loading settings
[main.py] INFO: Starting logging
[main.py] INFO: Loading Terkin Datalogger
[main.py] INFO: Loading modules
6.4104 [terkin.datalogger ] INFO : Starting Terkin datalogger