快闪记忆体 - Read Write Stream

材料准备

范例说明

快闪记忆体 API 使用 3 * 4K 位元组 (12Kb) 的内存,通常足以满足大多数应用程式的需要。然而,可以透过指定特定的记忆体位址和所需的大小来提供更大的记忆体。
在本范例中,指定快闪记忆体的起始位址为0xFD000(“FLASH_MEMORY_APP_BASE”),大小为0x1000(“TEST_SIZE”由使用者设定)。读取从位址到“TEST_SIZE”即0xFD000到0xFE000的所有值,然后将所有值储存到“buf”中并加1。最后将所有新值写回相同的位址。每次 Ameba 重新启动时,读取值都会增加,直到“RESET_THRESHOLD”(最高 0xFFFFFFFF),然后重设为 0。但是,如果在超过 2 个阈值时间段后继续失败,则会导致 100% 失败。
在“File”->“Examples”->“AmebaFlashMemory”->“ReadWriteStream”中开启范例程式码。编译并上传到Ameba,然后多次按重置按钮。开启Serial Monitor查看结果。

1

预设情况下,Flash Memory API 使用位址 0xFD000~0xFFFFF 来储存资料。写入快闪记忆体时存在限制。
就是不允许直接将资料写入到上次写入时所使用的相同位址,除非先清除该磁区。快闪记忆体 API 有 1 个与清除相关的函数。
• 使用“FlashMemory.eraseSector(sector_offset)”清除快闪记忆体目标位址的一个磁区(4K 位元组)。
• 使用“FlashMemory.eraseWord(offset)”清除快闪记忆体目标位址的一个字(4 个位元组)。

请先确认已安装QQ通讯软体