mimxrt — NXP i.MXRT:lle ominaiset toiminnot

mimxrt -moduuli sisältää NXP i.MXRT -mikro-ohjainperheelle ominaisia funktioita ja luokkia.

Luokat

class mimxrt.Flash

Hae singleton-olio, joka tarjoaa sisäänrakennetun QSPI-flash-muistin käyttäjätallennusalueen vfs.AbstractBlockDev -yhteensopivana lohkolaitteena. Lohkonumerot ovat suhteessa kyseisen alueen alkuun, ei flash-muistin fyysiseen alkuun.

Useimmissa tapauksissa pysyvän datan tallentamiseen laitteelle kannattaa käyttää korkeamman tason abstraktiota – esimerkiksi tiedostojärjestelmää Pythonin standardin tiedosto-API:n kautta. Tämä rajapinta on hyödyllinen, kun haluat mukauttaa tiedostojärjestelmän kokoonpanoa tai toteuttaa matalan tason tallennusjärjestelmän sovellustasi varten.

Olio toteuttaa myös puskuriprotokollan, mikä mahdollistaa vain luku -muistikartoitetun pääsyn koko flash-tallennusalueeseen QSPI XIP -perustan kautta. Tämä tekee alueesta saataville nollakopioisen näkymän suorittamatta yhtäkään flash-lukua:

flash = mimxrt.Flash()
view = memoryview(flash)
magic = bytes(view[:4])      # read the first 4 bytes directly from XIP

Taustalla olevien flash-sektoreiden käyttämä lohkokoko voidaan kysyä ajonaikaisesti komennolla ioctl(5, 0).

readblocks(block_num: int, buf: bytearray) None
readblocks(block_num: int, buf: bytearray, offset: int) None

Lue tavuja flash-muistista buf -puskuriin. Kaksi ylikuormitusta tarjoaa yksinkertaisen ja laajennetun rajapinnan:

Yksinkertainen muoto (readblocks(block_num, buf)): lukee kokonaisia lohkoja alkaen lohkoindeksistä block_num. len(buf) täytyy olla flash-lohkokoon monikerta.

Laajennettu muoto (readblocks(block_num, buf, offset)): lukee len(buf) tavua – ei välttämättä kokonaista lohkomäärää – alkaen tavukohdasta offset lohkon block_num sisällä. len(buf) ei ole tasausrajoituksia.

writeblocks(block_num: int, buf: bytes) None
writeblocks(block_num: int, buf: bytes, offset: int) None

Kirjoita tavuja buf -puskurista flash-muistiin. Kaksi ylikuormitusta tarjoaa yksinkertaisen ja laajennetun rajapinnan:

Yksinkertainen muoto (writeblocks(block_num, buf)): kirjoittaa kokonaisia lohkoja alkaen lohkoindeksistä block_num. len(buf) täytyy olla flash-lohkokoon monikerta. Jokainen vaikuttava lohko tyhjennetään automaattisesti ennen kirjoittamista.

Laajennettu muoto (writeblocks(block_num, buf, offset)): kirjoittaa len(buf) tavua – ei välttämättä kokonaista lohkomäärää – alkaen tavukohdasta offset lohkon block_num sisällä. len(buf) ei ole tasausrajoituksia, ja implisiittistä tyhjennystä ei suoriteta – kutsujan on varmistettava, että vaikuttavat lohkot on tyhjennetty aiemmalla ioctl(6, block_num) -kutsulla.

Aiheuttaa OSError -poikkeuksen, jos taustalla oleva flash-muistin tyhjennys- tai kirjoitusoperaatio epäonnistuu.

ioctl(cmd: int, arg: int) int | None

Standardin vfs.AbstractBlockDev ioctl-sisääntulokohta. Katso vfs.AbstractBlockDev.ioctl() saadaksesi täydellisen luettelon cmd -arvoista. cmd=5 palauttaa flash-lohkokoon tavuina; cmd=6 tyhjentää lohkon, jonka indeksi on arg.