(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文章
1148浏览量
86486 -
编译器
+关注
关注
1文章
1673浏览量
52102 -
变量
+关注
关注
0文章
616浏览量
29629
发布评论请先 登录
相关推荐
热点推荐
linux驱动通过uboot的变量实现掉电记忆
起因 今天项目有个新需求就是让屏幕亮度在上电以后保持上次最后设置的值 我们的项目屏幕的初始化是在kernel里而不是uboot,kernel的驱动的加载是在根文件
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
在keil里如何烧录data flash数据的?
的 ?
2、在keil里如何烧录data flash数据的?
3、在ICP里如何烧录data flash数据的?看上图选择的是APROM而非data flash
4、如何判断
发表于 06-13 07:48
单片机掉电检测与保存
本文主要介绍了单片机掉电检测与保存方法,单片机在正常工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里的数据。用法拉电容可从容实
发表于 01-14 11:51
•1.1w次阅读
如何掉电保存数据到EEPROM
我想在掉电时保存数据(3 个字节)到 EEPROM 中,用 BOD 掉电检测,不知怎样使用。望高手指点: 1. 在 BOOT 区设置好 BO
发表于 01-06 00:14
•51次下载
HarmonyOS应用开发:保存到变量
一、创建项目 二、示例代码 // 变量始终保存在内存中getNum:function () { let num = 100; function add() { num += 1
如何让变量在系统掉电时都保存到EEPROM里
评论