sensor关键数据备份流程
来源:互联网 发布:高分辨率数据 编辑:程序博客网 时间:2024/06/16 17:09
由于sensor硬件本身设计缺陷导致核心数据在掉电时导致数据丢失,软件上通过系统备份能降低这种风险,杜绝还是需要厂商更改硬件。
理论上出厂后就备份该文件信息,以后使用过程中,突然掉电的情况发生,也可以及时的将备份文件回写到sensor中,避免失效模式发生。
代码流程如下:
核心问题:
备份文件需要一个安全的区域
Qualcomm系统efs文件系统只有在专门工具下才可以清理掉,因此选用该区域作为备份区域。该区域位于moderm端,与应用处理器通信的方式有rpc方式。
oncRpc方式是qualcomm公司基于smem原理设计的封闭式的通讯方式。
使用方法是:
1,Ap中调用proc_comm.h中
Int msm_proc_comm(unsigned cmd,unsigned *data1,unsigned *data2)函数
Cmd为高通定义的资源。两个参数分别为unsigned类型,表示4个byte的数据,总共64bits,是bp和ap共享的部分,两端可以任意读写。
2,Bp中调用smem_pcmod.h中
SMEM_PROC_COMM_REGISTER_CMD(cmd,func,inter)函数
注册ap端rpc调用的cmd命令,在func中执行处理相关参数进行读写。
本次备份文件7byte,因此需要多次传递才能完成rpc通讯任务,我采用一个参数做传输参数,一个参数作为控制参数的方式完成通讯。
3,Bp端将传送过来的内存写入efs文件系统:
调用efs_open相关函数可以完成操作。
Bp参考代码
/**************bma_number control valid*******************************/
if((read_write_mode<0)||(read_write_mode>=14)){
return FALSE;
}
/**************read mode********************************************/
if((read_write_mode>=0)&&(read_write_mode<7)){
buf[0] =0;
file_handle = efs_open(BMA_REG_FILE,O_RDONLY,0777);
if(file_handle == -1){
*bma_state = 0;
}else{
memset(buf,0,28);
read_size = efs_read(file_handle,buf,28);
efs_close(file_handle);
if(read_size<=0){
*bma_state = 0;
}else{
i = *bma_number;
*bma_state=(buf[i*4+0]<<24)|(buf[i*4+1]<<16)|(buf[i*4+2]<<8)|buf[i*4+3];
}
}
}
/**************write mode******************************************/
if((read_write_mode>=7)&&(read_write_mode<14)){
i = read_write_mode-7;
bma_buf[i*4+0] = (*bma_state&0xff000000)>>24;
bma_buf[i*4+1] = (*bma_state&0x00ff0000)>>16;
bma_buf[i*4+2] = (*bma_state&0x0000ff00)>>8;
bma_buf[i*4+3] = (*bma_state&0x000000ff);
}
if(read_write_mode == 13){
file_handle = efs_open(BMA_REG_FILE,O_CREAT|O_RDWR,0777);
if(file_handle == -1){
}else{
write_size = efs_write(file_handle,bma_buf,28);
efs_close(file_handle);
}
}
- sensor关键数据备份流程
- sensor:mtk-hwm-sensor 数据流程
- 企业数据备份流程
- Sensor 代码流程分析
- sensor工作流程
- Lighting sensor 工作流程
- mtk的sensor流程
- Sensor 代码流程分析
- Android Sensor流程
- Android6.0 Sensor流程
- Sensor 代码流程分析
- 关键表中数据备份防丢失的一个方法
- android——Seneor(获得数据值流程以及同时监听多个sensor)
- 高通sensor架构实例分析之三(adsp上报数据详解、校准流程详解)
- android g-sensor相关流程
- Android中G-Sensor流程
- android中Sensor 工作流程
- android中Sensor 工作流程
- WEB-QTP随想录—要自知
- [读书笔记]Binary Hancks(2) livepatch在X86下的实践
- 菲波拉契数列
- 服务器产生的脚本与手工添加的脚本冲突
- NSLog 一些常用的数据类型 CGRect NSArray等
- sensor关键数据备份流程
- Ubuntu 安装rpm包的方法
- Tomcat调试信息缓冲修改
- IOS二维码拍照相机自定义界面实例
- Logger
- solaris新建用户
- 《Axure 6.5超短篇笔记》——“部件的范围”条件非矩形形状
- VLC简介及使用说明
- android取得系统时间