数据不能正确写入sflash

公告

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

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

cross mob
mife_4368076
Level 1
Level 1
First reply posted First question asked Welcome!
问题1: 通过串口升级后,数据就不能通过wiced_hal_write_nvram函数写入到sflas的VS1中了。具体定位到:在升级中调用wiced_firmware_upgrade_store_to_nv此函数后,后面调用wiced_hal_write_nvram来写数据就不正常了(看打印是有返回值的,但通过wiced_hal_read_nvram是读不出来的,通过烧录器去读整个sflash,VS1部分也是没有写进去的)。没有调用wiced_firmware_upgrade_store_to_nv此函数,wiced_hal_write_nvram是可以正常写的。环境是:WICED-Studio-6.4,CYW920706WCDE开发板,跑的是hci_audio_gateway代码。 问题2: lib部分是如何编译的?
0 点赞
1 解答
Owen_Zhang123
Moderator
Moderator
Moderator
5 questions asked 500 solutions authored 250 sign-ins

1. 在upgrade的时候,会对VS1和VS2的active section进行分区切换,这一部分处理不恰当会导致写入VS的地址不对,从而写入失败。

2. 在fw_upgrade_lib文件夹中包含了fw_upgrade_lib的source code,在这里修改之后,clean一下,重新编译就可以生成新的库文件了。

在原帖中查看解决方案

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

1. wiced_hal_read_nvram在写的时候会检查写入区域是否是当前活动区域,写的内容是否超出了范围?

2. lib是通过makefile控制的,可以看下libraries文件夹下的lib编译选项。

0 点赞
  1. wiced_hal_read_nvram的地址是从0x2000开始的,内容只有几个字节,没有超出范围。
  2. 如要重新编一下fw_upgrade_lib这个库,具体是怎样操作的呢?
0 点赞
Owen_Zhang123
Moderator
Moderator
Moderator
5 questions asked 500 solutions authored 250 sign-ins

1. 在upgrade的时候,会对VS1和VS2的active section进行分区切换,这一部分处理不恰当会导致写入VS的地址不对,从而写入失败。

2. 在fw_upgrade_lib文件夹中包含了fw_upgrade_lib的source code,在这里修改之后,clean一下,重新编译就可以生成新的库文件了。

0 点赞