mimxrt — funkcionalnost specifična za NXP i.MXRT¶
Modul mimxrt sadrži funkcije i klase specifične za NXP i.MXRT obitelj mikrokontrolera.
Klase¶
- class mimxrt.Flash¶
Dohvaća singleton objekt koji izlaže područje korisničke pohrane ugrađene QSPI flash memorije kao blok uređaj kompatibilan s
vfs.AbstractBlockDev. Brojevi blokova relativni su prema početku tog područja, a ne prema fizičkom početku flash memorije.U većini slučajeva, za pohranu trajnih podataka na uređaju, htjet ćete koristiti apstrakciju više razine – na primjer datotečni sustav putem standardnog Python file API-ja. Ovo sučelje korisno je za prilagodbu konfiguracije datotečnog sustava ili implementaciju niskorazinskog sustava pohrane za vašu aplikaciju.
Objekt također implementira protokol međuspremnika, omogućujući pristup cijelom području flash pohrane samo za čitanje, mapiran u memoriju putem QSPI XIP baze. To čini dostupnim pogled na područje bez kopiranja, bez izdavanja ikakvih flash čitanja:
flash = mimxrt.Flash() view = memoryview(flash) magic = bytes(view[:4]) # read the first 4 bytes directly from XIP
Veličina bloka koju koriste osnovni flash sektori može se upitati u vrijeme izvođenja pomoću
ioctl(5, 0).- readblocks(block_num: int, buf: bytearray) None¶
- readblocks(block_num: int, buf: bytearray, offset: int) None
Čita bajtove iz flash memorije u
buf. Dva preopterećenja izlažu jednostavno i prošireno sučelje:Jednostavni oblik (
readblocks(block_num, buf)): čita cijele blokove počevši od indeksa blokablock_num.len(buf)mora biti višekratnik veličine flash bloka.Prošireni oblik (
readblocks(block_num, buf, offset)): čitalen(buf)bajtova – ne nužno cijeli broj blokova – počevši od bajtaoffsetunutar blokablock_num.len(buf)nema ograničenje poravnanja.
- writeblocks(block_num: int, buf: bytes) None¶
- writeblocks(block_num: int, buf: bytes, offset: int) None
Piše bajtove iz
bufu flash memoriju. Dva preopterećenja izlažu jednostavno i prošireno sučelje:Jednostavni oblik (
writeblocks(block_num, buf)): piše cijele blokove počevši od indeksa blokablock_num.len(buf)mora biti višekratnik veličine flash bloka. Svaki zahvaćeni blok automatski se briše prije pisanja.Prošireni oblik (
writeblocks(block_num, buf, offset)): pišelen(buf)bajtova – ne nužno cijeli broj blokova – počevši od bajtaoffsetunutar blokablock_num.len(buf)nema ograničenje poravnanja, i ne izvodi se implicitno brisanje – pozivatelj mora osigurati da su zahvaćeni blokovi izbrisani prethodnim pozivomioctl(6, block_num).Diže
OSErrorako osnovna operacija brisanja ili pisanja flash memorije propadne.
- ioctl(cmd: int, arg: int) int | None¶
Standardna ulazna točka ioctl klase
vfs.AbstractBlockDev. Pogledajtevfs.AbstractBlockDev.ioctl()za potpuni popis vrijednosticmd.cmd=5vraća veličinu flash bloka u bajtovima;cmd=6briše blok s indeksomarg.