Hi3520D 芯片的内置CMOS最多只有5个字节可以用,但是我需要保存的数据有很多。

其中一个解决办法是:可以把其他需要保存的数据放到一个配置文件中。每次写的时候写到配置文件,用的时候再从配置文件读出数据即可。

用文件写:

 static INT CmosExtWrite(U16 RegOffset, U8 *Buffer, U32 Size)
{
int i;
FILE *fp;
int ret = ;
fp = fopen(CMOS_FILE, "rb+");
if(fp == NULL)
{
PrintInformaton("%s not exist , will create it \n", CMOS_FILE);
return -;
} if(Cmos_Flag == )
{
ret = fread(file_context, sizeof(file_context), , fp);
Cmos_Flag = ; //已读
} memcpy(file_context + RegOffset, Buffer, Size); fseek(fp, ,SEEK_SET);
fwrite(file_context, sizeof(file_context), , fp);
fflush(fp); fclose(fp); #if 0
printf("CmosExtWrite success!!! RegOffset:0x%x\n", RegOffset); for(i = ; i < Size; i++)
{
printf("Buffer[%d]: 0x%x\n", i, *(Buffer + i));
}
#endif return ; }

用文件读:

 static INT CmosExtRead(U16 RegOffset, U8 *Buffer, U32 Size)
{
int i;
FILE *fp;
fp = fopen(CMOS_FILE, "ab+"); if(fp == NULL)
{
PrintInformaton("%s not exist , will create it \n", CMOS_FILE);
return -;
} if(Cmos_Flag == )
{
fread(file_context, sizeof(file_context), , fp); Cmos_Flag = ; //已读
} if(RegOffset > )
{
return -;
} memcpy(Buffer, file_context + RegOffset, Size); fclose(fp); #if 0
printf("CmosExtRead success!!! RegOffset:0x%x\n", RegOffset); for(i = ; i < Size; i++)
{
printf("Buffer [%d]: 0x%x \n", i, *(Buffer + i));
}
#endif return ;
}

用文件模拟CMOS保存数据的更多相关文章

  1. hive分桶 与保存数据的方式

    创建分桶的表 create table t_buck(id int ,name string) clustered by (id ) sorted by (id) into 4 buckets  ; ...

  2. Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制

    一.需求 做一个类似QQ登录似的app,将数据写到ROM文件里,并对数据进行回显. 二.截图 登录界面: 文件浏览器,查看文件的保存路径:/data/data/com.amos.datasave/fi ...

  3. matlab结构体形式保存数据生成.mat文件< 转>

    2015年 参加天池大数据竞赛     为了建立模型,打算基于matlab使用Random Forest Algorithm的工具包 该工具包我在此分享给大家,http://yunpan.cn/cVX ...

  4. iOS 写入文件保存数据的方式

     在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeye ...

  5. 八,ESP8266 文件保存数据

    应该是LUA介绍8266的最后一篇,,,,,,下回是直接用SDK,,然后再列个12345.......不过要等一两个星期,先忙完朋友的事情 前面几篇 用AT指令版本的 一,  http://www.c ...

  6. 八,ESP8266 文件保存数据(基于Lua脚本语言)

    https://www.cnblogs.com/yangfengwu/p/7533845.html 应该是LUA介绍8266的最后一篇,,,,,,下回是直接用SDK,,然后再列个12345...... ...

  7. Android 中保存数据到文件中

    1.在安卓开发中,会遇到保存数据到手机中以及从手机中获取数据的情况 /** * 把数据存放到手机内存中 * * @param number * @param password * @return */ ...

  8. MATLAB实例:新建文件夹,保存.mat文件并保存数据到.txt文件中

    MATLAB实例:新建文件夹,保存.mat文件并保存数据到.txt文件中 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 用MATLAB实现:指定路径下 ...

  9. C++ 基于STL的演讲比赛流程管理系统(sort算法+小型算法(accumulate)+内建函数对象+string字符串拼接+字符串截取+多个容器基础操作+与用户交互+文件的读写+保存+重建+整体文件数据的清空)

    1 /* 2 比赛规则: 3 学校举行一演讲比赛,共12个人参加,比赛两轮,第一轮为淘汰赛 第二轮为决赛 4 每名选手都有对应的编号:如10001~10012 5 比赛方式:分组比赛 每组6人 6 第 ...

随机推荐

  1. 嵌入式之Linux系统裁剪和定制---(kernel+busyboxy+dropbear+nginx)

    本文将介绍通过完全手动定制内核,在此基础上添加 busybox ,并实现远程登陆,使裁剪的 linux 能够运行 nginx . 在此之前介绍一下 linux 系统的启动流程. linux系统启动流程 ...

  2. jQuery 效果 —— 隐藏和显示

    jQuery 效果 -- 隐藏和显示 1.隐藏和显示 (1)在jQuery中我们可以使用hide()和show()分别隐藏和显示HTML元素: //隐藏元素 $("button") ...

  3. java中正则表达式基本用法

    正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为 ...

  4. 【OOAD】OOAD概述

    什么是面向对象? OOP:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构.OOP 的一条基本原则是计算机程序是由单个能够起到子程序 ...

  5. Java vs. C#

    Java Program Structure C# package hello; public class HelloWorld {    public static void main(String ...

  6. php总结 --- 4. 对象

    一. 恩聪 设计模式 因为php本身的问题,所以他能做的模式有限,就在这边列出了

  7. [WebLoad] 使用WebLoad进行Web Application 性能测试的流程

    1. 打开WebLOAD IDE录制或编写一个脚本文件,成功后会生成一个后缀为“.wlp”的文件. 2. 打开WebLOAD Console创建一个Load Template,创建过程当中需要添加“. ...

  8. python3 字典相关函数

    python版本3.5 #Author by Liguangbo#_*_ coding:utf-8 _*_'''info={'No.1':'ligb','No.2':'donglx','No.3':' ...

  9. setInterval和setTimeout的区别

    setInterval会每隔指定的毫秒数后反复执行指定代码. setTimeout只会在指定的毫秒数后执行一次指定代码. setInterval的用法: // 创建(创建后即开始计时) var int ...

  10. JavaScript的Date对象

    整理了一些JavaScript时间的对象,如下所示: toLocaleString()得到当前的年月日和时间的字符串 toLocaleTimeString() 得到当前的时间字符串 toLocaleD ...