7.5. ROMFS

ROMFS on vain luettava tiedostojärjestelmä, joka rakennetaan kameraan käännösvaiheessa ja liitetään polkuun /rom/. Tiedostolohkot sijaitsevat flash-muistissa ja kuvataan osoiteavaruuteen, joten siellä olevan tiedoston avaaminen paljastaa sen tavut suoraan flash-muistista ilman keskusmuistikopiota. Mallit, luokkanimitiedostot ja Haar-kaskadit ovat tyypillistä sisältöä.

7.5.1. Miksi mallit sijaitsevat täällä

Kaksi syytä. Ensimmäinen on jo mainittu keskusmuistin kompromissi: malli polussa /rom/ luetaan paikallaan flash-muistista eikä vie keskusmuistia tensorialueen lisäksi, kun taas malli polussa /sdcard/ kopioidaan keskusmuistiin latausvaiheessa ja vie tiedoston koon verran tensorialueen päälle. Pienemmissä kameroissa tämä ero on usein ero sen välillä, mahtuuko malli vai ei.

Toinen syy on NPU. N6:n NPU ja AE3:n Ethos-U odottavat painonsa muistiosoitteistettavalla alueella oikealla kohdistuksella, ja rakennustyökalut, jotka kääntävät mallin näille kiihdyttimille (STEdgeAI N6:n NPU:lle, Vela AE3:n Ethos-U:lle), sijoittavat tuloksen ROMFS:ään tällä asettelulla. Polusta /sdcard/ ladattu malli päätyy keskusmuistin kekoon, mikä on hyväksyttävää H7:n ja RT1062:n käyttämille CPU-poluille, mutta luopuu suoraan flash-muistista tapahtuvasta NPU-polusta, jonka ympärille nopeammat kamerat on suunniteltu.

7.5.2. Tavallinen MicroPython-tiedostojärjestelmä

Ajon aikana ROMFS käyttäytyy kuten mikä tahansa muu liitetty MicroPython-tiedostojärjestelmä: os.listdir() luettelee polun /rom/ sisällön, builtins.open() avaa siinä olevia tiedostoja, ja sen alla oleva polku välittyy mille tahansa rajapinnalle, joka hyväksyy polun. Ainoa rajoitus on, että skriptit eivät voi kirjoittaa siihen – osio on vain luettava ajon aikana.

IDE voi muokata ROMFS:ää. Se näyttää osion sisällön tiedostoselaimessaan ja tukee tiedostojen lisäämistä, poistamista ja korvaamista siellä samalla tavoin kuin SD-kortin kohdalla. Tarkoituksena on lisätä mukautettuja malleja, luokkanimitiedostoja, apuskriptejä tai mitä tahansa muuta resurssia, joka sovelluksen on toimitettava kameran mukana. Kaikki, mikä pudotetaan polkuun /rom/ IDE:n kautta, saa saman suoraan flash-muistista tapahtuvan, NPU:lle käytettävissä olevan tallennuksen kuin esiladatut mallit.