CYBT343026 wiced_hal_write_nvram 写flash 需要的时间

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
CaLi_4592466
Level 4
Level 4
25 replies posted 10 replies posted 5 replies posted

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

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

wiced_hal_write_nvram

0 点赞
1 解答
Owen_Zhang123
Moderator
Moderator
Moderator
5 questions asked 500 solutions authored 250 sign-ins

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

在原帖中查看解决方案

0 点赞
5 回复数
Owen_Zhang123
Moderator
Moderator
Moderator
5 questions asked 500 solutions authored 250 sign-ins

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

0 点赞

返回值都是正常的。

函数调用如下:

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 点赞
Owen_Zhang123
Moderator
Moderator
Moderator
5 questions asked 500 solutions authored 250 sign-ins

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

0 点赞

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

0 点赞
Owen_Zhang123
Moderator
Moderator
Moderator
5 questions asked 500 solutions authored 250 sign-ins

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

0 点赞