romfs — ROMFS-Hilfsprogramme

Das Modul romfs stellt Hilfsprogramme zum Inspizieren des schreibgeschützten Dateisystems (ROMFS) bereit, das die OpenMV-Firmware unter /rom einhängt. Siehe Arbeiten mit ROMFS für eine durchgängige Beschreibung des ROMFS-Dateisystems selbst, wie Images erstellt und bereitgestellt werden, sowie der zugrunde liegenden APIs vfs.VfsRom / vfs.rom_ioctl().

Dieses Modul konzentriert sich auf das physische Layout eines bereits eingehängten ROMFS und nicht auf seine Dateisystemsemantik. Da .mpy-Bytecode-Dateien in einem ROMFS direkt aus dem Flash ausgeführt werden (speicherabgebildet, ohne Kopiervorgang), benötigt MicroPython, dass die Nutzlast jeder Datei an einer ausreichenden Grenze ausgerichtet ist – typischerweise 4 Bytes für einfache .mpy-Dateien und bis zu 16 Bytes, wenn eine Datei nativen Code-Blobs oder ausgerichtete Datenreferenzen enthält. ls_romfs() meldet die Adresse, Größe und die größte Zweierpotenz-Ausrichtung jeder Datei, sodass ein bereitgestelltes Image vom REPL aus stichprobenartig überprüft werden kann, bevor man sich auf Zero-Copy-Importe verlässt.

Funktionen

romfs.ls_romfs() None

Listet jede im unter /rom eingehängten ROMFS vorhandene Datei auf und gibt zu jedem Eintrag Diagnoseinformationen auf stdout aus.

Für jede Datei werden die folgenden Informationen ausgegeben:

  • addr: Die Speicheradresse der Daten der Datei, maskiert auf 28 Bit und als 8-stelliger Hexadezimalwert formatiert.

  • size: Die Größe der Datei in Bytes, ermittelt aus der Länge eines memoryview der geöffneten Datei.

  • alignment: Die größte Zweierpotenz-Ausrichtung (geprüft gegen 128, 64, 32, 16, 8, 4), die die Adresse der Datei erfüllt. Wenn die Adresse an keiner dieser Grenzen ausgerichtet ist, wird stattdessen NOT aligned ausgegeben.

  • name: Der Dateiname innerhalb von /rom.

Diese Funktion nimmt keine Argumente entgegen und gibt None zurück.