2012-05-28 35 views
1

我的电路板上有一个64KB的EEPROM,组成128字节的页面,与AT Mega 1281通信。该板还有一个SD卡插槽,可以将一些配置文件复制到EEPROM(充当内部存储器)。由于电路板的性质,只需要两种类型的文件 - 一种称为电路数据,另一种是位置数据 - 都是二进制文件。到目前为止,我只是将EEPROM分成两个32K的半部分,并在上半部分写了Circuit Data,在下半部分写了位置数据。这两个文件也有一个25字节的标题。我将文件头分别复制到文件的最后一页,即从地址0x7F80开始的页面具有电路数据文件的标题,而从0xFF80开始的地址具有另一标题。数据总是具有固定宽度,这使得随机访问非常容易。在EEPROM中整理数据

我的问题是,是否有更好,更简单的方法来组织数据在EEPROM?目前,我甚至不存储数据的长度,因为它不是真的需要。但是我认为如果我在头文件中包含这一点,它可能会增加另一个安全步骤。

回答

1

更好?这取决于。更简单?真的不。这取决于你的“永远”有多强。你相信自己多少文件总是固定长度的?你提出这个问题的事实可能意味着一些疑虑。请记住KISS principle。微控制器的发展仍然是一个不必要的特征直接威胁到解决方案稳定性的领域。如果你想让你的EEPROM访问更通用,在头文件中有一个数据长度会很有用。但是,再次,两个文件的泛化是一个矫枉过正的问题。

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

1

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

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