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博客

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值