FlashArea 类 – 访问内置的 flash 存储

使用 Zephyr flash map API.

此类允许访问设备 flash 分区数据。Flash 区实体由一个全局唯一的 ID 号、分区所在的 Flash 设备的名称、起始偏移量(表示为与每个分区的 Flash 存储器起始地址相关)、以及该设备所代表的分区的大小组成。对于固定的 flash 分区,来自设备树定义的数据将被使用;但由于未启用 MCUBoot,在 MicroPython 中未强制执行固定 flash 分区。

构造器

class zephyr.FlashArea(id, block_size)

通过指定 id 和块大小 block_size 获取一个对象,用于访问 flash 分区中的闪存。

id 值是与设备树中定义的固定 flash 分区相关的整数。一个公用的 flash 存储区域,是在启动时,当 FLASH_AREA_LABEL_EXISTS(storage) 返回 true 后,定义为 FlashArea.STORAGE 。Zephyr devicetree 中的固定闪存分区为 boot_partitionslot0_partitionslot1_partitionscratch_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)

这些函数实现了简单和扩展的 块协议 (在 uos.AbstractBlockDev 中定义) 。