我的 PIC18F87J11一次只删除 1024 个字节。 有办法强制它一次只能删除 2 个字节或更多字节吗?
我正在制作一个引导加载程序,有时 HEX 文件(16 字节)中只有一行为应用程序更改,所以我只想用新的 16 字节替换内存中的那一行。如果我尝试删除这 16 个字节,也会自动删除 1024 个字节。然后我被迫重新编写它们,这需要一些时间并降低引导加载程序的速度。
是否有另一种方法可以在不删除 1024 字节的情况下从闪存中删除某些内容?希望有。
谢谢!
最佳答案
您不能删除小于底层内存实现的“删除 block 大小”。如果您的设备上有 1024 字节(您可以验证),那么这是您可以删除的最小大小。
您可以将整个 block 复制到 RAM(如果可用),仅修改必要的部分,删除闪存 block ,然后将其写回,避免从 重新上传未更改的部分外部来源。
在许多这些技术中,还有一个方向可以在不删除的情况下写入 - 例如,内存可能允许将“1”更改为“0”,但只有删除周期才能更改“0”回到“1”。根据您的具体需求,您可以设计一个利用这一点的方案。
关于embedded - 如何删除闪存的一些字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23895253/