CN101790252A - 一种固件更新的方法和*** - Google Patents
一种固件更新的方法和*** Download PDFInfo
- Publication number
- CN101790252A CN101790252A CN200910045919A CN200910045919A CN101790252A CN 101790252 A CN101790252 A CN 101790252A CN 200910045919 A CN200910045919 A CN 200910045919A CN 200910045919 A CN200910045919 A CN 200910045919A CN 101790252 A CN101790252 A CN 101790252A
- Authority
- CN
- China
- Prior art keywords
- module
- firmware update
- application
- communication module
- communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种固件更新的方法,包括:在对应用模块进行固件更新的过程中,将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新文件下载到应用模块并保存;通信模块获取所述应用程序,利用所述应用程序建立与应用模块的数据传输通道,再通过所述数据传输通道从应用模块下载通信模块的固件更新文件,并保存到通信模块自身的存储器当中,完成通信模块的固件更新。本发明还同时提供一种固件更新的***。本发明提供的这种固件更新的方法和***,将现有技术中需要分别独立进行的应用模块固件更新和通信模块固件更新整合为一个流程,操作更加便利,且大大提高了智能手机进行固件更新的速度和效率。
Description
技术领域
本发明涉及计算机通信技术,具体涉及一种固件更新的方法和***。
背景技术
随着集成电路技术的不断发展,集成电路芯片的处理能力不断增强的同时成本却在不断降低。在硬件技术进步的带动下,移动通信终端逐渐从传统的只有单一电话功能的移动电话逐渐升级为具有各种应用处理能力的智能手机(Smartphone)。市面上目前存在着种类繁多的智能手机,它们与传统的功能较为单一的手机的最大区别在于:智能手机通常硬件处理能力更强且存储空间更大,从而有能力使用更多的应用软件资源,部分产品还能够运行操作***;由于具有强大的硬件处理能力和丰富的软件资源,智能手机不仅能够实现电话功能,一般还能够进行诸如文字处理、邮件、网络应用、多媒体录制和播放等各种应用。
传统的手机终端一般只包含用于完成电话功能应用的单个处理器芯片(相应地包括一些***的功能电路,与所述处理器芯片集成设置在一个电路板当中,通常称为通信模块或Modem模块),而智能手机之所以能够实现电话功能以外的众多其他功能,是有赖于其不同的硬件架构而得以实现的,所述智能手机的硬件架构通常如图1所示,由主要实现电话功能的Modem模块110和主要进行附加功能(例如前文中提及的文字处理、邮件、多媒体等应用)的应用模块120(通常也称为Application模块)组成,Modem模块110和应用模块120分别独立设置,为了便于描述,下面将只对与固件更新过程有关的电路单元进行说明,本领域技术人员熟知的其它功能单元将在叙述中省略:
所述Modem模块110,进一步包括第一处理器单元111,或非存储器单元112和第一串行通信端口113;所述第一串行通信端口113与应用模块120相连进行通信;
所述应用模块120,进一步包括第二处理器单元121,与非存储器单元122,第二串行通信端口123和外部串行通信端口124;所述第二串行通信端口123与Modem模块110相连进行通信,而外部串行通信端口124则用于与智能手机外部的其他设备(例如上位PC机或其它手持设备)进行连接。
由于目前的手机生产是一个协作化程度很高的行业,所述的Modem模块110和应用模块120通常分别由不同的集成方案解决商分别提供,再由手机开发制造商进行整合连接而形成最终产品。由于所述两个模块一般来自不同的生产厂商,因此其各自的固件更新工具常常是独立存在的,对它们进行固件更新时就需要分别进行。以下分别详细介绍:
由于所述第一串行通信端口在与应用模块进行集成时被用作与应用模块中的第二串行通信端口相连,因此对于Modem模块的固件更新,根据所述第一串行通信端口是否占用分成两种方式,第一种是在所述第一串行通信端口空闲的情况下(即Modem模块尚未与应用模块进行整合连接,此时所述第一串行通信端口空闲),将Modem模块通过该第一串行通信端口与上位机相连进行固件更新;另一种则是在所述第一串行通信端口占用的情况下(即Modem模块与应用模块完成整合连接,此时所述第一串行通信端口被占用),将Modem模块通过该第一串行通信端口与上位机相连进行固件更新。两种情况下的具体固件更新流程基本相同,区别仅在于:
第一种情况下所述第一串行通信端口处于空闲状态,因此可以直接与上位机(通常为PC机)进行连接,由上位机对其进行固件更新;而第二种情况下需要预先在将Modem模块与应用模块进行整合连接时为所述第一串行通信端口设置一个状态切换引脚,在需要对Modem模块进行固件更新时,则将该引脚设为固件更新有效的状态,此时所述第一串行通信端口与应用模块的连接断开,从而可以按照与第一种情况完全相同的方法对所述Modem模块进行固件更新;而当该引脚处于固件更新无效的状态时,所述第一串行通信端口用于与应用模块进行通信连接,此时则无法对该Modem模块进行固件更新。
所述对Modem模块进行固件更新的方法如图2所示,具体流程包括:
步骤201:Modem模块上电后,向上位机发送同步字节确认请求;
步骤202:若Modem模块在设定时间内接收到上位机返回的确认消息,则进入固件更新下载模式;
步骤203:Modem模块下载预先保存在上位机上的配置代码,根据所述配置代码配置并建立Modem模块与上位机之间的数据传输通道;
步骤204:利用所述建立的数据传输通道从上位机上进一步下载Modem模块的固件更新文件,将所述固件更新文件下载保存到或非存储器当中。
至此,对Modem模块的固件更新流程结束。
至于应用模块的更新流程,其与步骤201~204完全相同,区别仅在于步骤201~204中的执行主体相应地应为应用模块,以及所述应用模块与上位机的通讯是通过外部串行通信端口进行的。
由上述说明可见,在现有技术中,无论是手机开发制造商在生产整合过程中的开发测试、还是手机应用开发商在二次开发过程中的调试设置,每次进行固件更新时,都需要在两个不同的固件更新工具中对两个模块分别进行上述固件更新流程,这显然并不方便。尤其当需要进行固件更新的手机数量较多时,现有技术的这种固件更新方法必然需要花费大量的时间,从而严重降低工作效率,使得整个固件更新的过程耗时费力。
发明内容
本发明提供一种固件更新的方法和***,能够整合应用模块和Modem模块的更新流程,提高固件更新的速度和效率。
为达到上述目的,本发明的技术方案具体是这样实现的:
一种固件更新的方法,该方法包括:
在对应用模块进行固件更新的过程中,将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新文件下载到应用模块并保存;
通信模块获取所述应用程序,利用所述应用程序建立与应用模块的数据传输通道,再通过所述数据传输通道从应用模块下载通信模块的固件更新文件,并保存到通信模块自身的存储器当中,完成通信模块的固件更新。
所述通信模块获取所述应用程序,利用所述应用程序建立与应用模块的数据传输通道的方法包括:
应用模块按照所述应用程序的指示给通信模块上电,接收到通信模块返回的同步字节确认请求后,再按照所述应用程序的指示向通信模块返回确认消息;
若通信模块在设定时间内接收到所述确认消息,则通信模块下载所述应用程序中包含的配置代码,根据所述配置代码配置并建立通信模块与应用模块间的数据传输通道。
所述将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新文件下载到应用模块并保存的方法包括:
将所述通信模块的固件更新文件、预先设置的应用程序包含在应用模块的固件更新文件当中,同时下载到应用模块的随机存取内存RAM后,再将RAM中的所述内容写入应用模块的存储器当中。
所述将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新文件下载到应用模块并保存的方法包括:
将预先设置的应用程序连同应用模块的固件更新文件一起,在对应用模块进行固件更新的过程中共同下载到应用模块的RAM后,再将RAM中的所述内容写入应用模块的存储器当中;
应用模块运行所述应用程序,下载通信模块的固件更新文件到应用模块的RAM后,再将RAM中的内容写入应用模块的存储器当中。
利用所述数据传输通道从应用模块下载通信模块的固件更新文件,并保存到通信模块自身的存储器当中,完成通信模块的固件更新的方法包括:
利用所述建立的数据传输通道从应用模块的存储器中下载通信模块的固件更新文件,将所述固件更新文件下载保存到通信模块的存储器当中。
所述将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新文件下载到应用模块并保存的方法包括:
将预先设置的应用程序连同应用模块的固件更新文件一起,在对应用模块进行固件更新的过程中共同下载到应用模块的RAM后,再将RAM中的所述内容写入应用模块的存储器当中;
应用模块运行所述应用程序,下载通信模块的固件更新文件并保存到应用模块的RAM当中。
利用所述数据传输通道从应用模块下载通信模块的固件更新文件并保存到通信模块的存储器当中,完成通信模块的固件更新的方法包括:
利用所述建立的数据传输通道从应用模块的RAM中下载通信模块的固件更新文件,将所述固件更新文件下载保存到通信模块的存储器当中。
一种固件更新的***,该***包括:应用模块和通信模块;
应用模块,用于从外部将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新文件下载到应用模块并保存;还用于向通信模块发送所述应用程序,以及利用通信模块建立的数据传输通道将所述通信模块的固件更新文件发送给通信模块;
通信模块,用于从应用模块获取所述应用程序,利用所述应用程序建立与应用模块的数据传输通道,利用所述数据传输通道从应用模块下载通信模块的固件更新文件,并保存到通信模块自身的存储器当中,完成通信模块的固件更新。
所述应用模块进一步包括:第二处理器单元、第二存储器单元、第二串行通信端口和外部串行通信端口;
所述第二处理器单元,通过第二串行通信端口与通信模块相连,用于通过外部串行通信端口从外部下载包含有通信模块的固件更新文件和预先设置的应用程序的应用模块的固件更新文件,并发送到所述第二存储器单元;还用于按照所述应用程序的指示给通信模块上电,通过第二串行通信端口接收所述通信模块发送的同步字节确认请求并通过第二串行通信端口向其返回确认消息;之后将第二存储器单元中保存的应用程序中包含的配置代码通过第二串行通信端口发送给通信模块,利用根据所述配置代码建立的数据传输通道,通过第二串行通信端口将通信模块的固件更新文件传输给通信模块;
所述第二串行通信端口,用于连接第二处理器单元和通信模块,并转发所有第二处理器单元和通信模块之间的通讯消息;
所述外部串行通信端口,用于将应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序转发给第二处理器单元;
所述第二存储器单元,用于保存第二处理器单元发来的应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序,并接收第二处理器单元的读取调用,将所述应用程序中包含的配置代码返回给第二处理器单元,还将所述通信模块的固件更新文件返回给第二处理器单元。
所述应用模块进一步包括:第二处理器单元、第二存储器单元、第二串行通信端口和外部串行通信端口;
所述第二处理器单元,通过第二串行通信端口与通信模块相连,用于通过外部串行通信端口从外部下载应用模块的固件更新文件和预先设置的应用程序,并发送到所述第二存储器单元,运行所述应用程序,通过外部串行通信端口从外部下载通信模块的固件更新文件并发送到所述第二存储器单元;还用于按照所述应用程序的指示给通信模块上电,通过第二串行通信端口接收所述通信模块发送的同步字节确认请求并通过第二串行通信端口向其返回确认消息;之后将第二存储器单元中保存的应用程序中包含的配置代码通过第二串行通信端口发送给通信模块,利用根据所述配置代码建立的数据传输通道,通过第二串行通信端口将通信模块的固件更新文件传输给通信模块;
所述第二串行通信端口,用于连接第二处理器单元和通信模块,并转发所有第二处理器单元和通信模块之间的通讯消息;
所述外部串行通信端口,用于将应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序转发给第二处理器单元;
所述第二存储器单元,用于保存第二处理器单元发来的应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序,并接收第二处理器单元的读取调用,将所述应用程序中包含的配置代码返回给第二处理器单元,还将所述通信模块的固件更新文件返回给第二处理器单元。
所述通信模块进一步包括:第一处理器单元、第一存储器单元和第一串行通信端口;
所述第一处理器单元,通过第一串行通信端口与应用模块相连,用于在上电后通过第一串行通信端口向应用模块发送同步确认请求,当在设定时间内通过第一串行通信端口接收到所述应用模块返回的确认消息后,通过第一串行通信端口从所述应用模块下载所述应用程序中包含的配置代码,根据所述配置代码配置并建立通信模块与应用模块间的数据传输通道,利用所述通道并通过第一串行通信端口从应用模块的第二存储器单元下载通信模块的固件更新文件并发送给第一存储器单元;
所述第一存储器单元,用于接收第一处理器单元发送的通信模块的固件更新文件并保存;
所述第一串行通信端口,用于连接第一处理器单元和应用模块,并转发所有应用模块和第一处理器单元之间的通讯消息。
所述应用模块进一步包括:第二处理器单元、第二存储器单元、第二串行通信端口和外部串行通信端口;
所述第二处理器单元,通过第二串行通信端口与通信模块相连,用于通过外部串行通信端口从外部下载应用模块的固件更新文件和预先设置的应用程序,并发送到所述第二存储器单元;运行所述应用程序,通过外部串行通信端口从外部下载通信模块的固件更新文件并保存在第二处理器单元自身的内存缓冲区内;还用于按照所述应用程序的指示给通信模块上电,通过第二串行通信端口接收所述通信模块发送的同步字节确认请求并通过第二串行通信端口向其返回确认消息;之后将第二存储器单元中保存的应用程序中包含的配置代码通过第二串行通信端口发送给通信模块,利用根据所述配置代码建立的数据传输通道,通过第二串行通信端口将所述内存缓冲区内的通信模块的固件更新文件传输给通信模块;
所述第二串行通信端口,用于连接第二处理器单元和通信模块,并转发所有第二处理器单元和通信模块之间的通讯消息;
所述外部串行通信端口,用于将应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序转发给第二处理器单元;
所述第二存储器单元,用于保存第二处理器单元发来的应用模块的固件更新文件和预先设置的应用程序,并接收第二处理器单元的读取调用,将所述应用程序中包含的配置代码返回给第二处理器单元。
所述通信模块进一步包括:第一处理器单元、第一存储器单元和第一串行通信端口;
所述第一处理器单元,通过第一串行通信端口与应用模块相连,用于在上电后通过第一串行通信端口向应用模块发送同步确认请求,当在设定时间内通过第一串行通信端口接收到所述应用模块返回的确认消息后,通过第一串行通信端口从所述应用模块下载所述应用程序中包含的配置代码,根据所述配置代码配置并建立通信模块与应用模块间的数据传输通道;利用所述通道并通过第一串行通信端口从应用模块下载通信模块的固件更新文件并发送给第一存储器单元;
所述第一存储器单元,用于接收第一处理器单元发送的通信模块的固件更新文件并保存;
所述第一串行通信端口,用于连接第一处理器单元和应用模块,并转发所有应用模块和第一处理器单元之间的通讯消息。
所述通信模块中的第一存储器单元及应用模块中的第二存储器单元,均为任意类型的非易失性存储器。
由上述的技术方案可见,本发明提供的这种固件更新的方法和***,通过预先设置应用程序并在对应用模块进行固件更新的过程中,连同Modem模块的固件更新文件一并下载到应用模块当中,使得应用模块运行所述应用程序之后,能够在应用模块上模拟上位机的功能,从而Modem模块能够将所述Modem模块的固件更新文件进一步下载到自身的存储器当中,从而同时实现了对应用模块和Modem模块的固件更新;本发明将现有技术中需要分别独立进行的应用模块固件更新和Modem模块固件更新整合为一个流程,且不需要根据Modem模块的第一串行通信端口是否占用而采用不同的固件更新方式,不仅操作更加便利,还大大提高了智能手机进行固件更新的速度和效率。
附图说明
图1为现有技术中智能手机的硬件架构的结构示意图。
图2为现有技术中对Modem模块进行固件更新的流程示意图。
图3为本发明实施例中固件更新的方法的流程示意图。
图4为本发明实施例中固件更新的***的组成结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明实施例提供一种固件更新的方法,此时Modem模块与应用模块已经完成整合连接,其流程如图3所示,具体包括:
步骤301:在对应用模块进行固件更新的过程中,将Modem模块的固件更新文件、预先设置的应用程序MiniApp连同应用模块的固件更新文件下载到应用模块并保存;
其中,对应用模块进行固件更新的方法与现有技术相同,不再展开说明;同时容易理解,所述步骤301中的将Modem模块的固件更新文件、预先设置的应用程序MiniApp连同应用模块的固件更新文件下载的方法可以有多种实施方式,例如:
1)同时下载所有文件——即,将所述Modem模块的固件更新文件、预先设置的应用程序MiniApp包含在应用模块的固件更新文件当中,一并下载到应用模块。
2)分两次进行下载,此时所述步骤301为:
步骤301a:将Modem模块的固件更新文件连同应用模块的固件更新文件一起,在对应用模块进行固件更新的过程中共同下载到应用模块并保存;
步骤301b:应用模块再从上位机下载预先设置的应用程序MiniApp并进行保存。
3)分两次进行下载,此时步骤301为:
步骤301c:将预先设置的应用程序MiniApp连同应用模块的固件更新文件一起,在对应用模块进行固件更新的过程中共同下载到应用模块并保存;
步骤301d:应用模块运行所述应用程序,再从上位机下载Modem模块的固件更新文件并进行保存。
上述均属于本领域技术人员容易想到的替代实施方式,限于篇幅不再一一列举,应当指出这些均为本发明可以采用的实施方式,本发明并不做严格的具体限定。
步骤302:Modem模块获取所述应用程序,利用所述应用程序建立与应用模块的数据传输通道,通过所述数据传输通道从应用模块下载Modem模块的固件更新文件,并保存到Modem模块自身的存储器当中,完成固件更新流程。
所述步骤302进一步包括:
步骤302a:应用模块按照所述应用程序的指示给Modem模块上电;
由于Modem模块与应用模块此时已经完成整合连接,因此Modem模块通过第一串行通信端口与应用模块相连,同时其电源的开启和关断受到智能手机内部的通用输入输出端口(GPIO)控制引脚的统一控制,从而应用模块可以通过对该GPIO控制引脚的操作控制Modem模块的接通和关断。此部分虽未在前文的电路结构中示出,但由于其为本领与技术人员的公知常识,因此不再详细说明。
步骤302b:Modem模块上电后,向应用模块发送同步字节确认请求;
需要明确的是,Modem模块与应用模块的所有控制命令和数据传输均通过所述第一串行通信端口和第二串行通信端口的连接通信实现,此处一并说明,后文中将不再赘述。
步骤302c:应用模块接收到所述请求后,若在所述应用程序的控制下、在设定时间(该设定时间通常为ms级,一般为50ms)内向Modem模块返回确认消息,则Modem模块根据该确认消息进入固件更新下载模式;若超时未返回确认消息,则Modem模块进入正常工作模式,所述正常工作模式与本发明无关,故不再进行介绍。
步骤302d:Modem模块下载所述应用程序中包含的配置代码,根据所述配置代码配置并建立Modem模块与应用模块间的数据传输通道;
步骤302e:利用所述建立的数据传输通道从应用模块进一步下载Modem模块的固件更新文件并保存到Modem模块的或非存储器当中,完成对Modem模块的固件更新。
其中,步骤301在实际应用中采用1)、2)或3)的实施方式时:
应用模块将文件读取到随机存取内存(Random Access Memory,RAM)后,再将RAM中的文件写入与非存储器当中。
由于RAM的读写速度比与非存储器的读写速度更快,同时Modem模块的固件更新文件一般体积较小不会对RAM的存储空间造成实质影响,因此,为了进一步加快所述固件更新的速度和效率,对于步骤301的第3)种实施方式而言,所述步骤301还可以为:
将预先设置的应用程序MiniApp连同应用模块的固件更新文件一起,在对应用模块进行固件更新的过程中共同下载到应用模块并保存到与非存储器当中;
应用模块运行所述应用程序,从上位机下载Modem模块的固件更新文件,并将所述Modem模块的固件更新文件保存在应用模块的RAM当中。
之所以对于第1)和2)的实施方式不能将所述Modem模块的固件更新文件保存在应用模块的RAM当中,是由于当应用模块第一次运行所述应用程序时,会对应用模块的RAM进行重新初始化,因此,对于第1)和2)的实施方式,在运行应用程序对RAM进行初始化的过程中,会将RAM中的已有内部全部清空,因而无法将所述Modem模块的固件更新文件保存在RAM当中。而第3)种实施方式,由于运行应用程序对RAM进行初始化以后,才开始下载Modem模块的固件更新文件,因此不会存在RAM被清空的问题;此外,虽然步骤302a中还会运行所述应用程序,但由于之前已经执行过所述应用程序(步骤302a不是第一次运行该应用程序),因此同样不会导致RAM被清空的问题。
相应地,对于步骤301的1)或2)的实施方式,所述步骤302e为:
利用所述建立的数据传输通道从应用模块的与非存储器中下载Modem模块的固件更新文件,将所述固件更新文件下载保存到或非存储器当中。
而对于步骤301的3)的实施方式,所述步骤302e则为:
利用所述建立的数据传输通道从应用模块的RAM中下载Modem模块的固件更新文件,将所述固件更新文件下载保存到或非存储器当中。
需要说明的是,所述预先设置的应用程序的主要作用在于将所述配置代码先下载到应用模块,然后所述应用程序再将该配置代码进一步发送到Modem模块,由Modem模块根据该配置代码建立其与应用模块的数据传输通道;之后所述Modem模块再通过与所述应用程序的交互,将Modem模块的固件更新文件通过所述数据传输通道下载到自身的存储器当中。
最后,容易理解,前文中提及的Modem模块中的或非存储器,以及应用模块中的与非存储器,是按照通常智能手机设备中该两个模块普遍使用的存储设备类型进行的描述,并不表示限定,实际上所述存储器完全可以为任何类型的非易失性存储器。
本发明实施例在所述固件更新的方法的基础上,还进一步提供一种固件更新的***,其组成结构如图4所示,其中包括:Modem模块410和应用模块420;
应用模块420,用于从外部将Modem模块410的固件更新文件、预先设置的应用程序连同应用模块420的固件更新文件下载到应用模块420并保存;还用于向Modem模块410发送所述应用程序,以及利用Modem模块410建立的数据传输通道将所述Modem模块410的固件更新文件发送给Modem模块410;
Modem模块410,用于从应用模块420获取所述应用程序,利用所述应用程序建立与应用模块420的数据传输通道,利用所述数据传输通道从应用模块420下载Modem模块410的固件更新文件,并保存到Modem模块410自身的存储器当中,完成Modem模块410的固件更新。
与前文所述的方法中步骤301的不同实施方式相对应,所述应用模块420相应的至少也包括三种实施方式:
1)所述应用模块420进一步包括:第二处理器单元421、与非存储器单元422、第二串行通信端口423和外部串行通信端口424;
所述第二处理器单元421,通过第二串行通信端口423与Modem模块410相连,用于通过外部串行通信端口424从外部下载包含有Modem模块410的固件更新文件和预先设置的应用程序的应用模块420的固件更新文件,并发送到所述与非存储器单元422;还用于按照所述应用程序的指示给Modem模块410上电,通过第二串行通信端口423接收所述Modem模块410发送的同步字节确认请求并通过第二串行通信端口423向其返回确认消息;之后将与非存储器单元422中保存的应用程序中包含的配置代码通过第二串行通信端口423发送给Modem模块410,利用根据所述配置代码建立的数据传输通道,通过第二串行通信端口423将Modem模块410的固件更新文件传输给Modem模块410;
2)所述应用模块420则进一步包括:第二处理器单元421、与非存储器单元422、第二串行通信端口423和外部串行通信端口424;
所述第二处理器单元421,通过第二串行通信端口423与Modem模块410相连,用于通过外部串行通信端口424从外部下载应用模块420的固件更新文件和预先设置的应用程序,并发送到所述与非存储器单元422,运行所述应用程序,通过外部串行通信端口424从外部下载Modem模块410的固件更新文件并发送到所述与非存储器单元422;还用于按照所述应用程序的指示给Modem模块410上电,通过第二串行通信端口423接收所述Modem模块410发送的同步字节确认请求并通过第二串行通信端口423向其返回确认消息;之后将与非存储器单元422中保存的应用程序中包含的配置代码通过第二串行通信端口423发送给Modem模块410,利用根据所述配置代码建立的数据传输通道,通过第二串行通信端口423将Modem模块410的固件更新文件传输给Modem模块410;
3)所述应用模块420进一步包括:第二处理器单元421、与非存储器单元422、第二串行通信端口423和外部串行通信端口424;
所述第二处理器单元421,通过第二串行通信端口423与Modem模块410相连,用于通过外部串行通信端口424从外部下载应用模块420的固件更新文件和预先设置的应用程序,并发送到所述与非存储器单元422;运行所述应用程序,通过外部串行通信端口424从外部下载Modem模块410的固件更新文件并保存在第二处理器单元421自身的内存缓冲区内;还用于按照所述应用程序的指示给Modem模块410上电,通过第二串行通信端口423接收所述Modem模块410发送的同步字节确认请求并通过第二串行通信端口423向其返回确认消息;之后将与非存储器单元422中保存的应用程序中包含的配置代码通过第二串行通信端口423发送给Modem模块410,利用根据所述配置代码建立的数据传输通道,通过第二串行通信端口423将所述内存缓冲区内的Modem模块410的固件更新文件传输给Modem模块410;
上述三种实施方式中,所述应用模块420中的与非存储器单元422、第二串行通信端口423和外部串行通信端口424均相同,分别为:
所述第二串行通信端口423,用于连接第二处理器单元421和Modem模块410,并转发所有第二处理器单元421和Modem模块410之间的通讯消息;
所述外部串行通信端口424,用于将应用模块420的固件更新文件、Modem模块410的固件更新文件以及预先设置的应用程序转发给第二处理器单元421;
所述与非存储器单元422,用于保存第二处理器单元421发来的应用模块420的固件更新文件和预先设置的应用程序,并接收第二处理器单元421的读取调用,将所述应用程序中包含的配置代码返回给第二处理器单元421。
对于所述1)和2)的实施方式,对应的所述Modem模块410的第一种实施方式,此时所述Modem模块410进一步包括:第一处理器单元411、或非存储器单元412和第一串行通信端口413;
所述第一处理器单元411,通过第一串行通信端口413与应用模块420相连,用于在上电后通过第一串行通信端口413向应用模块420发送同步确认请求,当在设定时间内通过第一串行通信端口413接收到所述应用模块420返回的确认消息后,通过第一串行通信端口413从所述应用模块420下载所述应用程序中包含的配置代码,根据所述配置代码配置并建立Modem模块410与应用模块420间的数据传输通道,利用所述通道并通过第一串行通信端口413从应用模块420的与非存储器单元422下载Modem模块410的固件更新文件并发送给或非存储器单元412;
而对于3)中的实施方式,对应的所述Modem模块410则为第二种实施方式,此时所述Modem模块410进一步包括:第一处理器单元411、或非存储器单元412和第一串行通信端口413;
所述第一处理器单元411,通过第一串行通信端口413与应用模块420相连,用于在上电后通过第一串行通信端口413向应用模块420发送同步确认请求,当在设定时间内通过第一串行通信端口413接收到所述应用模块420返回的确认消息后,通过第一串行通信端口413从所述应用模块420下载所述应用程序中包含的配置代码,根据所述配置代码配置并建立Modem模块410与应用模块420间的数据传输通道;利用所述通道并通过第一串行通信端口413从应用模块420下载Modem模块410的固件更新文件并发送给或非存储器单元412;
Modem模块410的上述两种实施方式中,所述或非存储器单元412和第一串行通信端口413相同,分别为:
所述或非存储器单元412,用于接收第一处理器单元411发送的Modem模块410的固件更新文件并保存;
所述第一串行通信端口413,用于连接第一处理器单元411和应用模块420,并转发所有应用模块420和第一处理器单元411之间的通讯消息。
需要说明的是,所述预先设置的应用程序的主要作用在于将所述配置代码先下载到应用模块420,然后所述应用程序再将该配置代码进一步发送到Modem模块410,由Modem模块410根据该配置代码建立其与应用模块420的数据传输通道;之后所述Modem模块410再通过与所述应用程序的交互,将Modem模块410的固件更新文件通过所述数据传输通道下载到自身的存储器当中。
最后需要指出,前文中提及的Modem模块410中的第一存储器单元412,以及应用模块420中的第二存储器单元422,可以为任何类型的非易失性存储器,本发明实施例不作具体限定。
同时,容易理解,本发明实施例虽然是就智能手机当中的Modem模块和应用模块的固件更新流程进行的描述和说明,但并不表示本发明只能够应用于智能手机的固件更新流程,对于手机的生产、调试和二次开发的整个过程中,任何需要同时对Modem模块和应用模块同时进行更新的场景下,都同样可以应用本发明进行实现;而且,对于仅需要对Modem模块单独进行固件更新的场景中,也同样可以应用本发明进行实现。
根据上述描述可见,所述固件更新的方法和***,通过预先设置应用程序并在对应用模块进行固件更新的过程中一并下载到应用模块当中,使得应用模块运行所述应用程序之后能够在应用模块上模拟上位机的功能,从而Modem模块能够将下载到应用模块中的Modem模块的固件更新文件通过应用模块与Modem模块的相互通讯进一步下载到自身的存储器当中,最终同时实现了对应用模块和Modem模块的固件更新;本发明将现有技术中需要分别独立进行的应用模块固件更新和Modem模块固件更新整合为一个流程,且不需要根据Modem模块的串行通信端口是否占用而采用不同的固件更新方式,不仅操作更加便利,还大大提高了智能手机进行固件更新的速度和效率。
Claims (14)
1.一种固件更新的方法,其特征在于,该方法包括:
在对应用模块进行固件更新的过程中,将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新文件下载到应用模块并保存;
通信模块获取所述应用程序,利用所述应用程序建立与应用模块的数据传输通道,再通过所述数据传输通道从应用模块下载通信模块的固件更新文件,并保存到通信模块自身的存储器当中,完成通信模块的固件更新。
2.根据权利要求1所述的方法,其特征在于,所述通信模块获取所述应用程序,利用所述应用程序建立与应用模块的数据传输通道的方法包括:
应用模块按照所述应用程序的指示给通信模块上电,接收到通信模块返回的同步字节确认请求后,再按照所述应用程序的指示向通信模块返回确认消息;
若通信模块在设定时间内接收到所述确认消息,则通信模块下载所述应用程序中包含的配置代码,根据所述配置代码配置并建立通信模块与应用模块间的数据传输通道。
3.根据权利要求2所述的方法,其特征在于,所述将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新文件下载到应用模块并保存的方法包括:
将所述通信模块的固件更新文件、预先设置的应用程序包含在应用模块的固件更新文件当中,同时下载到应用模块的随机存取内存RAM后,再将RAM中的所述内容写入应用模块的存储器当中。
4.根据权利要求2所述的方法,其特征在于,所述将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新文件下载到应用模块并保存的方法包括:
将预先设置的应用程序连同应用模块的固件更新文件一起,在对应用模块进行固件更新的过程中共同下载到应用模块的RAM后,再将RAM中的所述内容写入应用模块的存储器当中;
应用模块运行所述应用程序,下载通信模块的固件更新文件到应用模块的RAM后,再将RAM中的内容写入应用模块的存储器当中。
5.根据权利要求3或4所述的方法,其特征在于,利用所述数据传输通道从应用模块下载通信模块的固件更新文件,并保存到通信模块自身的存储器当中,完成通信模块的固件更新的方法包括:
利用所述建立的数据传输通道从应用模块的存储器中下载通信模块的固件更新文件,将所述固件更新文件下载保存到通信模块的存储器当中。
6.根据权利要求2所述的方法,其特征在于,所述将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新文件下载到应用模块并保存的方法包括:
将预先设置的应用程序连同应用模块的固件更新文件一起,在对应用模块进行固件更新的过程中共同下载到应用模块的RAM后,再将RAM中的所述内容写入应用模块的存储器当中;
应用模块运行所述应用程序,下载通信模块的固件更新文件并保存到应用模块的RAM当中。
7.根据权利要求6所述的方法,其特征在于,利用所述数据传输通道从应用模块下载通信模块的固件更新文件并保存到通信模块的存储器当中,完成通信模块的固件更新的方法包括:
利用所述建立的数据传输通道从应用模块的RAM中下载通信模块的固件更新文件,将所述固件更新文件下载保存到通信模块的存储器当中。
8.一种固件更新的***,其特征在于,该***包括:应用模块和通信模块;
应用模块,用于从外部将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新文件下载到应用模块并保存;还用于向通信模块发送所述应用程序,以及利用通信模块建立的数据传输通道将所述通信模块的固件更新文件发送给通信模块;
通信模块,用于从应用模块获取所述应用程序,利用所述应用程序建立与应用模块的数据传输通道,利用所述数据传输通道从应用模块下载通信模块的固件更新文件,并保存到通信模块自身的存储器当中,完成通信模块的固件更新。
9.根据权利要求8所述的***,其特征在于,所述应用模块进一步包括:第二处理器单元、第二存储器单元、第二串行通信端口和外部串行通信端口;
所述第二处理器单元,通过第二串行通信端口与通信模块相连,用于通过外部串行通信端口从外部下载包含有通信模块的固件更新文件和预先设置的应用程序的应用模块的固件更新文件,并发送到所述第二存储器单元;还用于按照所述应用程序的指示给通信模块上电,通过第二串行通信端口接收所述通信模块发送的同步字节确认请求并通过第二串行通信端口向其返回确认消息;之后将第二存储器单元中保存的应用程序中包含的配置代码通过第二串行通信端口发送给通信模块,利用根据所述配置代码建立的数据传输通道,通过第二串行通信端口将通信模块的固件更新文件传输给通信模块;
所述第二串行通信端口,用于连接第二处理器单元和通信模块,并转发所有第二处理器单元和通信模块之间的通讯消息;
所述外部串行通信端口,用于将应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序转发给第二处理器单元;
所述第二存储器单元,用于保存第二处理器单元发来的应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序,并接收第二处理器单元的读取调用,将所述应用程序中包含的配置代码返回给第二处理器单元,还将所述通信模块的固件更新文件返回给第二处理器单元。
10.根据权利要求8所述的***,其特征在于,所述应用模块进一步包括:第二处理器单元、第二存储器单元、第二串行通信端口和外部串行通信端口;
所述第二处理器单元,通过第二串行通信端口与通信模块相连,用于通过外部串行通信端口从外部下载应用模块的固件更新文件和预先设置的应用程序,并发送到所述第二存储器单元,运行所述应用程序,通过外部串行通信端口从外部下载通信模块的固件更新文件并发送到所述第二存储器单元;还用于按照所述应用程序的指示给通信模块上电,通过第二串行通信端口接收所述通信模块发送的同步字节确认请求并通过第二串行通信端口向其返回确认消息;之后将第二存储器单元中保存的应用程序中包含的配置代码通过第二串行通信端口发送给通信模块,利用根据所述配置代码建立的数据传输通道,通过第二串行通信端口将通信模块的固件更新文件传输给通信模块;
所述第二串行通信端口,用于连接第二处理器单元和通信模块,并转发所有第二处理器单元和通信模块之间的通讯消息;
所述外部串行通信端口,用于将应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序转发给第二处理器单元;
所述第二存储器单元,用于保存第二处理器单元发来的应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序,并接收第二处理器单元的读取调用,将所述应用程序中包含的配置代码返回给第二处理器单元,还将所述通信模块的固件更新文件返回给第二处理器单元。
11.根据权利要求9或10所述的***,其特征在于,所述通信模块进一步包括:第一处理器单元、第一存储器单元和第一串行通信端口;
所述第一处理器单元,通过第一串行通信端口与应用模块相连,用于在上电后通过第一串行通信端口向应用模块发送同步确认请求,当在设定时间内通过第一串行通信端口接收到所述应用模块返回的确认消息后,通过第一串行通信端口从所述应用模块下载所述应用程序中包含的配置代码,根据所述配置代码配置并建立通信模块与应用模块间的数据传输通道,利用所述通道并通过第一串行通信端口从应用模块的第二存储器单元下载通信模块的固件更新文件并发送给第一存储器单元;
所述第一存储器单元,用于接收第一处理器单元发送的通信模块的固件更新文件并保存;
所述第一串行通信端口,用于连接第一处理器单元和应用模块,并转发所有应用模块和第一处理器单元之间的通讯消息。
12.根据权利要求8所述的***,其特征在于,所述应用模块进一步包括:第二处理器单元、第二存储器单元、第二串行通信端口和外部串行通信端口;
所述第二处理器单元,通过第二串行通信端口与通信模块相连,用于通过外部串行通信端口从外部下载应用模块的固件更新文件和预先设置的应用程序,并发送到所述第二存储器单元;运行所述应用程序,通过外部串行通信端口从外部下载通信模块的固件更新文件并保存在第二处理器单元自身的内存缓冲区内;还用于按照所述应用程序的指示给通信模块上电,通过第二串行通信端口接收所述通信模块发送的同步字节确认请求并通过第二串行通信端口向其返回确认消息;之后将第二存储器单元中保存的应用程序中包含的配置代码通过第二串行通信端口发送给通信模块,利用根据所述配置代码建立的数据传输通道,通过第二串行通信端口将所述内存缓冲区内的通信模块的固件更新文件传输给通信模块;
所述第二串行通信端口,用于连接第二处理器单元和通信模块,并转发所有第二处理器单元和通信模块之间的通讯消息;
所述外部串行通信端口,用于将应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序转发给第二处理器单元;
所述第二存储器单元,用于保存第二处理器单元发来的应用模块的固件更新文件和预先设置的应用程序,并接收第二处理器单元的读取调用,将所述应用程序中包含的配置代码返回给第二处理器单元。
13.根据权利要求12所述的***,其特征在于,所述通信模块进一步包括:第一处理器单元、第一存储器单元和第一串行通信端口;
所述第一处理器单元,通过第一串行通信端口与应用模块相连,用于在上电后通过第一串行通信端口向应用模块发送同步确认请求,当在设定时间内通过第一串行通信端口接收到所述应用模块返回的确认消息后,通过第一串行通信端口从所述应用模块下载所述应用程序中包含的配置代码,根据所述配置代码配置并建立通信模块与应用模块间的数据传输通道;利用所述通道并通过第一串行通信端口从应用模块下载通信模块的固件更新文件并发送给第一存储器单元;
所述第一存储器单元,用于接收第一处理器单元发送的通信模块的固件更新文件并保存;
所述第一串行通信端口,用于连接第一处理器单元和应用模块,并转发所有应用模块和第一处理器单元之间的通讯消息。
14.根据权利要求8、9、10、12或13所述的***,所述通信模块中的第一存储器单元及应用模块中的第二存储器单元,均为任意类型的非易失性存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910045919.1A CN101790252B (zh) | 2009-01-22 | 2009-01-22 | 一种固件更新的方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910045919.1A CN101790252B (zh) | 2009-01-22 | 2009-01-22 | 一种固件更新的方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101790252A true CN101790252A (zh) | 2010-07-28 |
CN101790252B CN101790252B (zh) | 2013-03-27 |
Family
ID=42533228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910045919.1A Active CN101790252B (zh) | 2009-01-22 | 2009-01-22 | 一种固件更新的方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101790252B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102707960A (zh) * | 2011-03-28 | 2012-10-03 | 联想(北京)有限公司 | 固件更新方法、便携移动终端及便携设备 |
CN104427120A (zh) * | 2013-09-06 | 2015-03-18 | 展讯通信(上海)有限公司 | 通信终端及其非易失性数据的处理方法 |
WO2016000493A1 (zh) * | 2014-06-30 | 2016-01-07 | 飞天诚信科技股份有限公司 | 一种安全终端的双芯片方案的固件更新方法 |
CN105574024A (zh) * | 2014-10-14 | 2016-05-11 | 中兴通讯股份有限公司 | 非易失性数据存储方法及装置 |
CN106293621A (zh) * | 2016-08-01 | 2017-01-04 | 飞天诚信科技股份有限公司 | 一种固件升级方法及装置 |
CN106789164A (zh) * | 2016-11-24 | 2017-05-31 | 努比亚技术有限公司 | 一种网络参数更新方法、网络设备及移动终端 |
CN106980517A (zh) * | 2017-03-17 | 2017-07-25 | 杭州迪普科技股份有限公司 | 一种固件的下载方法及装置 |
CN109408125A (zh) * | 2018-11-06 | 2019-03-01 | 英业达科技有限公司 | 服务器*** |
CN109542490A (zh) * | 2017-09-21 | 2019-03-29 | 西部数据技术公司 | 硬件辅助固件下载同步 |
CN110096272A (zh) * | 2019-03-19 | 2019-08-06 | 深圳壹账通智能科技有限公司 | 库文件处理方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184301A (zh) * | 2007-12-14 | 2008-05-21 | 中兴通讯股份有限公司 | 移动终端远程固件升级方法及*** |
US20080250403A1 (en) * | 2007-04-06 | 2008-10-09 | Samsung Electronics Co., Ltd. | Method and apparatus for generating firmware update file and updating firmware by using the firmware update file |
-
2009
- 2009-01-22 CN CN200910045919.1A patent/CN101790252B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080250403A1 (en) * | 2007-04-06 | 2008-10-09 | Samsung Electronics Co., Ltd. | Method and apparatus for generating firmware update file and updating firmware by using the firmware update file |
CN101184301A (zh) * | 2007-12-14 | 2008-05-21 | 中兴通讯股份有限公司 | 移动终端远程固件升级方法及*** |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102707960B (zh) * | 2011-03-28 | 2016-01-27 | 联想(北京)有限公司 | 固件更新方法、便携移动终端及便携设备 |
CN102707960A (zh) * | 2011-03-28 | 2012-10-03 | 联想(北京)有限公司 | 固件更新方法、便携移动终端及便携设备 |
CN104427120A (zh) * | 2013-09-06 | 2015-03-18 | 展讯通信(上海)有限公司 | 通信终端及其非易失性数据的处理方法 |
WO2016000493A1 (zh) * | 2014-06-30 | 2016-01-07 | 飞天诚信科技股份有限公司 | 一种安全终端的双芯片方案的固件更新方法 |
CN105574024A (zh) * | 2014-10-14 | 2016-05-11 | 中兴通讯股份有限公司 | 非易失性数据存储方法及装置 |
CN105574024B (zh) * | 2014-10-14 | 2019-12-03 | 中兴通讯股份有限公司 | 非易失性数据存储方法及装置 |
CN106293621B (zh) * | 2016-08-01 | 2019-02-15 | 飞天诚信科技股份有限公司 | 一种固件升级方法及装置 |
CN106293621A (zh) * | 2016-08-01 | 2017-01-04 | 飞天诚信科技股份有限公司 | 一种固件升级方法及装置 |
CN106789164A (zh) * | 2016-11-24 | 2017-05-31 | 努比亚技术有限公司 | 一种网络参数更新方法、网络设备及移动终端 |
CN106980517A (zh) * | 2017-03-17 | 2017-07-25 | 杭州迪普科技股份有限公司 | 一种固件的下载方法及装置 |
CN106980517B (zh) * | 2017-03-17 | 2020-10-09 | 杭州迪普科技股份有限公司 | 一种固件的下载方法及装置 |
CN109542490A (zh) * | 2017-09-21 | 2019-03-29 | 西部数据技术公司 | 硬件辅助固件下载同步 |
CN109542490B (zh) * | 2017-09-21 | 2022-04-01 | 西部数据技术公司 | 硬件辅助固件下载同步方法和装置 |
CN109408125A (zh) * | 2018-11-06 | 2019-03-01 | 英业达科技有限公司 | 服务器*** |
CN110096272A (zh) * | 2019-03-19 | 2019-08-06 | 深圳壹账通智能科技有限公司 | 库文件处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101790252B (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101790252B (zh) | 一种固件更新的方法和*** | |
CN101883446B (zh) | 一种sd控制芯片及数据通信方法 | |
CN101192165B (zh) | 主从式多处理器***以及软件版本加载方法 | |
CN107918545A (zh) | 一种基于zynq的远程升级***及其实现方法 | |
CN101008898A (zh) | 一种智能化设备软件升级与修复的方法和*** | |
CN103092648B (zh) | 一种镜像升级方法、***及用户设备和个人计算机 | |
CN104461660A (zh) | 一种异构***的多模式动态加载方法 | |
CN101452430A (zh) | 多处理器之间的通信方法与包括多处理器的通信装置 | |
CN109407574B (zh) | 一种多总线可选择输出控制装置及其方法 | |
CN101398798B (zh) | 一种对无线终端设备进行升级与修复的方法和*** | |
CN112579506A (zh) | Bios与bmc通信的方法、bios、bmc和服务器 | |
CN201571108U (zh) | 嵌入式移动终端的操作平台 | |
CN101316416B (zh) | 双卡双待手机芯片通信***及通信方法 | |
CN103488601B (zh) | 一种时钟延时、数据访问方法、***及设备 | |
CN100416531C (zh) | 多功能通用串行总线无线桥接装置及***装置 | |
CN101251831B (zh) | 支持主从设备互换的移动存储器和主从设备互换方法 | |
CN207586900U (zh) | 基于zynq的远程升级*** | |
CN201282464Y (zh) | 一种***及***远程在线升级*** | |
CN201378317Y (zh) | 一种采用jtag方式的代码下载*** | |
CN101625625B (zh) | 信号中继装置及利用该装置访问外部存储器的方法 | |
CN101309121A (zh) | 实现Linux平台下无需内核添加驱动的MUX协议的方法 | |
CN100365607C (zh) | 对sd卡接口进行控制的装置和方法 | |
CN202383479U (zh) | 一种数控机床控制*** | |
CN101521956A (zh) | 一种通过gpio口读写t卡的方法、***和手机 | |
CN112769613B (zh) | 一种fpga在线升级的***及其在线升级方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |