7.5. ROMFS¶
A ROMFS egy csak olvasható fájlrendszer, amelyet fordítási időben építenek be a kamerába, és a /rom/ helyre csatolnak. A fájlblokkok a flash memóriában találhatók, és a címtérbe vannak leképezve, így egy itt lévő fájl megnyitása közvetlenül a flash memóriából teszi elérhetővé annak bájtjait, RAM-másolat nélkül. A tipikus tartalom modellek, címkefájlok és Haar kaszkádok.
7.5.1. Miért itt találhatók a modellek¶
Két okból. Az első a már említett RAM-kompromisszum: egy /rom/ helyen lévő modell helyben olvasódik be a flash memóriából, és a tensor arena-ján túl nem kerül RAM-ba, míg egy /sdcard/ helyen lévő modell betöltéskor a RAM-ba másolódik, és a fájl méretét az arena tetejére teszi. A kisebb kamerákon ez a különbség gyakran a beférés és a nem beférés közötti különbséget jelenti.
A második az NPU. Az N6 NPU-ja és az AE3-on lévő Ethos-U a súlyaikat egy memóriacímezhető régióban, megfelelő igazítással várják, és a modellt ezekhez a gyorsítókhoz lefordító build-eszközök (STEdgeAI az N6 NPU-jához, Vela az AE3 Ethos-U-jához) az eredményt ezzel az elrendezéssel helyezik a ROMFS-be. Egy /sdcard/ helyről betöltött modell a heap RAM-ba kerül, ami megfelelő a H7 és az RT1062 által használt CPU-utakhoz, de feladja a közvetlen-flash NPU-utat, amely köré a gyorsabb kamerákat tervezték.
7.5.2. Egy normál MicroPython fájlrendszer¶
Futás közben a ROMFS úgy viselkedik, mint bármely más csatolt MicroPython fájlrendszer: az os.listdir() felsorolja a /rom/ tartalmát, a builtins.open() megnyitja a benne lévő fájlokat, és egy alatta lévő elérési út átadható bármely API-nak, amely elérési utat fogad el. Az egyetlen korlátozás, hogy a szkriptek nem írhatnak bele – a partíció futás közben csak olvasható.
Az IDE képes a ROMFS szerkesztésére. Megjeleníti a partíció tartalmát a fájlböngészőjében, és támogatja a fájlok hozzáadását, eltávolítását és cseréjét ott ugyanúgy, ahogy az SD-kártyán teszi. A szándékolt felhasználás egyéni modellek, címkefájlok, segédszkriptek vagy bármely más erőforrás hozzáadása, amelyet az alkalmazásnak a kamerával együtt kell szállítania. Bármi, amit az IDE-n keresztül a /rom/ helyre helyeznek, ugyanazt a közvetlen-flash, NPU-elérhető tárolást kapja, mint az előre betöltött modellek.