NVRAM 的读写方法 NVRAM 的添加方法 以闹钟INLINE 菜单为例 步骤如下: 1.在Nvram_common_defs.h 文件中添加LID 选项到nvram_lid_co mmapp_enum 枚举中 NVRAM_EF_MY_LID, /* Add LID with its compile optoin in the tail comment */ NVRAM_EF_LAST_LID_COMMAPP } nvram_lid_commapp_enum; 在MTK平台中,NVRAM(Non-Volatile Random Access Memory)是一种持久性的存储机制,用于存储不依赖电源保持的数据。本文将详细讲解如何在MTK系统中进行NVRAM的读写操作以及如何添加新的NVRAM数据项。 我们要了解NVRAM的基本操作。读写NVRAM主要通过`ReadValue`和`WriteValue`函数来完成。这些函数允许程序读取或修改存储在NVRAM中的特定数据项。在初始化任务代码中,`nvram_external_read_data`函数用于从NVRAM中读取数据,而修改后的数据需要调用相应的函数进行更新,并可能需要同步更新编译版本号。 添加新的NVRAM数据项涉及以下步骤: 1. **定义LID**:在`Nvram_common_defs.h`文件中,你需要在`nvram_lid_commapp_enum`枚举中添加一个新的LID(逻辑ID)。例如,`NVRAM_EF_MY_LID`表示你自定义的LID,通常会在注释中提供编译选项。 2. **定义数据项**:在`nvram_user_defs.h`文件中,你需要定义新数据项的LID、大小(SIZE)和总数(TOTAL)。对于“linear-fixed”类型,TOTAL是记录总数,SIZE是每个记录的大小;而对于“transparent”类型,TOTAL通常是1,SIZE是整个区块的大小。注意,SIZE必须是偶数对齐,这是由于Flash设备驱动的要求。 3. **创建记录**:在`logical_data_item_table_cust`结构体数组中,按照LID、SIZE、TOTAL和默认值(通常是`NVRAM_EF_ZERO_DEFAULT`或`NVRAM_EF_FF_DEFAULT`)的顺序添加新的记录。确保匹配VER字段与对应的版本号宏。 4. **默认值**:将默认值存储在一个全局数组中,并将其引用添加到`custpack_nvram_ptr`,确保顺序与数据项定义一致。 5. **初始化和更新**:在代码执行时,使用`ReadValue`和`WriteValue`函数读写NVRAM。在任务初始化时,调用`nvram_external_read_data`读取数据,修改后需更新并可能需要调整编译版本号。 注意事项: - 数据项的SIZE应为偶数且不超过65535,以满足Flash设备驱动的要求。 - “linear-fixed”类型的记录数最大为65535,但实际可用数量可能因Flash空间限制而减少。 - 为了安全,建议设置如下的限制:SIZE最大480,TOTAL最大300,用户可配置的数据项最大25。 在与NVRAM交互的原语中,需要注意以下几点: 1. 对于透明数据项,发送读/写请求时,'para'域必须设为1。 2. 写入数据的大小(size)应与`nvram_user_config.c`中定义的数据项大小相匹配。 3. 读/写确认原语的'result'域应为`NVRAM_ERRNO_OK`,表示操作成功。 MTK平台中NVRAM的管理涉及到多个步骤,包括定义LID、数据项大小和总数,设置默认值,以及在代码中正确地读写和初始化这些数据项。理解并遵循这些规则是确保NVRAM数据正确存储和访问的关键。
- 粉丝: 3
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于CC++和wxWidgets框架的LEGO模型火车控制系统.zip
- (源码)基于C语言的操作系统实验项目.zip
- (源码)基于C++的分布式设备配置文件管理系统.zip
- (源码)基于ESP8266和Arduino的HomeMatic水表读数系统.zip
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip
- (源码)基于Nio实现的Mycat 2.0数据库代理系统.zip
- (源码)基于Java的高校学生就业管理系统.zip
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip