Arbeitszeiterfassung mit RP2040: So spart Micropython mit Frozen Bytecode viel Speicher

Python und Mikrocontroller – vor einem Jahr hielt ich das noch für eine ziemlich blöde Idee. Micropython hat mich eines Besseren belehrt, mittlerweile nutze ich es gern für aufwändigere Projekte, etwa zur Arbeitszeiterfassung mit RFID-Tags (g+) ( den Code gibt es demnächst hier(öffnet im neuen Fenster) ). Der Komfort hat aber einen Nachteil: Während kompilierte Binärprogramme aus dem Flash-Speicher des Raspberry Pi Pico ausgeführt werden, belegt der erzeugte Python-Bytecode den knappen Arbeitsspeicher. Wertvoller Platz für Daten geht verloren. Verhindern lässt sich das mit Frozen Bytecode – was das bedeutet, wie es funktioniert und wie sich sonst noch der knappe RAM sparen lässt, zeigen wir in diesem Artikel.
Um zu verstehen, was mit dem eingefrorenen Bytecode gemeint ist, sehen wir uns zunächst an, wie Micropython von der Textdatei zum ausführbaren Code kommt. Die Textdatei mit dem Quellcode können wir entweder über die Python-Konsole ausführen oder in den Flash-Speicher des Mikrocontrollers kopieren. Hier legt Micropython ein kleines Dateisystem an .