class Flash – yerleşik flash bellek depolamasına erişim¶
Flash sınıfı, RP2040’ın harici QSPI flash yongasına doğrudan, blok düzeyinde erişim sağlar. Sürücü vfs.AbstractBlockDev arayüzünü uygular, böylece özel dosya sistemi yapılandırmaları için vfs.mount() işlevine geçirilebilir.
Çoğu betik, verileri / konumunda otomatik bağlanan dosya sistemi aracılığıyla kalıcı hale getirir ve hiçbir zaman doğrudan Flash oluşturmaz. Aşağıdakilere ihtiyaç duyduğunuzda elle bir tane oluşturun:
Özel bir bölümde varsayılan olmayan bir dosya sistemi bağlamak (ör.
vfs.VfsFatile sarmalamak).Dosya sistemine ait olmayan aygıt yazılımı (firmware) bölgelerini veya fabrika verisi bloklarını okumak ya da yazmak.
Dosya sistemi katmanını atlayan özel bir flash üzeri depolama biçimi uygulamak.
Kurucular¶
- class rp2.Flash Flash¶
RP2040’ın QSPI flash yongasıyla desteklenen tekil (singleton)
Flashblok aygıtı nesnesini döndürür. Sunulan ilk blok, aygıt yazılımı (firmware) bölgesinin hemen ardından gelen bloktur; böylece çağıranlar yongada yalnızca dosya sistemine uygun alanı görür.Yöntemler¶
- readblocks(block_num: int, buf: bytearray) None¶
- readblocks(block_num: int, buf: bytearray, offset: int) None
Flash bellekten
bufarabelleğine bayt okur. Dosya sistemi katmanı tarafından kullanılan standartvfs.AbstractBlockDevblok aygıtı giriş noktası.Basit biçim (
readblocks(block_num, buf)):block_numblok indeksinden başlayarak tam blokları okur.len(buf), flash blok boyutunun bir katı olmalıdır.Genişletilmiş biçim (
readblocks(block_num, buf, offset)):block_numbloğu içindekioffsetbaytından başlayaraklen(buf)bayt okur – ki bu mutlaka tam sayıda blok değildir. littlefs ve bayt adreslenebilir diğer dosya sistemleri tarafından kullanılır.
- writeblocks(block_num: int, buf: bytes) None¶
- writeblocks(block_num: int, buf: bytes, offset: int) None
bufarabelleğinden flash belleğe bayt yazar. Dosya sistemi katmanı tarafından kullanılan standartvfs.AbstractBlockDevblok aygıtı giriş noktası.Basit biçim (
writeblocks(block_num, buf)):block_numblok indeksinden başlayarak tam blokları yazar.len(buf), flash blok boyutunun bir katı olmalıdır. Etkilenen her blok yazılmadan önce otomatik olarak silinir.Genişletilmiş biçim (
writeblocks(block_num, buf, offset)):block_numbloğu içindekioffsetbaytından başlayaraklen(buf)bayt yazar – ki bu mutlaka tam sayıda blok değildir. Örtük silme yapılmaz – çağıranın, etkilenen blokların önceki birioctl(6, block_num)çağrısıyla silinmiş olmasını sağlaması gerekir.
- ioctl(cmd: int, arg: int) int | None¶
Standart
vfs.AbstractBlockDevdenetim giriş noktası. Dosya sistemi katmanı tarafından bağlama/ayırma anında ve her eşitlemede çağrılır. Tanınancmddeğerleri:1– başlat. Başarı durumunda0döndürür.2– sonlandır. Başarı durumunda0döndürür.3– bekleyen yazmaları eşitle.0döndürür.4– dosya sistemine görünür flash blok sayısını döndürür.5– blok boyutunu bayt cinsinden döndürür (genellikle flash sektör boyutu,4096).6–argindeksindeki bloğu siler. Genişletilmişwriteblocksbiçimini kullanmadan önce gereklidir.7– aygıtın blok silme komutunu destekleyip desteklemediğini döndürür (RP2040’ta1).
Doğrudan çağıranlar normalde bu yöntemi kullanmaz –
Flashbağlandıktan sonra dosya sistemi sürücüsü standart kodları otomatik olarak yönlendirir.