2012-05-28 62 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

我相信,在任何嵌入式項目中,最簡單的解決方案是最好的。您組織存儲的方式很簡單,看起來像滿足您的所有要求。

任何試圖「改進」或「優化」這個解決方案都會導致更復雜的代碼,並且會增加發生錯誤的可能性。因此,儘可能簡化所有工程解決方案。如果有新的要求出現,你總能找到新的簡單解決方案。不要做任何過早的優化。