1

我的板上有一个 64KB 的 EEPROM,组织为 128 字节的页面,它与 AT Mega 1281 通信。该板还有一个 SD 卡插槽,能够将一些配置文件复制到 EEPROM 上(充当内部记忆)。由于电路板的性质,只需要两种类型的文件——一种称为电路数据,另一种是位置数据——两者都是二进制文件。

到现在为止,我刚刚将 EEPROM 分成两部分 32K,并在上半部分写入电路数据,在下半部分写入位置数据。这两个文件也有一个 25 字节的标题。我在文件的最后几页分别复制了标题,即从地址 0x7F80 开始的页面具有电路数据文件的标题,而从 0xFF80 开始的地址具有另一个标题。数据的宽度总是固定的,因此随机访问非常容易。

我的问题是,有没有更好、更简单的方法来组织 EEPROM 中的数据?目前,我什至不存储数据的长度,因为它并不是真正需要的。但是我认为如果我确实将其包含在标题中,它可能会增加另一个安全步骤。

4

2 回答 2

1

我相信,在任何嵌入式项目中,最简单的解决方案是最好的。您组织存储的方式很简单,并且看起来可以满足您的所有要求。

任何“改进”或“优化”此解决方案的尝试都会导致代码更复杂,并且会增加其中出现错误的可能性。因此,让您的所有工程解决方案尽可能简单。如果出现新的需求,您总能找到新的简单解决方案。不要做任何过早的优化。

于 2012-05-28T15:34:28.793 回答
1

更好的?这取决于。更简单?真的不。这取决于你的“总是”有多强。您有多相信自己的文件将始终是固定长度的?您问这个问题的事实可能意味着一些疑问。牢记KISS 原则。微控制器开发仍然是一个不必要的功能直接威胁解决方案稳定性的领域。如果您想让您的 EEPROM 访问更通用,则在标头中包含数据长度会很有用。但是话又说回来,对两个文件的概括是过大的。

第二个想法:与其引入您实际上不需要的文件长度,我想知道为什么您将文件头存储在相应内存块的另一侧。“标题”对我来说是在文件本身之前需要阅读的东西。您可以将读取地址的一次传输保存到 EEPROM。

于 2012-05-28T15:43:56.817 回答