mimxrt — funktionalitet specifik för NXP i.MXRT¶
Modulen mimxrt innehåller funktioner och klasser specifika för NXP i.MXRT-familjen av mikrokontroller.
Klasser¶
- class mimxrt.Flash¶
Hämta singleton-objektet som exponerar användarlagringsregionen i det inbyggda QSPI-flashminnet som en blockenhet kompatibel med
vfs.AbstractBlockDev. Blocknummer är relativa till början av den regionen, inte till flashminnets fysiska början.I de flesta fall, för att lagra persistent data på enheten, vill du använda en abstraktion på högre nivå – till exempel filsystemet via Pythons standard-fil-API. Detta gränssnitt är användbart för att anpassa filsystemskonfigurationen eller implementera ett lågnivålagringssystem för din applikation.
Objektet implementerar också buffertprotokollet, vilket möjliggör skrivskyddad minnesmappad åtkomst till hela flashlagringsregionen via QSPI XIP-basen. Detta gör en nollkopieringsvy av regionen tillgänglig utan att utfärda några flashläsningar:
flash = mimxrt.Flash() view = memoryview(flash) magic = bytes(view[:4]) # read the first 4 bytes directly from XIP
Blockstorleken som används av de underliggande flash-sektorerna kan efterfrågas vid körning med
ioctl(5, 0).- readblocks(block_num: int, buf: bytearray) None¶
- readblocks(block_num: int, buf: bytearray, offset: int) None
Läs byte från flashminnet in i
buf. Två överlagringar exponerar de enkla och utökade gränssnitten:Enkel form (
readblocks(block_num, buf)): läser hela block med start vid blockindexblock_num.len(buf)måste vara en multipel av flashminnets blockstorlek.Utökad form (
readblocks(block_num, buf, offset)): läserlen(buf)byte – inte nödvändigtvis ett helt antal block – med start vid byteoffsetinom blockblock_num.len(buf)har ingen justeringsbegränsning.
- writeblocks(block_num: int, buf: bytes) None¶
- writeblocks(block_num: int, buf: bytes, offset: int) None
Skriv byte från
buftill flashminnet. Två överlagringar exponerar de enkla och utökade gränssnitten:Enkel form (
writeblocks(block_num, buf)): skriver hela block med start vid blockindexblock_num.len(buf)måste vara en multipel av flashminnets blockstorlek. Varje berört block raderas automatiskt innan det skrivs.Utökad form (
writeblocks(block_num, buf, offset)): skriverlen(buf)byte – inte nödvändigtvis ett helt antal block – med start vid byteoffsetinom blockblock_num.len(buf)har ingen justeringsbegränsning, och ingen implicit radering utförs – anroparen måste säkerställa att de berörda blocken har raderats via ett tidigare anrop tillioctl(6, block_num).Utlöser
OSErrorom den underliggande flash-raderings- eller skrivoperationen misslyckas.
- ioctl(cmd: int, arg: int) int | None¶
Standardgränssnittspunkt för ioctl i
vfs.AbstractBlockDev. Sevfs.AbstractBlockDev.ioctl()för den fullständiga listan övercmd-värden.cmd=5returnerar flashminnets blockstorlek i byte;cmd=6raderar blocket med indexarg.