- 分区初始化
- 以下需要放在开机的第一个界面(page0)上的全局代码
- fd_alloc语句一个分区在一个APP中只能执行一次,再次执行会创建一个新的分区,分区是固化存储的,也就是说掉电并不丢失
- 因此,请不要再每个页面都去调用fd_alloc语句进行初始化
int fdn;
if (fd_info(0,0)==0){ //当前fd分区数量=0表示分区没有被初始化
fdn=fd_alloc(16,4); //分配一个16*4096=65536 64K的存储区,每条记录4字节
//----此时如果申请正常,fdn应该为0(0~3分别对应4个分区);
}
int bs;
bs=newbin(4); //建立一个bin数组
defbin(bs,0,"00 01 00 02");//初始化bin内容,当然也可以使用setbin、setv语句进行赋值
fd_add(0,bs);//0号分区添加一条记录
//或者:
setv(bs,0,4,0x12345678);
fd_add(0,bs);//再添加一条记录
freestr(bs); //最后不要忘记释放内存
echo("\r\n分区数量:");echo(fd_info(0,0));
echo("\r\n当前分区大小:");echo(fd_info(0,2));echo(" 单位:4K");
echo("\r\n当前分区数据大小:");echo(fd_info(0,3));echo(" 单位:字节");
echo("\r\n当前分区记录数:");echo(fd_info(0,5));echo(" 单位:条");
int i;
int count;
int bs;
bs=newbin(4); //建立一个bin数组
count=fd_info(0,5); //获取数据总条数
for (i=0;i<count;i++){
fd_get(0,i,bs); //获取0分区的i号数据到bs中
echo (i+":");
echo(int2hex(getv(bs,0,4),4);
echo("\r\n");
}
freestr(bs); //最后不要忘记释放内存
fd_clear(0); //清空