このドキュメンテーションは、MicroPython の最新開発ブランチのためのものです。 リリースバージョンでは利用できない機能に言及することがあります。

特定のリリースのドキュメントをお探しの場合は、左側のドロップダウンメニューを使って、 望みのバージョンを選択します。

クラス 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 で定義されているシンプルで拡張された ブロックプロトコル を実装しています。