1. 存储系统简介;
两个函数,一个宏:
bool cm_loadparam(void *buff, uint page)
void cm_factory(void *buff, uint page)
#define MAX_CM_PAGE 5 //根据需要定义大小,用于定义存储用的最大page数
2. 加载流程
上电后,系统会加载指定数量(MAX_CM_PAGE)个page的数据,并判断存储的数据是否有效,无效则赋出厂参数值(在函数cm_factory()中赋相应page的出厂值);
if (Page参数有效)
{
if (cm_loadparam(Page) == false)//数据有误
{
cm_factory(Page);
}
}
else
{
cm_factory(Page);
}
3. 添加自定义存储
(1) sdk默认使用了扇区0存储部分数据,用户使用时可以自定一个空闲扇区存储自己的数据,注意识别系统已经使用的扇区。如下,新增存储区 PAGE4
(自定可以在api_cm.h中配置)
(2)在读写自定义保存数据的时候,需要根据使用的扇区修改page,自定义page4读写函数如下:
#define userdefine_read8(a, b) b = cm_read8(PAGE4(a))
#define userdefine_write8(a, b) cm_write8(PAGE4(a), b)
#define userdefine_read16(a, b) b = cm_read16(PAGE4(a))
#define userdefine_write16(a, b) cm_write16(PAGE4(a), b)
#define userdefine_read32(a, b) b = cm_read32(PAGE4(a))
#define userdefine_write32(a, b) cm_write32(PAGE4(a), b)
#define userdefine_read(a, b, c) cm_read(a, PAGE4(b), c)
#define userdefine_write(a, b, c) cm_write(a, PAGE4(b), c)
#define userdefine_sync_do() cm_sync()