Other Parts Discussed in Thread: CC2541
工具/软件:TI-RTOS
现在我发现了一个问题。 用户数据保存到 SNV 中、调试发现读出的数据全部为0、数据不保存到 SNV 中。
使用 osal_SNV_write()和 osal_SNV_read()函数访问 ID 0x80。
测试代码如下。 此函数也在 osal_snv_init()之后调用:
void cc2541_MAC2snv_test (void)
{
uint8 nv_ret;
uint8 nv_data_read[128]=0;
UINT8 NV_DATA_WRITE[128]= 0;
uint8 ownAddress[B_ADDR_LEN];
ownAddress[0]=*(unsigned char *)(0x780E);//直接指向指针内容
ownAddress[1]=*(unsigned char *)(0x780F);
ownAddress[2]=*(unsigned char *)(0x7810);
ownAddress[3]=XREG (0x7811); //定义函数直接读出数据
ownAddress[4]=XREG (0x7812);
ownAddress[5]= XREG (0x7813);
OSAL_memset (nv_data_write、0、sizeof (nv_data_write));//清空缓冲区后,作为接收缓冲区
NV_DATA_WRITE[0]=所有权地址[0];
NV_DATA_WRITE[1]=ownAddress[1];
NV_DATA_WRITE[2]=所有权地址[2];
NV_DATA_WRITE[3]=所有权地址[3];
NV_DATA_WRITE[4]=ownAddress[4];
NV_DATA_WRITE[5]= ownAddress[5];
nv_ret = osal_SNV_write (0x80、128、nv_data_write);
if (nv_ret!= nv_Oper_failed)
{
nv_ret = osal_sv_read (0x80、128、nv_data_read);
}
}