0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何讓變量在系統(tǒng)掉電時(shí)都保存到EEPROM里

麥辣雞腿堡 ? 來源:Microchip微芯 ? 作者:Microchip微芯 ? 2023-01-22 16:18 ? 次閱讀

(1)問:我需要把我所有的運(yùn)行時(shí)狀態(tài)變量在系統(tǒng)掉電時(shí)都保存到EEPROM里,我該怎么做?

答:這是不是要告訴編譯器來建立一個(gè)連續(xù)的存儲(chǔ)器塊?

有兩種方法你可以用來處理這個(gè)問題;我們假設(shè)只有一些確定的變量是需要保存的。最好的方法是聲名這些變量為"persistent",例如:

persistent int fred;

這將會(huì)阻止啟動(dòng)代碼把這些變量清零,并且這些變量會(huì)被放置到一個(gè)特殊的psect(在PIC里,你只能用bank0,所以不要對persistent使用bank1)。

這樣,所有的'persistent'變量都將被放到一起,然后你可以通過下面的聲明來得到這個(gè)psect的邊界:

extern char _Lnvram[], _Hnvram[];

然后用下面的方式來使用:

write_to_eeprom(_Lnvram, _Hnvram-_Lnvram);

這樣將會(huì)把psect的起始地址和長度傳遞給write_to_eeprom函數(shù),當(dāng)然你還需要做類似下面的聲明:

void write_to_eeprom(char * start, unsigned char length)

你需要自己編寫這個(gè)write_to_eeprom函數(shù)來把數(shù)據(jù)寫入具體的EEPROM位置。對于PIC16C84你可以在這個(gè)函數(shù)里使用EEPROM_WRITE宏。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • EEPROM
    +關(guān)注

    關(guān)注

    9

    文章

    1020

    瀏覽量

    81607
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1634

    瀏覽量

    49133
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

    28371
收藏 人收藏

    評論

    相關(guān)推薦

    linux驅(qū)動(dòng)通過uboot的變量實(shí)現(xiàn)掉電記憶

    起因 今天項(xiàng)目有個(gè)新需求就是屏幕亮度在上電以后保持上次最后設(shè)置的值 我們的項(xiàng)目屏幕的初始化是kernel而不是uboot,kernel的驅(qū)動(dòng)的加載是根文件
    的頭像 發(fā)表于 07-04 19:17 ?1126次閱讀

    Cyusb3014如何將固件中的數(shù)據(jù)保存到Cyusb附帶的EEPROM中?

    你好,我正在為 Cyusb3014 開發(fā)固件。 我想將固件中的數(shù)據(jù)保存到 Cyusb 附帶的 EEPROM 中,然后將其插入主機(jī),通過上層計(jì)算機(jī)從 EEPROM 讀取數(shù)據(jù)。 我該怎么辦? 謝謝
    發(fā)表于 02-27 06:18

    ATmega8掉電寫數(shù)據(jù)如EEProm編程實(shí)例

    各位大俠:我想用ATmega8寫個(gè)掉電時(shí)把數(shù)據(jù)保存到ATmega8內(nèi)部的EEprom內(nèi)呢。小弟實(shí)力有限,還要麻煩各位大俠多多指點(diǎn)。小弟先謝謝了!
    發(fā)表于 08-06 14:46

    基于wince系統(tǒng)工控機(jī)掉電保護(hù)功能設(shè)計(jì)

    秒鐘。側(cè)可以在有外電時(shí)把實(shí)時(shí)性比較高的數(shù)據(jù)保存在內(nèi)存DDR。獲得掉電發(fā)生時(shí),超級(jí)電容供電的2秒鐘,把內(nèi)存的一些重要的數(shù)據(jù)和現(xiàn)場運(yùn)行狀態(tài)
    發(fā)表于 08-16 15:49

    實(shí)現(xiàn)數(shù)據(jù)的掉電保存eeprom更好還是flash更好呢?

    想要實(shí)現(xiàn)數(shù)據(jù)的掉電保存,現(xiàn)在由兩種方案,一種是硬件上加上eeprom,一種是用flash配置為eeprom。但是看了相關(guān)資料,flash只支持塊擦除,而
    發(fā)表于 09-17 15:06

    請問ADAU1452掉電保存或回寫EEPROM的問題

    最近在摸索音效處理,想從ADAU1452開發(fā)入手,但是不知道能不能在僅有ADAU1452+AD1938+EEPROM配置下完成掉電音量保存,gpio狀態(tài)保存(例如聲道選擇保持,led狀
    發(fā)表于 04-20 22:48

    如何在掉電檢測中保存數(shù)據(jù)到EEPROM?

    想在掉電時(shí)保存數(shù)據(jù)(3個(gè)字節(jié))到EEPROM中,用BOD掉電檢測,怎么操作?
    發(fā)表于 03-16 09:57

    STM32系統(tǒng)掉電保存數(shù)據(jù)的方法是什么

    STM32系統(tǒng)掉電保存數(shù)據(jù)的方法嵌入式設(shè)備開發(fā)中,往往需要保存一些掉電不易失性的數(shù)據(jù),如果
    發(fā)表于 12-10 07:42

    用戶設(shè)置的參數(shù)動(dòng)態(tài)信息保存方法有哪些呢

    保存到片內(nèi)flash,但是對flash的讀寫是按頁操作,對于保存一些少量的數(shù)據(jù)來說并不合算。第二種:系統(tǒng)掉電
    發(fā)表于 02-10 07:44

    keil如何燒錄data flash數(shù)據(jù)的?

    的 ? 2、keil如何燒錄data flash數(shù)據(jù)的? 3、ICP如何燒錄data flash數(shù)據(jù)的?看上圖選擇的是APROM而非data flash 4、如何判斷
    發(fā)表于 06-13 07:48

    單片機(jī)掉電檢測與保存

    本文主要介紹了單片機(jī)掉電檢測與保存方法,單片機(jī)正常工作時(shí),因某種原因造成突然掉電,將會(huì)丟失數(shù)據(jù)存儲(chǔ)器(RAM)的數(shù)據(jù)。用法拉電容可從容實(shí)
    發(fā)表于 01-14 11:51 ?1w次閱讀
    單片機(jī)<b class='flag-5'>掉電</b>檢測與<b class='flag-5'>保存</b>

    如何掉電保存數(shù)據(jù)到EEPROM

    我想在掉電時(shí)保存數(shù)據(jù)(3 個(gè)字節(jié))到 EEPROM 中,用 BOD 掉電檢測,不知怎樣使用。望高手指點(diǎn): 1. BOOT 區(qū)設(shè)置好 BO
    發(fā)表于 01-06 00:14 ?51次下載

    HarmonyOS應(yīng)用開發(fā):保存到變量

    一、創(chuàng)建項(xiàng)目 二、示例代碼 // 變量始終保存在內(nèi)存中g(shù)etNum:function () { let num = 100; function add() { num += 1
    的頭像 發(fā)表于 06-07 10:23 ?854次閱讀
    HarmonyOS應(yīng)用開發(fā):<b class='flag-5'>保存到</b><b class='flag-5'>變量</b>

    讀串口保存到EEPROM120-120字.rar

    讀串口保存到EEPROM120-120字.rar文件下載
    發(fā)表于 12-06 16:28 ?0次下載

    單片機(jī)掉電檢測與數(shù)據(jù)掉電保存方案

    單片機(jī)掉電檢測與數(shù)據(jù)掉電保存方案
    的頭像 發(fā)表于 09-18 10:59 ?4002次閱讀
    單片機(jī)<b class='flag-5'>掉電</b>檢測與數(shù)據(jù)<b class='flag-5'>掉電</b><b class='flag-5'>保存</b>方案