关于中科蓝讯SDK数据掉电保存

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()


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部