(1)問:我需要把我所有的運行時狀態變量在系統掉電時都保存到EEPROM里,我該怎么做?
答:這是不是要告訴編譯器來建立一個連續的存儲器塊?
有兩種方法你可以用來處理這個問題;我們假設只有一些確定的變量是需要保存的。最好的方法是聲名這些變量為"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函數,當然你還需要做類似下面的聲明:
void write_to_eeprom(char * start, unsigned char length)
你需要自己編寫這個write_to_eeprom函數來把數據寫入具體的EEPROM位置。對于PIC16C84你可以在這個函數里使用EEPROM_WRITE宏。
-
EEPROM
+關注
關注
9文章
1082瀏覽量
83231 -
編譯器
+關注
關注
1文章
1654瀏覽量
49844 -
變量
+關注
關注
0文章
614瀏覽量
28806
發布評論請先 登錄
linux驅動通過uboot的變量實現掉電記憶
Cyusb3014如何將固件中的數據保存到Cyusb附帶的EEPROM中?
ATmega8掉電寫數據如EEProm編程實例
基于wince系統工控機掉電保護功能設計
實現數據的掉電保存是eeprom更好還是flash更好呢?
請問ADAU1452掉電保存或回寫EEPROM的問題
在keil里如何燒錄data flash數據的?
單片機掉電檢測與保存

如何掉電保存數據到EEPROM
HarmonyOS應用開發:保存到變量

評論