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
已解决! 转到解答。
Hi,
您的陈述,我认为其中有些理解与实际有出入:
- 方法3,recovery pin拉低,本质上也是CTS low,所以方法3等同于方法1。
- 方法2,“Downloading the Application to Serial Flash”对比“Downloading the Application to Serial Flash”,其实整个流程,包括其中使用的命令、时序和事件均没有不同。不同的地方只有:
- 只是在最后使用“LAUNCH_RAM”命令时,“下载到RAM”过程指定的是某个内存地址(实际的程序入口),而“下载到Serial Flash”则指定使用一个特殊的地址('0xFFFFFFFF'),通过该特殊地址引导系统重启并Flash读入程序(而“下载到RAM”则不会重启,而是直接执行了)。
- “下载到RAM”一般使用编译生成的hcd文件,而“下载到Serial Flash”一般使用编译生成的hex文件。
- 据我所知,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.
<<<<<<<<<<<<<>>>>>>>>>>>>>
Hi,
您的陈述,我认为其中有些理解与实际有出入:
- 方法3,recovery pin拉低,本质上也是CTS low,所以方法3等同于方法1。
- 方法2,“Downloading the Application to Serial Flash”对比“Downloading the Application to Serial Flash”,其实整个流程,包括其中使用的命令、时序和事件均没有不同。不同的地方只有:
- 只是在最后使用“LAUNCH_RAM”命令时,“下载到RAM”过程指定的是某个内存地址(实际的程序入口),而“下载到Serial Flash”则指定使用一个特殊的地址('0xFFFFFFFF'),通过该特殊地址引导系统重启并Flash读入程序(而“下载到RAM”则不会重启,而是直接执行了)。
- “下载到RAM”一般使用编译生成的hcd文件,而“下载到Serial Flash”一般使用编译生成的hex文件。
- 据我所知,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.
<<<<<<<<<<<<<>>>>>>>>>>>>>