[CC2640] CC2640使用snv保存信息

[复制链接]
 楼主| coshi 发表于 2020-2-2 17:38 | 显示全部楼层 |阅读模式
TI在协议栈中提供了两个标准函数用于写入和读取信息的函数,分别是:

uint8 osal_snv_write( osalSnvId_t id, osalSnvLen_t len, void *pBuf)

uint8 osal_snv_write( osalSnvId_t id, osalSnvLen_t len, void *pBuf)

两个函数的返回值皆为两种情况 SUCCESS 和 NV_OPER_FAILED

这两个宏定义在头文件 comdef.h 中定义

#define SUCCESS                   0x00 //!< SUCCESS

#define NV_OPER_FAILED            0x0A //!< NV Operation Failed

在头文件 bcomdef.h 中定义了用户可以使用的ID范围

// Customer NV Items - Range  0x80 - 0x8F - This must match the number of Bonding entries
#define BLE_NVID_CUST_START             0x80  //!< Start of the Customer's NV IDs
#define BLE_NVID_CUST_END               0x8F  //!< End of the Customer's NV IDs

直接操作读写就可以,例如:

  uint8_t Write_data[4] = {0x88,0x66,0x66,0x88};
  uint8_t Read_data[4];

  osal_snv_write(0x82,4,Write_data);
  osal_snv_read(0x82,4,Read_data);

打印 Read_data 的值:

755075e36988e7fb42.png

其中,osal_snv_write和osal_snv_read的第二个参数的最大不能超过252,

使用时也无需初始化,协议栈已经初始化了,直接使用很方便。

那么存储结构体也是很方便的,例如:

typedef struct{
    uint8_t a[2];
    uint8_t b[4];
    uint8_t c[16];
    uint8_t d;
}data_t;
data_t Write_data = {
.a = {0x1,0x2},
.b = {0x3,0x4,0x5,0x6},
.c = {0x7,0x8,0x9,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x20,0x21,0x22},
.d = 0x23
};
data_t Read_data;

然后在主程序中写入再读出来:

      osal_snv_write(0x82,sizeof(Write_data),&Write_data);
      osal_snv_read(0x82,sizeof(Read_data),&Read_data);

结果正确!


aoyi 发表于 2020-3-1 12:28 | 显示全部楼层
非常感谢楼主分享
zljiu 发表于 2020-3-1 12:28 | 显示全部楼层
非常感谢楼主分享
iyoum 发表于 2020-3-1 22:31 | 显示全部楼层
CC2541与CC2640有什么实际区别?
aspoke 发表于 2020-3-1 22:31 | 显示全部楼层
snv保存配置信息吧  
232321122 发表于 2020-3-1 22:31 | 显示全部楼层
怎么实现历史log信息保存  
ghuca 发表于 2020-3-1 22:32 | 显示全部楼层
cc2640设计传感器模块上有哪些传感器
soodesyt 发表于 2020-3-1 22:32 | 显示全部楼层
CC2640 端口捕获怎么设置
mnynt121 发表于 2020-3-1 22:32 | 显示全部楼层
怎么设置cc2640的spi通信  
plsbackup 发表于 2020-3-1 22:32 | 显示全部楼层
如何CC2640修改广播的名字  
kmzuaz 发表于 2020-3-1 22:33 | 显示全部楼层
蓝牙5.0模块 CC2640R2F-Q1 发布了吗?
qiufengsd 发表于 2020-3-1 22:33 | 显示全部楼层
CC2640怎么开启串口bootloader
wengh2016 发表于 2020-3-1 22:33 | 显示全部楼层
CC2640蓝牙模块可以用来传输音频文件吗?
mnynt121 发表于 2020-3-1 22:33 | 显示全部楼层
CC2640定向广播需要怎么配置  
iyoum 发表于 2020-3-1 22:33 | 显示全部楼层
蓝牙4.0手机可以连接CC2640吗
soodesyt 发表于 2020-3-1 22:33 | 显示全部楼层
CC2640R2F跑私有协议栈的话应该选哪个协议栈
aspoke 发表于 2020-3-1 22:33 | 显示全部楼层
如何进行SVN数据迁移并保存版本
ghuca 发表于 2020-3-1 22:33 | 显示全部楼层
用jlink烧写入CC2640的?
232321122 发表于 2020-3-1 22:33 | 显示全部楼层
存在工程目录哪里   
wengh2016 发表于 2020-3-1 22:33 | 显示全部楼层
CC2640 使用BTool抓包怎么用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

96

主题

3310

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部