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

本文介绍了嵌入式系统的存储管理系统,包括CM模块的加载流程、出厂参数设置,以及如何通过API扩展自定义存储区PAGE4的操作。重点讲解了数据加载验证和自定义扇区使用的方法,适合了解嵌入式存储管理的开发者。
摘要由CSDN通过智能技术生成

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值