LPC55S69 的闪存 API 和 MCUX 驱动程序文档中的术语不一致且定义不明确。我要确定的是用于擦除和页面编程的块大小。
驱动程序本身报告页面大小为 512 字节,扇区大小为 32768。对于我使用过的大多数 NOR 闪存供应商,擦除操作是在整个扇区上执行的,而编程操作是在页面上执行的。FLASH_Erase() 描述说:“此函数根据所需的起始地址和长度擦除适当数量的闪存扇区。”
对我来说,这意味着它必须擦除至少 1 个扇区,即 32k。不过,文档中的其他提及不支持这一点,例如 lengthInBytes 参数:“长度,以要擦除的字节(不是字或长字)为单位给出。必须对齐 512 字节。”
这似乎是说 512 字节擦除是可能的。有人可以确认这是真的吗?如果是这样,扇区大小的意义是什么?还有一个块大小似乎与总大小相同。
此外,它与我今天正在使用的引导加载程序无关,但是 可以写入的[i]最小大小是多少,它的对齐方式是什么?驱动程序说长度必须是 512 字节对齐的(我认为这是试图说它需要是 512 字节的[i]倍数,而不是该值需要在 512 字节边界上对齐)但是用户手册建议128 位是最小写入大小。有人可以澄清一下吗?能够对先前擦除的页面执行许多小写操作以减少更新值时闪存的磨损是很有用的。