博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法(3) flash存储多包大数据
阅读量:1858 次
发布时间:2019-04-26

本文共 1268 字,大约阅读时间需要 4 分钟。

1:说明

在开发项目过程中,经常用到flash存数据,但有时数据长度是确定的,比如说用户参数配置之类的,但有时有的数据长度是不确定的,如长度多包大数据,每包格式一样,但总数据量可变的数据

2:执行步骤

2.1 在结构体中确定好的长度数据:

(1)前期定义:

typedef struct{
uint16_t data_len; uint8_t data[1000];}STU_BOOD_METER; //
STU_BOOD_METER STU_Bloodmeter;//结构体申明#define DATA_HEAD_2g    0xCCCCCCCC//用于确定是否flash写过数据#define MAX_BUF_LEN ((sizeof(STU_Bloodmeter )+3)/4)//结构体最大长度

前面两个字节定义长度,后面定义数据

(2):读取数据操作**

在这里插入图片描述
(3)写入数据操作
用标志位save_2g_flash_fla,

uint8_t save_2g_flash_fla =0;void set_save_2g_flash(void){
save_2g_flash_fla=1;}void task_Write_2g_flash(void){
if(save_2g_flash_fla==0) return; save_2g_flash_fla =0; uint32_t data_head= DATA_HEAD_2g; Flash_Erase_Page(FLASH_QUEUE_ADDR/PAGE_SIZE);//HIS_ADDR RSV1_ADDR Flash_Write_World((uint32_t *)FLASH_QUEUE_ADDR,&data_head,1); Flash_Write_World((uint32_t *)(FLASH_QUEUE_ADDR+4),(uint32_t *)&STU_Bloodmeter.data_len,MAX_BUF_LEN/4); }

(4)得到用户数据后,存于结构体

在这里插入图片描述
每次得到数据加上偏移地址,后调用set_save_2g_flash(),存于flash

2.2 在结构体中

typedef struct{
char* root_ca; char* client_cer; char* client_p_key;}SSL_CER_FILE;

用g_ssl_file.root_ca = (char*)malloc(user_para.ca_cer_len+1); // 分配内存

nvs_read_ssl_data_from_flash(1,g_ssl_file.root_ca);//&user_para.ca_cer_len); /* 读取证书 */
用malloc得到数据,这样结构体就没必要定义确定的长度,但需要确认flash能存多大数据

可以加入QQ群:687360507

与大伙沟通交流,技术在于分享而进步

转载地址:http://qvgyf.baihongyu.com/

你可能感兴趣的文章
方格分割(DFS)
查看>>
取位数
查看>>
最大公共子串
查看>>
日期问题
查看>>
全国大学生英语竞赛C类
查看>>
Flink1.7.2 sql 批处理示例
查看>>
直播间搭建需要避免的三点要素,开发直播app软件并不简单 ...
查看>>
使用 Phan 为你的 PHP 项目保驾护航 - 代码静态扫描 ...
查看>>
你与一份好简历之间的距离
查看>>
像数据科学家一样思考:12步指南(下)
查看>>
2.Makefile文件中包含哪些规则?
查看>>
[python作业AI毕业设计博客]大数据Hadoop工具python教程1-HDFS Hadoop分布式文件系统 ...
查看>>
阿里云ECS服务器的搭建
查看>>
简历上的项目经历怎么写 ?这 3 条原则不可忽视 ! ...
查看>>
线下活动预告:Elasticsearch 成都 Meetup(3.10)
查看>>
Linux基础命令---显示用户名logname
查看>>
SAP CRM系统订单模型的设计与实现
查看>>
在编写python代码时,小白最容易犯的十几个错误 ! ...
查看>>
为什么存储器会成为阻碍AI发展的难题?
查看>>
好程序员分享居中一个float元素
查看>>