HCI command和OTA更新蓝牙固件版本的区别

公告

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

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

cross mob
YaTr_3516311
Level 5
Level 5
25 sign-ins First solution authored 100 replies posted

Hi,

1.请问wiced module programer工具里用到的WRITE_RAM写的地址和OTA功能写的地址是一样的吗?

2. 我想共用OTA里代码的功能(OTA最终也就是调用fw_upgrade_write_mem)来实现通过uart来更新蓝牙固件(MCU与蓝牙的hci uart链接),是否可行?也就是要自己写一下hci的自定义命令,对吧

0 点赞
1 解答
Charles_Lai
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 sign-ins

Hi,

  1. wiced module programmer的烧写流程和ClientControl的流程一致,但和OTA功能的流程不一样。
  2. fw_upgrade_write_mem和write_mem命令是不一样的,前者是调用fw_upgrade_lib包的不可见函数,并最终调用WICED HCI自身的write_mem命令。
    您可以通过uart来更新蓝牙固件,只需要在接收到OTA固件包后调用wiced_ota_fw_upgrade_read_handlerwiced_ota_fw_upgrade_write_handler等函数触发OTA流程自有的事件即可。无需自己写HCI命令。
    请参考OTA指导手册的4.6-4.10章节。再次强调无需自己写HCI自定义命令,系统函数有封装层,可在封装层操作,无需直接操作底层

<<<<<<<<<<<<<>>>>>>>>>>>>>
Sincere regards from​ C. L.
<<<<<<<<<<<<<>>>>>>>>>>>>>

在原帖中查看解决方案

0 点赞
3 回复数
Charles_Lai
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 sign-ins

Hi,

  1. wiced module programmer的烧写流程和ClientControl的流程一致,但和OTA功能的流程不一样。
  2. fw_upgrade_write_mem和write_mem命令是不一样的,前者是调用fw_upgrade_lib包的不可见函数,并最终调用WICED HCI自身的write_mem命令。
    您可以通过uart来更新蓝牙固件,只需要在接收到OTA固件包后调用wiced_ota_fw_upgrade_read_handlerwiced_ota_fw_upgrade_write_handler等函数触发OTA流程自有的事件即可。无需自己写HCI命令。
    请参考OTA指导手册的4.6-4.10章节。再次强调无需自己写HCI自定义命令,系统函数有封装层,可在封装层操作,无需直接操作底层

<<<<<<<<<<<<<>>>>>>>>>>>>>
Sincere regards from​ C. L.
<<<<<<<<<<<<<>>>>>>>>>>>>>

0 点赞

fw_upgrade_write_mem和write_mem命令是不一样的,前者是调用fw_upgrade_lib包的不可见函数,并最终调用WICED HCI自身的write_mem命令。

我明白中间过程肯定是不一样的。我的意思是fw_upgrade_write_mem最终是调用的wiced_hal_sflash_write接口函数,这个接口函数和WRITE_RAM都是写flash吧?只要地址都填写的一样,那么都应该是写flash的作用,应该没有区别?

0 点赞
Charles_Lai
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 sign-ins

可能是这样。

具体烦请您自行测试一下。

<<<<<<<<<<<<<>>>>>>>>>>>>>

Sincere regards from C. L.

<<<<<<<<<<<<<>>>>>>>>>>>>>

0 点赞