用文件模拟CMOS保存数据
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保存数据的更多相关文章
- hive分桶 与保存数据的方式
创建分桶的表 create table t_buck(id int ,name string) clustered by (id ) sorted by (id) into 4 buckets ; ...
- Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制
一.需求 做一个类似QQ登录似的app,将数据写到ROM文件里,并对数据进行回显. 二.截图 登录界面: 文件浏览器,查看文件的保存路径:/data/data/com.amos.datasave/fi ...
- matlab结构体形式保存数据生成.mat文件< 转>
2015年 参加天池大数据竞赛 为了建立模型,打算基于matlab使用Random Forest Algorithm的工具包 该工具包我在此分享给大家,http://yunpan.cn/cVX ...
- iOS 写入文件保存数据的方式
在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeye ...
- 八,ESP8266 文件保存数据
应该是LUA介绍8266的最后一篇,,,,,,下回是直接用SDK,,然后再列个12345.......不过要等一两个星期,先忙完朋友的事情 前面几篇 用AT指令版本的 一, http://www.c ...
- 八,ESP8266 文件保存数据(基于Lua脚本语言)
https://www.cnblogs.com/yangfengwu/p/7533845.html 应该是LUA介绍8266的最后一篇,,,,,,下回是直接用SDK,,然后再列个12345...... ...
- Android 中保存数据到文件中
1.在安卓开发中,会遇到保存数据到手机中以及从手机中获取数据的情况 /** * 把数据存放到手机内存中 * * @param number * @param password * @return */ ...
- MATLAB实例:新建文件夹,保存.mat文件并保存数据到.txt文件中
MATLAB实例:新建文件夹,保存.mat文件并保存数据到.txt文件中 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 用MATLAB实现:指定路径下 ...
- C++ 基于STL的演讲比赛流程管理系统(sort算法+小型算法(accumulate)+内建函数对象+string字符串拼接+字符串截取+多个容器基础操作+与用户交互+文件的读写+保存+重建+整体文件数据的清空)
1 /* 2 比赛规则: 3 学校举行一演讲比赛,共12个人参加,比赛两轮,第一轮为淘汰赛 第二轮为决赛 4 每名选手都有对应的编号:如10001~10012 5 比赛方式:分组比赛 每组6人 6 第 ...
随机推荐
- ThinkPHP 3.2 模板中的Angularjs 的变量{{$first}} 无法被解析
ThinkPHP 3.2 模板中的Angularjs 的变量"{{$first}}" 无法被解析, 模板解析冲突,例如在angularjs 的变量"{{$first}}& ...
- javaSE之Object及hashcode等相关知识
object: package javaBasic; public class TestObject { public static void main(String[] args) { // TOD ...
- 纠错工具之 - Proovread
BioInf-Wuerzburg/proovread - Github 主要是来解读 proovread 发表的文章,搞清楚它内在的原理. Proovread,这个工具绝对没有你想的那么简单,它引入了 ...
- stash存储
比如我的fsm_ngh分支,被a修改了,可是我本地还有没有提交的东西,就不能切换分支也不能下拉,也不能直接上传,否则分支会混乱. 这个时候stash的优点来了,先把你修改的暂存隐藏起来,然后pull远 ...
- Windows Store App 文件选取器
使用文件选取器可以访问除上面介绍的"应用程序存储"和"用户库"两个位置之外的本地文件或者文件夹.文件选取器是应用与系统进行交互的一个接口,通过文件选取器可以在应 ...
- BZOJ2733 [HNOI2012]永无乡
直接平衡树启发式合并就好了...貌似是个很高端的东西.. 貌似可以证明splay的启发式合并是均摊$O(nlogn)$的...而其他平衡树都不行,所以其他的复杂度都是$O(nlog^2n)的$的 所以 ...
- 介绍开源的.net通信框架NetworkComms框架之七 数据加密通信
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是 ...
- Linux有用命令
1.nohup命令 使用方法:nohup ./run.sh 作用:忽略所有挂断(SIGHUP)信号,不挂断地运行命令
- C#驱动及应用
一,使用开源客户端:StackExchange.Redis 二,使用方法: 1,获取访问redis数据库连接,代码如下. /// <summary> /// 获取访问redis数据 ...
- CSS3轻松实现清新 Loading 效果
至今HTML5中国已经为大家分享过几百种基于 CSS3 的Loading加载动画,效果酷炫代码简洁,非常值得学习借鉴;今天就先给大家分享两个常用的CSS3的Loading的案例. 第一种效果: HTM ...