CC2541 1.4.2.2的协议栈,SNV掉电,数据也没了。请问是怎么回事。
CC2541 1.4.2.2的协议栈,SNV掉电,数据也没了。请问是怎么回事。同样的代码移植在1.3.2的版本上就是没有问题的。
所有板子都一样?存储的数据多大?
就20多个字节,初始化,第一次写入 snv函数返回0xE0,我第二次写入的时候,返回0xFE。1.4.0版本也是这样。
#define DEFAULT_DEVICE_NAME "TEST"
typedef struct
{
uint8 name[21];
uint8 pwm_level;
uint8 pwm_on;
uint8 nv_flag;
}SYS_CONFIG;
SYS_CONFIG sys_config;
uint8 hdth_nvflag=0;
void Init_Para(void)
{
int8 ret8 = osal_snv_read(0x80, sizeof(SYS_CONFIG), &sys_config);
if(/*NV_OPER_FAILED == ret8||*/99!=sys_config.nv_flag)
{
// ?′3?ê??ˉ
osal_memset(&sys_config, 0, sizeof(SYS_CONFIG));
sprintf((char*)sys_config.name, DEFAULT_DEVICE_NAME);
sys_config.pwm_level =1;
sys_config.pwm_on=0;
sys_config.nv_flag=99;
hdth_nvflag= osal_snv_write(0x80, sizeof(SYS_CONFIG), &sys_config);
if(0==hdth_nvflag)
{
HalLcdWriteString( "BLE NV OK", HAL_LCD_LINE_1 );
}
}
}
我们 前年做的一批产品,客户也由此反馈,,,后升级最新 FW 貌似解决。
应该是nv没有写成功,1.3.2的版本没有问题,1.4.0和1.4.2都写不进去。而且第一次读nv也读成功的,按照网上所说第一次读,应该返回失败才对。