c - 如何删除m25p40闪存的单个页面而不删除其他页面?

标签 c flash microcontroller eeprom

我使用的是m25p40闪存和jn5148 MCU。在这个闪存的数据表中,写的是:

删除能力:

  • 扇区删除:0.6 秒内 512Kb(TYP)
  • 批量删除:4.5 秒内 4Mb(典型值)

我在覆盖存储在一页扇区中的数据时遇到问题。那么,如何删除一页并在该页写入新数据呢?有什么解决方案可以删除扇区的一页,而不删除同一扇区的其他页吗?

最佳答案

您不能重写一页。您必须至少重写一个扇区。 因此,如果您想更改(即重写所选扇区中任何页面中的至少一个字节),您可以执行以下操作:

  1. 将所有扇区读取到 RAM。
  2. 删除该扇区。
  3. 更改 RAM 中所需的数据。
  4. 将更改的数据写回到闪存的扇区。

您必须阅读这篇文章:Five things you never knew about flash drives

关于c - 如何删除m25p40闪存的单个页面而不删除其他页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24951747/

相关文章:

c - 如何在c中读取TIFF文件头?

C Programming w/Pipes 奇怪地打印到 STDOUT

c - 在 LPC1788 微 Controller 上通过 CAN 接收消息时遇到问题

c - 栈函数调用问题

常量字符串的不区分大小写的比较

actionscript-3 - 整数总是比 AS3 中的数字/ float 快吗?

javascript - HTML5 getUserStream 直播

actionscript-3 - 定义 fl.controls :Label could not be found

C和结构之间选择

microcontroller - 为什么是 24 位寄存器?