(1)問:我需要把我所有的運行時狀態(tài)變量在系統(tǒng)掉電時都保存到EEPROM里,我該怎么做?
答:這是不是要告訴編譯器來建立一個連續(xù)的存儲器塊?
有兩種方法你可以用來處理這個問題;我們假設只有一些確定的變量是需要保存的。最好的方法是聲名這些變量為"persistent",例如:
persistent int fred;
這將會阻止啟動代碼把這些變量清零,并且這些變量會被放置到一個特殊的psect(在PIC里,你只能用bank0,所以不要對persistent使用bank1)。
這樣,所有的'persistent'變量都將被放到一起,然后你可以通過下面的聲明來得到這個psect的邊界:
extern char _Lnvram[], _Hnvram[];
然后用下面的方式來使用:
write_to_eeprom(_Lnvram, _Hnvram-_Lnvram);
這樣將會把psect的起始地址和長度傳遞給write_to_eeprom函數(shù),當然你還需要做類似下面的聲明:
void write_to_eeprom(char * start, unsigned char length)
你需要自己編寫這個write_to_eeprom函數(shù)來把數(shù)據(jù)寫入具體的EEPROM位置。對于PIC16C84你可以在這個函數(shù)里使用EEPROM_WRITE宏。
-
EEPROM
+關注
關注
9文章
1086瀏覽量
83737 -
編譯器
+關注
關注
1文章
1662瀏覽量
50208 -
變量
+關注
關注
0文章
614瀏覽量
28949
發(fā)布評論請先 登錄
linux驅動通過uboot的變量實現(xiàn)掉電記憶
Cyusb3014如何將固件中的數(shù)據(jù)保存到Cyusb附帶的EEPROM中?
ATmega8掉電寫數(shù)據(jù)如EEProm編程實例
基于wince系統(tǒng)工控機掉電保護功能設計
實現(xiàn)數(shù)據(jù)的掉電保存是eeprom更好還是flash更好呢?
請問ADAU1452掉電保存或回寫EEPROM的問題
如何在掉電檢測中保存數(shù)據(jù)到EEPROM?
STM32系統(tǒng)中掉電保存數(shù)據(jù)的方法是什么
用戶設置的參數(shù)動態(tài)信息保存方法有哪些呢
在keil里如何燒錄data flash數(shù)據(jù)的?
單片機掉電檢測與保存

如何掉電保存數(shù)據(jù)到EEPROM
HarmonyOS應用開發(fā):保存到變量

評論