cancel
Showing results for 
Search instead for 
Did you mean: 

WICED Studio Bluetooth

CaLi_4592466
New Contributor II

wiced_hal_write_nvram 调用这个函数存入一些 变量数据后,调用wiced_power_save_start 进入deepsleep。测试过程中现 有时候 会出现 wiced_hal_write_nvram 写入数据不成功。

有什么情况,会影响wiced_hal_write_nvram函数的写入?

wiced_hal_write_nvram

0 Likes
1 Solution
Owen_Zhang123
Moderator
Moderator

先用这种方式测试一下,看是写入的问题,还是sleep醒来之后读取的问题。根据目前的信息很难找到问题的具体原因。

View solution in original post

0 Likes
5 Replies
Owen_Zhang123
Moderator
Moderator

请问调用write的API之后,写入失败的时候,这个API的返回值是否正确?

0 Likes
CaLi_4592466
New Contributor II

返回值都是正常的。

函数调用如下:

void flash_save_queue_address(void)

{

wiced_bt_dev_status_t status = WICED_BT_SUCCESS;

uint16 vl_write=0;

vl_write = wiced_hal_write_nvram ( BTU_QUEUE_ADDRESS_VS_ID, sizeof(t_Data_store_info), (uint8_t *)&flash_data_store_info ,&status );

WICED_BT_TRACE("FLS:W QUEUE CNF into NVRAM R:%x, W:%x, %d, result: %d \n",flash_data_store_info.vl_readPoint,flash_data_store_info.vl_writePoint, vl_write,status);

}

打印的写入值如下:

唤醒读取的打印值如下:

0 Likes
Owen_Zhang123
Moderator
Moderator

正常情况下,只要返回值正确,应该是已经写入成功了,也有可能是wakeup的时候读取有问题。建议在写入指令后面读取一次检查下是否已经写进去了,然后再进入deepsleep。

0 Likes
CaLi_4592466
New Contributor II

在测试过程中,一般都是成功的,但是出现的失败概率比较小还是有的,如果读取有问题的话,是重新读取一遍? 我们长时间测试读写flash的过程也发现 往DS 区域写数据后,读取也会出现个别字节对应不上的问题?解决方案也是 写入后,重新读取一遍检查下?

0 Likes
Owen_Zhang123
Moderator
Moderator

先用这种方式测试一下,看是写入的问题,还是sleep醒来之后读取的问题。根据目前的信息很难找到问题的具体原因。

View solution in original post

0 Likes