クラス FlashArea -- 内蔵フラッシュストレージへのアクセス¶
Zephyr flash map API を使います。
このクラスは、デバイスのフラッシュパーティションデータへのアクセスを許可します。フラッシュ領域構造体は、グローバルに一意な ID 番号、パーティションがあるフラッシュデバイスの名前、開始オフセット(パーティションごとのフラッシュメモリの開始アドレスに関連して表される)、デバイスが表すパーティションのサイズで構成されます。固定フラッシュパーティションでは、デバイスツリーからのデータが使われます。しかし、MicroPython では MCUBoot が有効になっていないので、固定フラッシュパーティションは強制されません。
コンストラクタ¶
- class zephyr.FlashArea(id, block_size)¶
id
で指定され、ブロック・サイズがblock_size
であるパーティションのフラッシュメモリにアクセスするためのオブジェクトを取得します。id
値は、devicetree で定義された固定フラッシュパーティションに対応する整数です。一般的に使用されるパーティションは、ブート時にFLASH_AREA_LABEL_EXISTS(storage)
が真を返した場合にFlashArea.STORAGE
として定義される指定されたフラッシュストレージ領域です。Zephyr の devicetree 固定フラッシュパーティションは、boot_partition
,slot0_partition
,slot1_partition
,scratch_partition
です。MicroPython では MCUBoot はデフォルトで有効になっていないので、これらの固定パーティションはそれぞれIDの整数値 1, 2, 3, 4 でアクセスできます。
メソッド¶
- FlashArea.readblocks(block_num, buf)¶
- FlashArea.readblocks(block_num, buf, offset)
- FlashArea.writeblocks(block_num, buf)¶
- FlashArea.writeblocks(block_num, buf, offset)
- FlashArea.ioctl(cmd, arg)¶
これらのメソッドは
vfs.AbstractBlockDev
で定義されているシンプルで拡張された ブロックプロトコル を実装しています。