【发布时间】:2019-05-27 08:50:50
【问题描述】:
是否可以使用最小扇区擦除大小为 4KB 的 SPI 闪存芯片和 Atmega 328p(2KB 内部 RAM)?
我看到的问题:为了将数据写入闪存,必须擦除一页。如果要更新扇区内的数据,首先需要读取扇区内的所有页面,将它们保存在芯片外,擦除扇区并按照更改的顺序将页面写回。
但是 4KB 的扇区无法保存在 2KB 的 RAM 中,那么其他人针对这种情况使用什么解决方案?因为我已经看到 Arduinos 用于此设置,但无法确定他们的解决方案是什么。
(Arduino 只是这个问题中小型微控制器的一个例子)
【问题讨论】:
-
将扇区保存在不同的扇区而不是 RAM 中(而且在断电的情况下更安全),只保留您需要的数据
-
那么,您需要多少数据?在擦除期间,您只需要根据需要在 RAM 中存储尽可能多的内容。如果您确实需要存储 4kb 数据,那么您可能应该选择另一种类型的内存,例如经典 EEPROM。
标签: arduino embedded low-memory