class Flash – pääsy sisäänrakennettuun flash-muistiin¶
Flash-luokka tarjoaa suoran, lohkotason pääsyn RP2040:n ulkoiseen QSPI-flashpiiriin. Ajuri toteuttaa vfs.AbstractBlockDev -rajapinnan, joten sen voi antaa vfs.mount() -funktiolle mukautettuja tiedostojärjestelmäasetuksia varten.
Useimmat skriptit säilyttävät tietoja automaattisesti liitetyn tiedostojärjestelmän kautta polussa / eivätkä koskaan luo Flash -oliota suoraan. Luo sellainen käsin, kun sinun täytyy:
Liittää oletuksesta poikkeava tiedostojärjestelmä (esim. kääriä
vfs.VfsFat-luokalla) mukautettuun osioon.Lukea tai kirjoittaa laiteohjelmistoalueita tai tehdasdatalohkoja, jotka eivät kuulu tiedostojärjestelmälle.
Toteuttaa mukautetun flash-pohjaisen tallennusmuodon, joka ohittaa tiedostojärjestelmäkerroksen.
Konstruktorit¶
- class rp2.Flash Flash¶
Palauttaa singleton-tyyppisen
Flash-lohkolaiteolion, jonka taustalla on RP2040:n QSPI-flashpiiri. Ensimmäinen näkyvä lohko on heti laiteohjelmistoalueen jälkeen, joten kutsujat näkevät vain piirin tiedostojärjestelmälle kelpaavan alueen.Metodit¶
- readblocks(block_num: int, buf: bytearray) None¶
- readblocks(block_num: int, buf: bytearray, offset: int) None
Lukee tavuja flash-muistista puskuriin
buf. Vakiomuotoinenvfs.AbstractBlockDev-lohkolaitteen sisääntulopiste, jota tiedostojärjestelmäkerros käyttää.Yksinkertainen muoto (
readblocks(block_num, buf)): lukee kokonaisia lohkoja alkaen lohkoindeksistäblock_num.len(buf)-arvon on oltava flash-lohkokoon monikerta.Laajennettu muoto (
readblocks(block_num, buf, offset)): lukeelen(buf)tavua – ei välttämättä kokonaista lohkomäärää – alkaen tavusiirtymästäoffsetlohkonblock_numsisällä. Käytössä littlefs:ssä ja muissa tavuosoitteellisissa tiedostojärjestelmissä.
- writeblocks(block_num: int, buf: bytes) None¶
- writeblocks(block_num: int, buf: bytes, offset: int) None
Kirjoittaa tavuja puskurista
bufflash-muistiin. Vakiomuotoinenvfs.AbstractBlockDev-lohkolaitteen sisääntulopiste, jota tiedostojärjestelmäkerros käyttää.Yksinkertainen muoto (
writeblocks(block_num, buf)): kirjoittaa kokonaisia lohkoja alkaen lohkoindeksistäblock_num.len(buf)-arvon on oltava flash-lohkokoon monikerta. Jokainen kohdelohko tyhjennetään automaattisesti ennen kirjoittamista.Laajennettu muoto (
writeblocks(block_num, buf, offset)): kirjoittaalen(buf)tavua – ei välttämättä kokonaista lohkomäärää – alkaen tavusiirtymästäoffsetlohkonblock_numsisällä. Implisiittistä tyhjennystä ei suoriteta – kutsujan on varmistettava, että kohdelohkot on tyhjennetty aiemmallaioctl(6, block_num)-kutsulla.
- ioctl(cmd: int, arg: int) int | None¶
Vakiomuotoinen
vfs.AbstractBlockDev-ohjauksen sisääntulopiste. Tiedostojärjestelmäkerros kutsuu tätä liitos-/irrotushetkellä ja jokaisen synkronoinnin yhteydessä. Tunnistetutcmd-arvot:1– alusta. Palauttaa onnistuessaan0.2– poista alustus. Palauttaa onnistuessaan0.3– synkronoi odottavat kirjoitukset. Palauttaa0.4– palauttaa tiedostojärjestelmälle näkyvien flash-lohkojen määrän.5– palauttaa lohkokoon tavuina (tyypillisesti flash-sektorin koko,4096).6– tyhjentää lohkon indeksistäarg. Vaaditaan ennen laajennetunwriteblocks-muodon käyttöä.7– palauttaa, tukeeko laite lohkon tyhjennyskomentoa (1RP2040:llä).
Suorat kutsujat eivät yleensä käytä tätä metodia – tiedostojärjestelmäajuri välittää vakiokoodit automaattisesti, kun
Flashon liitetty.