bind全局存储区与固化存储区

两种数据区都是使用KV结构的,也就是常说的key==>value 键值对结构,也就是说这种数据区的大小有两个限制,一是键值对的数量限制,二是用于存储字符串的存储区限制;

数据区实际上是由键值对存储区和字符串存储区两个部分构成,都有单独的配置。

1、字符串存储区

全局字符串存储区与页面内的字符串存储区无论存储结构和大小配置完全一致,在这里就不再讲述。

2、全局存储区键值对

//以下是SHMICTRL-V1/V2/V3系列芯片对应的配置:
#define DEFMAXKVNODE 64  //最大的 KV节点数

也就是说bind_set语句中设置的不同key的变量不能超过64个,需要做界面间参数传递的,请在使用后使用bind_del语句删除。

3、数据绑定的数量限制

//以下是SHMICTRL-V1/V2/V3系列芯片对应的配置:
#define DEFMAXKVBIND 96    //最大bind绑定结构的数量

这个数量是指bind()语句设置绑定关系的数量,由于允许一对多关系,因此设置数量比KV键值对的数量稍多;

固化存储区存储结构

固化存储区根据flash的特性,采用flash的一块(4K)为单位来存储数据,并且使用RAID0算法完成固化存储区的可靠性,当flash擦除写入时掉电不会引发数据丢失。

固化存储区支持64个键值对和3319个字符串存储;由于固化存储区是从全局数据区提取出来的,字符串提取生成,因此不再是16字节一块,而是前后直接累积存放,也就是累积总长度不超过3319即可(需要注意0字符结尾也算在长度内);