写过程: 每次会读写一条数据,然后再 修改一个pointer(4byte),指向最后一条数据。
使用读写保护机制,即用system_param_load()读,用system_param_save_with_protect()写,
使用1024KB flash,支持云端升级,
我看了文档 2A-ESP8266__IOT_SDK_User_Manual__CN_v1.3.0.pdf,1024K分为两半,我的user1.bin小于240KB,
是不是数据存储可以从:4K+240K开始存储?即 0x3D开始?system_param_save_with_protect(0x3D, void *data, 123)
----------------
但这里先假定从4K+492KB开始存储,即 0x7C开始,
#define DATA_RECORD_POINTER_ADDR 0X7C // 数据pointer 位置,固定, 为了保存4byte数据,要使用3*4 KB的空间?
#define DATA_RECORD_START_ADDR 0X7F // 数据 起始位置
第1条数据 addr 0x7F, system_param_save_with_protect(0x7F, void *data, 123)
第2条数据 DATA_RECORD_START_ADDR+3=0x82, system_param_save_with_protect(0x82, void *data, 123)
第3条数据 DATA_RECORD_START_ADDR+6=0x85,system_param_save_with_protect(0x85, void *data, 123)
。。。
第100条数据的addr是 0x7F + 100*3=0x1AB, system_param_save_with_protect(0x1AB, void *data, 123)
为了保存 123byte的数据,使用了3*4 KB的空间,100条数据共使用100*12KB空间,
好像不对,请指导怎么规划这种存储,谢谢!Statistics: Posted by Goland — Wed Oct 28, 2015 5:13 pm
]]>