CN101246430A - 一种无线终端产品Boot引导程序的实现方法 - Google Patents
一种无线终端产品Boot引导程序的实现方法 Download PDFInfo
- Publication number
- CN101246430A CN101246430A CNA2008100655794A CN200810065579A CN101246430A CN 101246430 A CN101246430 A CN 101246430A CN A2008100655794 A CNA2008100655794 A CN A2008100655794A CN 200810065579 A CN200810065579 A CN 200810065579A CN 101246430 A CN101246430 A CN 101246430A
- Authority
- CN
- China
- Prior art keywords
- boot
- application program
- executive routine
- implementation method
- download
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种CDMA无线终端产品Boot引导程序的实现方法,其包括以下步骤:在flash芯片中设置与应用程序独立的boot执行程序,该boot执行程序仅用于启动应用程序下载功能,并保存在该flash芯片的起始位置;修改应用程序的启动地址在所述boot执行程序之后;通过连接服务器端,上电并接收下载指令,进行应用程序的下载功能。本发明方法由于采用了在闪存物理存储空间中设置的独立BOOT执行程序,实现了BOOT功能的模块化,可以单独运行,而不依赖主程序的运行结果,降低了维护成本;提高了终端的软件维修速度,给生产、售后、运营商或用户升级软件提供了一种简单、快捷的实现方案。
Description
技术领域
本发明属于无线通讯技术领域,特别适应于CDMA、GSM、PHS、WCDMA、TD-SCDMA、单模/多模等无线通讯终端产品,尤其涉及的是一种无线通讯终端产品中可持续进行软件下载的方法改进。背景技术
在现有技术终端的软硬件平台中,如基于高通MSM6000平台的CDMACDMA(Code Division Multiple Access,码分复用)无线终端,存储设备一般使用NOR Flash(NOR闪存)。MSM6000CPU本身不带有Boot功能,高通发布的DMSS程序(Dual-Mode Subscriber Software,是一种手机软件包)没有独立的Boot引导程序,如图1所示,DMSS编译完成以后是一个独立的应用程序,其从起始地址0x00000000进行存储。二次开发一般在DMSS的基础上进行,底层程序模块没有发生变化,在烧片过程中将整个应用程序烧录到Flash中。程序在正常运行时,支持软件升级功能。
但是,这种软件***经常在用户使用过程中,由于文件***异常、程序异常、死机等种种原因导致下载功能不能正常工作。这时需要使用专用的仿真器或是下载板对终端进行升级,由于一般的售后网点不具备这些专业设备,所以这种升级工作一般需要进行返厂维修,这样就增加了售后成本和维修的周期。
因此,现有技术还有待于改进和发展。
发明内容
本发明的目的在于提供一种无线终端产品Boot引导程序的实现方法,针对上述现有技术的缺陷,为了保证终端在死机等情况下仍然能够具备下载功能,提出一种在终端Boot模块的设计实现方法,在终端硬件特别是存储器硬件没有损坏的前提下,保证终端的串口下载功能可以正常工作。
本发明的技术方案包括:
一种无线终端产品Boot引导程序的实现方法,其包括以下步骤:
A、在Flash芯片中设置与应用程序独立的Boot执行程序,该Boot执行程序仅用于启动应用程序下载功能,并保存在该Flash芯片的起始位置;
B、通过连接服务器端,上电并接收下载指令,进行应用程序的下载功能。
所述的实现方法,其中,所述步骤A还包括:修改应用程序的启动地址在所述Boot执行程序之后。
所述的实现方法,其中,所述Boot执行程序的下载功能通过串口实现。
所述的实现方法,其中,所述步骤B之后还包括:
C1、通过仿真器或专用的下载板,分别将所述Boot执行程序和应用程序下载到对应的Flash芯片中,备份出来并做相应的参数处理,以形成一可用于烧片的生产版本。
所述的实现方法,其中,所述步骤B之后还包括:
C2、将Boot执行程序和应用程序根据存储位置连接到一起制成二进制文件,以用于对Flash芯片的烧刻。
所述的实现方法,其中,所述步骤A还包括:所述Boot执行程序是通过将所述应用程序中除根下载入口之外的其他函数删除并编译后形成。
所述的实现方法,其中,所述步骤C还包括:如果Boot执行程序在运行过程中没有检测到下载指令,也没有检测应用程序存在时,则一直处在下载状态,等待应用程序软件的下载。
所述的实现方法,其中,所述Boot执行程序设置为压缩到所述Flash芯片的一个区块中。
所述的实现方法,其中,所述应用程序的起始位置从所述Boot执行程序存储位置之后的一个独立的区块开始。
所述的实现方法,其中,所述步骤B还包括:
在所述无线终端正常启动时还执行以下步骤:
B1、上电后判断是否有收到串口指令,如无执行跳转到执行应用程序,否则执行下一步骤;
B2、判断是否进入下载模式,如无执行跳转到执行应用程序,否则执行下一步骤;
B3、进入串口下载模式,执行下载指令。
本发明所提供的一种无线终端产品Boot引导程序的实现方法,由于采用了在闪存物理存储空间中设置的独立Boot执行程序,与现有技术相比,实现了Boot功能的模块化,可以单独运行,而不依赖主程序的运行结果,由此实现了终端在死机等异常情况下时可以利用简单设备完成软件升级等目的,节省了仿真器、专用下载板等固定资产投入,降低了维护成本;故障终端可以就地进行软件维修,在一般的维修中心即可维修,不必返到特定的维修中心或是返厂,提高了终端的软件维修速度,给生产、售后、运营商或用户升级软件提供了一种简单、快捷的实现方案。
附图说明
以下结合附图对本发明的较佳实施例加以说明,附图中:
图1为现有技术的无独立Boot执行程序、仅一个可执行的应用程序在Flash中的软件存储结构示意图;
图2为本发明方法中增加独立的Boot执行程序、应用程序起始地址往后偏移的软件存储结构示意图;
图3为本发明方法中闪存Boot执行程序运行时的流程事宜图。
具体实施方式
以下结合附图,将对本发明的各较佳实施例进行更为详细的说明。
以CDMA无线终端产品为例,本发明Boot引导程序的实现方法是一种Boot模块的设计实现方案,其将原来NOR Flash中的一个应用程序(Application)分成Boot执行程序和应用程序(Applicationl)两个部分,如图2所示。Boot执行程序是一个独立执行程序,占用空间非常小,支持串口下载功能。在Flash中应用程序Applicationl的存储位置同原先的应用程序Application不同。
如果应用程序Applicationl正常工作,则其自带的下载功能可以正常使用,无需Boot执行程序的下载功能。如果Applicationl异常不支持下载功能,则可以使用Boot执行程序中的下载功能进行软件下载。
由于低端手机中的Flash空间有限,并且NOR Flash一般是按4K、8K字节、16K或64K字节大小的block(区块)进行物理划分,在执行Flash BlockErase(区块擦除操作,闪存在写之前都必须执行擦除操作)操作时,一个block的内容全部擦除。因此本发明方法中的Boot执行程序和应用程序的设计遵循以下原则:一、Boot执行程序应尽可能的小,最好能够压缩到一个block中;二、应用程序的起始位置应从一个独立的block开始,以便Boot执行程序和应用Applicationl能够在存储位置上完全独立,方便闪存的读写操作。这样两个程序可以独立升级,互不影响。
Boot执行程序与应用程序Applicationl是两个独立的可运行程序,在CPU上电运行过程中,Boot执行程序会根据图3中所示的流程图,决定是否起动应用程序Applicationl的运行。
在软件升级过程,一般保持Boot执行程序不被更新,仅下载应用程序Applicationl。这样Boot执行程序就可以一直稳定可靠的工作,从而保证可以持续的进行软件下载功能。
一般来说,应用程序Applicationl的起始地址与Boot执行程序的大小有一定关系,但二者没有必然的联系,只要二者大小的满足存储空间的要求,可以独立设计,在设计上没有必然的先后关系。
本发明方法的具体步骤包括如下:
步骤一:设计独立的Boot可执行程序,可将应用程序中保留串口下载功能,删除的其他不必要的任务和模块,并进行相应的编译链接。例如在应用程序main函数体中删除其他的函数,仅保留Boot downloader下载入口。
为了保证可以正确处理PC侧的指令,修改与串口下载相关的源文件,以保证串口下载命令的正确处理。由于ARM编译采用了优化编译选项,使用本发明方法制作出来的Boot执行程序其二进制文件为12K字节,占用的存储空间可以接受。
步骤二:设计新的应用程序Applicationl的起始地址。在scl(SCATTERLOADING DESCRIPTION FILE)文件中修改应用程序的偏移地址,将应用程序的起始地址修改为实际存储起始地址Addressl,重新编译后应用程序的起始地址就从0x0变为Addressl。本发明方法的Boot执行程序和应用程序的存储结构示意图如图2所示。
步骤三:在手机出现死机等异常情况时,应用程序的下载功能就无法使用,此时采用连接线连接服务器端如PC机和本发明方法的无线终端,开启PC侧的下载工具,重新给该无线终端上电,这时CPU就启动了闪存中独立保存的Boot执行程序,而不管应用程序出现什么样的问题。
由于Boot执行程序支持串口下载功能,可以接收并处理PC侧指令,如果Boot执行程序收到了PC侧的下载指令,该无线终端就进入下载模式,PC侧软件就可以根据下载流程使所述无线终端完成程序下载,更新该无线终端中Flash中的内容,主要指应用程序的代码,完成应用程序的软件升级,参考图3所示的流程,这样,在无线终端在硬件完好的前提下,在遇到应用程序故障时,就可以在普通的维护中心,无须专用的仿真器等维护工具,实现对无线终端应用程序的升级和维护。如果Boot执行程序在运行过程中没有检测到PC侧的下载指令,也没有检测到应用程序存在,则其CPU可以一直处在下载状态,等待应用程序软件的下载。
需要说明的是,本发明Boot引导程序的实现方法中,可以在正常需要对应用程序维护和升级时采用,并不限于在应用程序故障时才采用本发明方法实现。
步骤四:制作用于生产的软件版本。本发明方法通过仿真器或是专用的下载板,分别将Boot执行程序和应用Applicationl下载到对应的闪存Flash中,然后再备份出来并做相应的参数处理,即是一个可用于烧片的生产版本,可以在生产中烧刻到相应的Flash中,进行批量生产。也可以利用应用软件将Boot执行程序和应用Applicationl根据存储位置连接到一起制成二进制文件,作为生产时写入无线终端Flash的代码。
本发明方法在无线终端产品上实现了独立Boot执行程序的设计,本发明无线终端具有可持续下载的功能,与现有技术相比,实现了Boot功能的模块化,可以单独运行,不依赖与主程序即应用程序的运行结果。本发明无线终端在死机等异常情况下时可以利用简单设备例如PC机完成应用程序软件升级和更新维护等目的,节省了仿真器、专用下载板的专用维护设备的成本投入;故障的无线终端可以使用就地的条件进行软件维修,在一般的维修中心即可实现,不必返到特定的维修中心或是返厂,提高了无线终端的软件维修速度,给生产、售后、运营商或用户升级软件带来简单、快捷的实现方式。
由于本发明所述方法和技术具有较大的通用性,针对提供无线接入功能的GSM、PHS、WCDMA、TD-SCDMA、单模/多模等无线接入终端产品均可以采用本发明方法的设计独立方式的Boot执行程序,并在Boot执行程序模块中保持软件下载等相应的功能。
特别是针对高通的MSM6000软件***,本发明实现方法简单,成本低;发明方法适用范围广,简单易行。
应当理解的是,上述针对本发明方法具体实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制;对本发明技术所在领域的普通技术人员来说,可以根据本发明的技术方案及其构思进行相应的等同改变或替换,而所有这些改变或替换,都应属于本发明所附权利要求的保护范围。
Claims (10)
1、一种无线终端产品Boot引导程序的实现方法,其包括以下步骤:
A、在Flash芯片中设置与应用程序独立的Boot执行程序,该Boot执行程序仅用于启动应用程序下载功能,并保存在该Flash芯片的起始位置;
B、通过连接服务器端,上电并接收下载指令,进行应用程序的下载功能。
2、根据权利要求1所述的实现方法,其特征在于,所述步骤A还包括:修改应用程序的启动地址在所述Boot执行程序之后。
3、根据权利要求2所述的实现方法,其特征在于,所述Boot执行程序的下载功能通过串口实现。
4、根据权利要求3所述的实现方法,其特征在于,所述步骤B之后还包括:
C1、通过仿真器或专用的下载板,分别将所述Boot执行程序和应用程序下载到对应的Flash芯片中,备份出来并做相应的参数处理,以形成一可用于烧片的生产版本。
5、根据权利要求3所述的实现方法,其特征在于,所述步骤B之后还包括:
C2、将Boot执行程序和应用程序根据存储位置连接到一起制成二进制文件,以用于对Flash芯片的烧刻。
6、根据权利要求1所述的实现方法,其特征在于,所述步骤A还包括:所述Boot执行程序是通过将所述应用程序中除根下载入口之外的其他函数删除并编译后形成。
7、根据权利要求1所述的实现方法,其特征在于,所述步骤B还包括:如果Boot执行程序在运行过程中没有检测到下载指令,也没有检测应用程序存在时,则一直处在下载状态,等待应用程序软件的下载。
8、根据权利要求1至7任一所述的实现方法,其特征在于,所述Boot执行程序设置为压缩到所述Flash芯片的一个区块中。
9、根据权利要求1至7任一所述的实现方法,其特征在于,所述应用程序的起始位置从所述Boot执行程序存储位置之后的一个独立的区块开始。
10、根据权利要求3所述的实现方法,其特征在于,所述步骤B还包括:
在所述无线终端正常启动时还执行以下步骤:
B1、上电后判断是否有收到串口指令,如无执行跳转到执行应用程序,否则执行下一步骤;
B2、判断是否进入下载模式,如无执行跳转到执行应用程序,否则执行下一步骤;
B3、进入串口下载模式,执行下载指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100655794A CN101246430A (zh) | 2008-03-13 | 2008-03-13 | 一种无线终端产品Boot引导程序的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100655794A CN101246430A (zh) | 2008-03-13 | 2008-03-13 | 一种无线终端产品Boot引导程序的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101246430A true CN101246430A (zh) | 2008-08-20 |
Family
ID=39946898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100655794A Pending CN101246430A (zh) | 2008-03-13 | 2008-03-13 | 一种无线终端产品Boot引导程序的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101246430A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365676A (zh) * | 2012-04-01 | 2013-10-23 | 中兴通讯股份有限公司 | 通信设备的软件升级方法及装置 |
CN104572180A (zh) * | 2014-12-19 | 2015-04-29 | 沈阳东软医疗***有限公司 | 一种嵌入式设备的固件升级方法及嵌入式*** |
CN105550010A (zh) * | 2016-03-11 | 2016-05-04 | 湘潭大学 | 一种基于SoC的无线智能程序加载方法及*** |
CN109388422A (zh) * | 2018-09-26 | 2019-02-26 | 威胜集团有限公司 | 固件程序升级方法及其电能表 |
-
2008
- 2008-03-13 CN CNA2008100655794A patent/CN101246430A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365676A (zh) * | 2012-04-01 | 2013-10-23 | 中兴通讯股份有限公司 | 通信设备的软件升级方法及装置 |
CN104572180A (zh) * | 2014-12-19 | 2015-04-29 | 沈阳东软医疗***有限公司 | 一种嵌入式设备的固件升级方法及嵌入式*** |
CN104572180B (zh) * | 2014-12-19 | 2018-06-26 | 沈阳东软医疗***有限公司 | 一种嵌入式设备的固件升级方法及嵌入式*** |
CN105550010A (zh) * | 2016-03-11 | 2016-05-04 | 湘潭大学 | 一种基于SoC的无线智能程序加载方法及*** |
CN105550010B (zh) * | 2016-03-11 | 2019-02-05 | 湘潭大学 | 一种基于SoC的无线智能程序加载方法及*** |
CN109388422A (zh) * | 2018-09-26 | 2019-02-26 | 威胜集团有限公司 | 固件程序升级方法及其电能表 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10318268B2 (en) | Setting method for binary integration of boot program and kernel program | |
CN101937340B (zh) | 使用补丁对软件进行动态升级与控制的方法和装置 | |
CN101799763A (zh) | 内核在线补丁的方法、装置和*** | |
CN100570558C (zh) | 一种芯片固件升级方法 | |
CN102567049B (zh) | 嵌入式操作***的升级方法 | |
CN103777983A (zh) | 一种星载软件在轨维护及升级方法 | |
CN102541572A (zh) | 一种实现操作***内核引导的方法、***及装置 | |
CN101950254B (zh) | 一种软件更新方法和*** | |
CN103077043B (zh) | 一种快速启动及运行Linux的方法 | |
CN102508686A (zh) | 一种***安全升级的实现方法及其*** | |
CN101615128B (zh) | 一种单片机在线升级的方法及装置 | |
CN101246430A (zh) | 一种无线终端产品Boot引导程序的实现方法 | |
CN102722384A (zh) | 一种光模块固件在线升级的方法及升级*** | |
CN101216773A (zh) | 一种嵌入式Linux***固件下载方法和装置 | |
CN102214114B (zh) | 一种双cpu***客户机程序的升级方法及*** | |
CN103197942A (zh) | 一种补丁的生成方法、打补丁的方法及装置 | |
CN102609274A (zh) | 一种***快速启动运行方法及电视机 | |
CN103077056B (zh) | 使用少量ROM资源的Bootlorder实现方法 | |
CN104699453A (zh) | 用于改变控制单元的存储器中的软件的方法和计算机*** | |
CN102004657A (zh) | 一种电子设备及其升级方法 | |
CN102662700B (zh) | 一种嵌入式软件版本的发布及升级方法 | |
CN105760194A (zh) | 一种dsp控制***软件升级方法及装置 | |
CN102883309B (zh) | 机器到机器m2m通信方法及装置 | |
CN101909314A (zh) | 一种配置基站参数的方法和*** | |
CN100373336C (zh) | 一种实现单片机闪存动态更新的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080820 |