1. 程式人生 > >寫EEPROM,寫FLASH經驗記錄

寫EEPROM,寫FLASH經驗記錄

    最近在做一款產品移植。使用者資料一共7塊內容。老產品都是用EEPROM的讀寫方式通訊,內在的東西不熟悉,看不到。

然而在STM32105裡面,自己開始琢磨使用者資料的儲存,開始搬遷。首次玩此款晶片,經驗不多經歷了很多坎坷,寫篇文章記錄:

1、明確需求很重要。我的資料有4塊是小資料而且經常要改動,有1塊 資料不常用,內容幾十位元組。有1塊資料接近2K,有1塊資料大於2K。

2、明確平臺資源。STM32105RC, 64KRAM,256KROM, flash的頁大小2K一頁。

3、尋找輪子,向前進。官網模擬EEPROM的例程:STM32F10x_AN2594_FW_V3.1.0優化(FLASH模擬EEPROM)

4、耐心磨刀。特別是經驗不足的新手(我)。

    a.在第1調需求沒明確,導致個別區塊大小定義不準確。同樣影響常用資料分類,資料大小分類的準確性

    b.七塊資料保守估計4K,沒理解透第2條,天真的去申請操作4K的資料。  

    c.沒理解號輪子的特性,竟然誤解優化的方法,想拿掉;竟然以為模擬EEPROM,一頁可以存2K資料;實際上優化的方法方便讀寫資料的速度,模擬EEPROM,一半存的是虛擬地址,一半存的資料,準確來說還要預留4個位元組存頁狀態,實際資料不足1K每頁。

     d.實戰經驗缺乏,亂搞了很多次。例如模擬EEPROM寫滿一頁需要回收有效資料,然後轉移到新頁

     e.折騰了好機會,開始獨創新模式,採用模擬EEPROM的原則、理論、方法,單獨定義頁面來儲存接近2K的資料,大於2K的塊資料。無奈換頁的時候,要麼記憶體資料會被影響,要麼換頁資料不準確,大小 不到位。不過好事多磨還是解決 了。

總結:再好的記憶也比不上一個爛筆頭。資料模型,FLASH儲存,MEM申請和釋放,資料編輯和換頁操作。這4快都是要一筆一劃清晰用筆頭描繪出來。