进入download模式的区别

公告

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

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,

我想实现通过MCU更新蓝牙固件的功能。然后我发现让蓝牙固件进入download模式有很多种,我知道的如下

1. CTS low,然后reset

2. Downloading the Application to Serial Flash的文档里是直接发送HCI_RESET命令,然后一系列命令进行软件的更新

3. recovery pin拉低,然后再reset,也是进入download模式

所以我的问题是:

1) 这三种方法有什么区别?推荐用哪一种方法?

2) 研究WICED_MOD_Programmer.exe的工具的时候,发现需要Minidriver download和appication download.

      之前技术有回复说Minidriver download is recommended for flash download.这一步是上面三种进入download的模式都需要的?

3) Minidriver的文件是一直不会变的? 比如说我二次开发软件,application文件肯定是会不断更新变化的,那么download文件会变吗?

BR,

Treacy

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

Hi,

您的陈述,我认为其中有些理解与实际有出入:

  1. 方法3,recovery pin拉低,本质上也是CTS low,所以方法3等同于方法1。
  2. 方法2,“Downloading the Application to Serial Flash”对比“Downloading the Application to Serial Flash”,其实整个流程,包括其中使用的命令、时序和事件均没有不同。不同的地方只有:
    1. 只是在最后使用“LAUNCH_RAM”命令时,“下载到RAM”过程指定的是某个内存地址(实际的程序入口),而“下载到Serial Flash”则指定使用一个特殊的地址('0xFFFFFFFF'),通过该特殊地址引导系统重启并Flash读入程序(而“下载到RAM”则不会重启,而是直接执行了)。
    2. “下载到RAM”一般使用编译生成的hcd文件,而“下载到Serial Flash”一般使用编译生成的hex文件。
  3. 据我所知,Minidriver在您所述的这三种方法里面都会使用(只有某特殊WICED芯片不使用)。

如果我理解没有差错,进入download模式的流程和概念,其实很简单:

MCU通电,就会检测CTS,若是Low,就会强制进入Download模式(然后可能伴随Autobaud检测)。若CTS不为Low,则先检查Flash,若包含user application,便会加载user application并进入application mode,若没有检测到user application,便又会进入Autobaud检测,并表现为Controller mode。在Controller mode下,你可理解为栈为空,处于待命状态,并随时准备接收WICED HCI命令。于是这时候您同样可以发送Download流程使用的命令,模拟进入Download流程,于是MCU这时便又会表现为进入了Download模式。

换言之,Download模式,只是一套预先协定的WICED HCI命令和时序的集合,在MCU允许让你执行WICED HCI命令时,您都可以通过相同的命令和时序控制,引导MCU进入所谓的“Download模式”。

更多的细节,您可以参考文档AN226546 CYW20819 Feature and Peripheral Guide.pdf。其中的“7.3 Firmware Architecture”到“7.5 Programming”章节,应该能帮助您理解WICED固件和下载的相关内容。

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

Best Regards

C. L.

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

在原帖中查看解决方案

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

Hi,

您的陈述,我认为其中有些理解与实际有出入:

  1. 方法3,recovery pin拉低,本质上也是CTS low,所以方法3等同于方法1。
  2. 方法2,“Downloading the Application to Serial Flash”对比“Downloading the Application to Serial Flash”,其实整个流程,包括其中使用的命令、时序和事件均没有不同。不同的地方只有:
    1. 只是在最后使用“LAUNCH_RAM”命令时,“下载到RAM”过程指定的是某个内存地址(实际的程序入口),而“下载到Serial Flash”则指定使用一个特殊的地址('0xFFFFFFFF'),通过该特殊地址引导系统重启并Flash读入程序(而“下载到RAM”则不会重启,而是直接执行了)。
    2. “下载到RAM”一般使用编译生成的hcd文件,而“下载到Serial Flash”一般使用编译生成的hex文件。
  3. 据我所知,Minidriver在您所述的这三种方法里面都会使用(只有某特殊WICED芯片不使用)。

如果我理解没有差错,进入download模式的流程和概念,其实很简单:

MCU通电,就会检测CTS,若是Low,就会强制进入Download模式(然后可能伴随Autobaud检测)。若CTS不为Low,则先检查Flash,若包含user application,便会加载user application并进入application mode,若没有检测到user application,便又会进入Autobaud检测,并表现为Controller mode。在Controller mode下,你可理解为栈为空,处于待命状态,并随时准备接收WICED HCI命令。于是这时候您同样可以发送Download流程使用的命令,模拟进入Download流程,于是MCU这时便又会表现为进入了Download模式。

换言之,Download模式,只是一套预先协定的WICED HCI命令和时序的集合,在MCU允许让你执行WICED HCI命令时,您都可以通过相同的命令和时序控制,引导MCU进入所谓的“Download模式”。

更多的细节,您可以参考文档AN226546 CYW20819 Feature and Peripheral Guide.pdf。其中的“7.3 Firmware Architecture”到“7.5 Programming”章节,应该能帮助您理解WICED固件和下载的相关内容。

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

Best Regards

C. L.

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

0 点赞