CC2541 1.4.2.2的协议栈,SNV掉电,数据也没了。请问是怎么回事。同样的代码移植在1.3.2的版本上就是没有问题的。
da qin zheng sheng:
所有板子都一样?存储的数据多大?
jun xiao5:
回复 da qin zheng sheng:
就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 ); } }}
Michael wong:
我们 前年做的一批产品,客户也由此反馈,,,后升级最新 FW 貌似解决。
jun xiao5:
回复 Michael wong:
应该是nv没有写成功,1.3.2的版本没有问题,1.4.0和1.4.2都写不进去。而且第一次读nv也读成功的,按照网上所说第一次读,应该返回失败才对。