一种无线终端产品Boot引导程序的实现方法

文档序号:6460720阅读:371来源:国知局
专利名称:一种无线终端产品Boot引导程序的实现方法
技术领域
本发明属于无线通讯4支术领域,特别适应于CDMA、 GSM、 PHS、 WCDMA、 TD-SCDMA、单模/多模等无线通讯终端产品,尤其涉及的是一 种无线通讯终端产品中可持续进行软件下载的方法改进。
背景技术
在现有4支术终端的软石更件平台中,如基于高通MSM6000平台的CDMA CDMA (Code Division Multiple Access,码分复用)无线终端,存储设备一 般使用NOR Flash (NOR闪存)。MSM6000 CPU本身不带有Boot功能,高 通发布的DMSS程序(Dual-Mode Subscriber Software,是一种手机软件包) 没有独立的Boot引导程序,如图l所示,DMSS编译完成以后是一个独立 的应用程序,其从起始地址0x00000000进行存^f诸。二次开发一般在DMSS 的基础上进行,底层程序模块没有发生变化,在烧片过程中将整个应用程 序烧录到Flash中。程序在正常运行时,支持软件升级功能。
但是,这种软件系统经常在用户使用过程中,由于文件系统异常、程序 异常、死机等种种原因导致下载功能不能正常工作。这时需要使用专用的 仿真器或是下载板对终端进行升级,由于一般的售后网点不具备这些专业 设备,所以这种升级工作一般需要进行返厂维修,这样就增加了售后成本 和维修的周期。
因此,现有^l支术还有待于改进和发展
发明内容
本发明的目的在于提供一种无线终端产品Boot引导程序的实现方法, 针对上述现有技术的缺陷,为了保证终端在死机等情况下仍然能够具备下 载功能,提出一种在终端Boot模块的设计实现方法,在终端硬件特别是存 储器硬件没有损坏的前提下,保证终端的串口下载功能可以正常工作。
本发明的技术方案包括
一种无线终端产品Boot引导程序的实现方法,其包括以下步骤
A、 在Flash芯片中设置与应用程序独立的Boot执行程序,该Boot执 行程序4又用于启动应用程序下载功能,并保存在该Flash芯片的起始位置;
B、 通过连接服务器端,上电并接收下载指令,进行应用程序的下载功能。
所述的实现方法,其中,所述步骤A还包括修改应用程序的启动地 址在所述Boot执行程序之后。
所述的实现方法,其中,所述Boot执行程序的下载功能通过串口实现。
所述的实现方法,其中,所述步骤B之后还包括
Cl、通过仿真器或专用的下载板,分别将所述Boot执行程序和应用程 序下载到对应的Flash芯片中,备份出来并做相应的参数处理,以形成一可 用于烧片的生产版本。
所述的实现方法,其中,所述步骤B之后还包括
C2、将Boot执行程序和应用程序根据存储位置连接到一起制成二进制 文件,以用于对Flash芯片的烧刻。
所述的实现方法,其中,所述步骤A还包括所述Boot执行程序是通 过将所述应用程序中除根下载入口之外的其他函数删除并编译后形成。
所述的实现方法,其中,所述步骤C还包括如果Boot执行程序在运 行过程中没有检测到下载指令,也没有检测应用程序存在时,则一直处在 下载状态,等待应用程序软件的下载。
所述的实现方法,其中,所述Boot执行程序设置为压缩到所述Flash芯片的一个区块中。
所述的实现方法,其中,所述应用程序的起始位置从所述Boot执行程 序存储位置之后的一个独立的区块开始。
所述的实现方法,其中,所述步骤B还包括 在所述无线终端正常启动时还执行以下步骤
Bl、上电后判断是否有收到串口指令,如无执行跳转到执行应用程序, 否则执行下一步骤;
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 Block Erase (区块擦除操作,闪存在写之前都必须执行擦除操作)操作时, 一个 block的内容全部擦除。因此本发明方法中的Boot执行程序和应用程序的 设计遵循以下原则一、Boot执行程序应尽可能的小,最好能够压缩到一 个block中;二、应用程序的起始位置应从一个独立的block开始,以^更Boot 执行程序和应用Applicationl能够在存储位置上完全独立,方便闪存的读写 操作。这样两个程序可以独立升级,互不影响。Boot执行程序与应用程序Applicationl是两个独立的可运行程序,在 CPU上电运行过程中,Boot执行程序会根据图3中所示的流程图,决定是 否起动应用程序Applicationl的运行。在软件升级过程, 一般保持Boot执行程序不被更新,仅下载应用程序 Applications这样Boot执行程序就可以一直稳定可靠的工作,从而保证可 以持续的进行软件下载功能。一般来说,应用程序Applicationl的起始地址与Boot执行程序的大小 有一定关系,但二者没有必然的联系,只要二者大小的满足存储空间的要 求,可以独立设计,在设计上没有必然的先后关系。本发明方法的具体步骤包括如下步骤一设计独立的Boot可执行程序,可将应用程序中保留串口下载 功能,删除的其他不必要的任务和模块,并进行相应的编译链接。例如在 应用程序main函数体中删除其他的函数,仅保留Boot_downloader下载入口 。为了保证可以正确处理PC侧的指令,修改与串口下载相关的源文件, 以保证串口下载命令的正确处理。由于ARM编译采用了优化编译选项,使 用本发明方法制作出来的Boot执行程序其二进制文件为12K字节,占用的 存储空间可以接受。步骤二设计新的应用程序Applicationl的起始地址。在scl( SCATTER LOADING DESCRIPTION FILE)文件中修改应用程序的偏移地址,将应用 程序的起始地址修改为实际存储起始地址Addressl,重新编译后应用程序的 起始地址就从0x0变为Address 1 。本发明方法的Boot执行程序和应用程序 的存储结构示意图如图2所示。步骤三在手机出现死机等异常情况时,应用程序的下载功能就无法 使用,此时采用连4妄线连接服务器端如PC机和本发明方法的无线终端,开 启PC侧的下载工具,重新给该无线终端上电,这时CPU就启动了闪存中 独立保存的Boot执行程序,而不管应用程序出现什么样的问题。由于Boot执行程序支持串口下载功能,可以接收并处理PC侧指令, 如果Boot执行程序收到了 PC侧的下载指令,该无线终端就进入下载模式, PC侧软件就可以^^艮据下载流程使所述无线终端完成程序下载,更新该无线 终端中Flash中的内容,主要指应用程序的代码,完成应用程序的软件升级, 参考图3所示的流程,这样,在无线终端在硬件完好的前提下,在遇到应用程序故障时,就可以在普通的维护中心,无须专用的仿真器等维护工具,实现对无线终端应用程序的升级和维护。如果Boot执4亍程序在运^f亍过程中 没有检测到PC侧的下载指令,也没有检测到应用程序存在,则其CPU可 以一直处在下载状态,等待应用程序软件的下载。需要说明的是,本发明Boot引导程序的实现方法中,可以在正常需要 对应用程序维护和升级时采用,并不限于在应用程序故障时才釆用本发明 方法实现。步骤四制作用于生产的软件版本。本发明方法通过仿真器或是专用的 下载板,分别将Boot执行程序和应用Applicationl下载到对应的闪存Flash 中,然后再备份出来并做相应的参数处理,即是一个可用于烧片的生产版 本,可以在生产中烧刻到相应的Flash中,进^f亍批量生产。也可以利用应用 软件将Boot执行程序和应用Applicationl根据存储位置连接到一起制成二 进制文件,作为生产时写入无线终端Flash的代码。本发明方法在无线终端产品上实现了独立Boot执行程序的设计,本发 明无线终端具有可持续下载的功能,与现有技术相比,实现了Boot功能的 模块化,可以单独运行,不依赖与主程序即应用程序的运行结果。本发明 无线终端在死机等异常情况下时可以利用简单设备例如PC机完成应用程 序软件升级和更新维护等目的,节省了仿真器、专用下载板的专用维护设 备的成本投入;故障的无线终端可以使用就地的条件进行软件维修,在一 般的维修中心即可实现,不必返到特定的维修中心或是返厂,提高了无线 终端的软件维修速度,给生产、售后、运营商或用户升级软件带来简单、 快捷的实现方式。由于本发明所述方法和技术具有较大的通用性,针对提供无线接入功 能的GSM、 PHS、 WCDMA、 TD-SCDMA、单模/多模等无线接入终端产品 均可以采用本发明方法的设计独立方式的Boot执行程序,并在Boot执行程 序模块中保持软件下载等相应的功能。特别是针对高通的MSM6000软件系统,本发明实现方法简单,成本低; 发明方法适用范围广,简单易行。应当理解的是,上述针对本发明方法具体实施例的描述较为详细,并不 能因此而认为是对本发明专利保护范围的限制;对本发明技术所在领域的 普通技术人员来说,可以根据本发明的技术方案及其构思进行相应的等同 改变或替换,而所有这些改变或替换,都应属于本发明所附权利要求的保 护范围。
权利要求
1、一种无线终端产品Boot引导程序的实现方法,其包括以下步骤A、在Flash芯片中设置与应用程序独立的Boot执行程序,该Boot执行程序仅用于启动应用程序下载功能,并保存在该Flash芯片的起始位置;B、通过连接服务器端,上电并接收下载指令,进行应用程序的下载功能。
2、 根据权利要求1所述的实现方法,其特征在于,所述步骤A还包 括修改应用程序的启动地址在所述Boot执行程序之后。
3、 根据权利要求2所述的实现方法,其特征在于,所述Boot执行 程序的下载功能通过串口实现。
4、 根据权利要求3所述的实现方法,其特征在于,所述步骤B之后 还包括Cl、通过仿真器或专用的下载板,分别将所述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还包括在所述无线终端正常启动时还执行以下步骤 Bl、上电后判断是否有收到串口指令,如无^l行跳转到执行应用程序,否则执行下一步骤; B2、判断是否进入下载模式,如无执行跳转到执行应用程序,否则执行下一步骤; B3、进入串口下载模式,执行下载指令。
全文摘要
本发明公开了一种CDMA无线终端产品Boot引导程序的实现方法,其包括以下步骤在flash芯片中设置与应用程序独立的boot执行程序,该boot执行程序仅用于启动应用程序下载功能,并保存在该flash芯片的起始位置;修改应用程序的启动地址在所述boot执行程序之后;通过连接服务器端,上电并接收下载指令,进行应用程序的下载功能。本发明方法由于采用了在闪存物理存储空间中设置的独立BOOT执行程序,实现了BOOT功能的模块化,可以单独运行,而不依赖主程序的运行结果,降低了维护成本;提高了终端的软件维修速度,给生产、售后、运营商或用户升级软件提供了一种简单、快捷的实现方案。
文档编号G06F9/445GK101246430SQ200810065579
公开日2008年8月20日 申请日期2008年3月13日 优先权日2008年3月13日
发明者张佳妮, 张明昊, 徐发国, 李琛珲, 王霄骊, 兵 陈, 金 韩 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1