0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何让变量在系统掉电时都保存到EEPROM里

麦辣鸡腿堡 来源:Microchip微芯 作者:Microchip微芯 2023-01-22 16:18 次阅读

(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

    文章

    1010

    浏览量

    81400
  • 编译器
    +关注

    关注

    1

    文章

    1618

    浏览量

    49047
  • 变量
    +关注

    关注

    0

    文章

    613

    浏览量

    28328
收藏 人收藏

    评论

    相关推荐

    linux驱动通过uboot的变量实现掉电记忆

    起因 今天项目有个新需求就是屏幕亮度在上电以后保持上次最后设置的值 我们的项目屏幕的初始化是kernel而不是uboot,kernel的驱动的加载是根文件
    的头像 发表于 07-04 19:17 1059次阅读

    Cyusb3014如何将固件中的数据保存到Cyusb附带的EEPROM中?

    你好,我正在为 Cyusb3014 开发固件。 我想将固件中的数据保存到 Cyusb 附带的 EEPROM 中,然后将其插入主机,通过上层计算机从 EEPROM 读取数据。 我该怎么办? 谢谢
    发表于 02-27 06:18

    ATmega8掉电写数据如EEProm编程实例

    各位大侠:我想用ATmega8写个掉电时把数据保存到ATmega8内部的EEprom内呢。小弟实力有限,还要麻烦各位大侠多多指点。小弟先谢谢了!
    发表于 08-06 14:46

    基于wince系统工控机掉电保护功能设计

    秒钟。侧可以在有外电时把实时性比较高的数据保存在内存DDR。获得掉电发生时,超级电容供电的2秒钟,把内存的一些重要的数据和现场运行状态
    发表于 08-16 15:49

    实现数据的掉电保存eeprom更好还是flash更好呢?

    想要实现数据的掉电保存,现在由两种方案,一种是硬件上加上eeprom,一种是用flash配置为eeprom。但是看了相关资料,flash只支持块擦除,而
    发表于 09-17 15:06

    请问ADAU1452掉电保存或回写EEPROM的问题

    最近在摸索音效处理,想从ADAU1452开发入手,但是不知道能不能在仅有ADAU1452+AD1938+EEPROM配置下完成掉电音量保存,gpio状态保存(例如声道选择保持,led状
    发表于 04-20 22:48

    如何在掉电检测中保存数据到EEPROM

    想在掉电保存数据(3个字节)到EEPROM中,用BOD掉电检测,怎么操作?
    发表于 03-16 09:57

    STM32系统掉电保存数据的方法是什么

    STM32系统掉电保存数据的方法嵌入式设备开发中,往往需要保存一些掉电不易失性的数据,如果
    发表于 12-10 07:42

    用户设置的参数动态信息保存方法有哪些呢

    保存到片内flash,但是对flash的读写是按页操作,对于保存一些少量的数据来说并不合算。第二种:系统掉电
    发表于 02-10 07:44

    keil如何烧录data flash数据的?

    的 ? 2、keil如何烧录data flash数据的? 3、ICP如何烧录data flash数据的?看上图选择的是APROM而非data flash 4、如何判断
    发表于 06-13 07:48

    单片机掉电检测与保存

    本文主要介绍了单片机掉电检测与保存方法,单片机正常工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)的数据。用法拉电容可从容实
    发表于 01-14 11:51 1w次阅读
    单片机<b class='flag-5'>掉电</b>检测与<b class='flag-5'>保存</b>

    如何掉电保存数据到EEPROM

    我想在掉电保存数据(3 个字节)到 EEPROM 中,用 BOD 掉电检测,不知怎样使用。望高手指点: 1. BOOT 区设置好 BO
    发表于 01-06 00:14 51次下载

    HarmonyOS应用开发:保存到变量

    一、创建项目 二、示例代码 // 变量始终保存在内存中getNum:function () { let num = 100; function add() { num += 1
    的头像 发表于 06-07 10:23 838次阅读
    HarmonyOS应用开发:<b class='flag-5'>保存到</b><b class='flag-5'>变量</b>

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

    读串口保存到EEPROM120-120字.rar文件下载
    发表于 12-06 16:28 0次下载

    单片机掉电检测与数据掉电保存方案

    单片机掉电检测与数据掉电保存方案
    的头像 发表于 09-18 10:59 3780次阅读
    单片机<b class='flag-5'>掉电</b>检测与数据<b class='flag-5'>掉电</b><b class='flag-5'>保存</b>方案