SimonLiu的ESP8266与AliOS Things 学习教程系列之十二:Flash操作之KV组件(Key-Value键值组件)
欢迎加入交流群: ESP8266 AliOS Things 群 号: 107723112
系列文章目录:
SimonLiu的ESP8266与AliOS Things 学习教程系列目录
对于flash介质而言,它是有一定的擦写次数限制的。如果针对介质上一个固定地址进行重复的擦除、写入,将会导致该区域的使用寿命降低,甚至出现介质损坏的情况。AliOS Things 的KV组件的写平衡(磨损平衡)特性就是通过异地更新、垃圾回收等策略来平衡flash介质各个存储区块的磨损程度,以避免某些“特定”存储区块因过度使用而形成坏区,从而延长flash的使用寿命。
以上文字来自博文:AliOS Things KV组件的写平衡特性
举例说,ESP8266的Flash操作是这样的:每次写入之前,需要先擦除,每次需要擦除一个扇区(4K字节),写入需要4字节对齐。一般来说我们存储用户数据不需要写入4K那么多的数据,可能只有几十个字节,但是每次写入都要擦除4K对Flash寿命是有明显影响的。
AliOS Things的KV组件替我们做好了这些事情,一次擦除以后,可以分别写入不同的位置。具体写哪里擦除哪里,AliOS Things已经为ESP8266等芯片做好了适配,你只需要考虑写入的key和value就行了。
乐鑫实际上也为ESP8266和ESP32提供了类似的组件,称为NVS组件,不过操作上比KV组件多了打开、确认写入、关闭等操作。KV组件使用起来更方便。
KV写入代码:
char option[8] = "auto";
int len = strlen(option);
aos_kv_set("mode", option, len, 1);
KV读取代码:
char option[8];
int len = 8;
aos_kv_get("mode", option, &len);
参考链接:
AliOS Things KV组件的写平衡特性-云栖社区-阿里云
【Alios-things笔记】EMW3060 Flash用户数据存储KV - 詆調 - CSDN博客
AliOS-Things–EMW3060–KV - 似水流年 - CSDN博客
相关文章
- react开发教程(三)组件的构建
- android 四大组件Broadcast Receiver
- .NET开源Protobuf-net组件修炼手册
- vue-cli3父子组件传值
- Ant Design Of Vue 组件库中获取 <a-range-picker>日期滑块选择器的参数
- 阿里 双11 同款流控降级组件 Sentinel Go 正式 GA,助力云原生服务稳稳稳
- 高复用率的RTSPClient组件EasyRTSPClient设计流程概述
- 获取组件坐标系
- 微信小程序----icon组件
- 【安富莱专题教程第7期】终极调试组件Event Recorder,各种Link通吃,支持时间和功耗测量,printf打印,RTX5及中间件调试
- 【安富莱专题教程第5期】工程调试利器RTT实时数据传输组件,替代串口调试,速度飞快,可以在中断和多任务中随意调用
- [SF] Symfony 组件 BrowserKit 原理
- ShellBrowser WPF 组件 6.3.1 Crack
- 腾讯低代码导航组件实现正文显示效果
- 5.11.6 jmeter组件-监听器—服务器性能监控PerfMon Metrics Collector
- 声纹可视化工具:wavesurfer.js---在Vue中使用音频声纹可视化插件wavesurfer.js【已封装成组件有完整demo实例附完整代码】
- Taro React组件开发(3) —— RuiRate 评论评分