专利名称:一种实现移动通信终端开机进度条功能的方法
技术领域:
本发明属于移动通信终端的技术领域,涉及一种移动通信终端开机进度条的实现方法。
背景技术:
移动通信终端的开机时间较长是当前用户抱怨比较多的问题。移动通信终端通常会按照最初的直接复制完闪存中的代码后再进行开机画面的显示,而这个过程比较长,会导致用户以为终端存在故障。
由于系统运行速度的要求,现在的移动通信终端基本都是非掉电易失性存储器NAND FLASH加上SDRAM(Synchronous Dynamic randomaccess memory同步动态随机存储器)的配置,基于这个前提,当前的移动通信终端在开机流程的处理上做了优化,基本都是按照专利号为CN200610069465的专利所述的方法实现,分成两级加载程序第一级加载程序(一般称为bootloader)代码长度比较短,是由硬件直接从NANDFLASH拷贝代码到主芯片内部的SRAM(STATIC RANDOM ACCESSMEMORY静态随机访问存储器),然后执行第一级加载程序(bootloader),第一级加载程序初始化存储器接口和时钟,并负责把第二级加载程序拷贝到SDRAM中,并把PC指针置到第二级加载程序的起始地址;然后开始运行第二级加载程序,第二级加载程序点亮LCD(LiquidCrystal Display液晶显示器)并显示开机图片,并把剩余的代码从NANDFLASH复制到SDRAM中。当全部代码拷贝完毕,运行实时操作系统。
虽然这种方法把开机图片很快就在屏幕上显示,但由于当前的移动终端系统都比较复杂,代码长度动则几十M字节,再加上系统初始化,到文件系统建立起来,一般需要20s的时间。用户会觉得开机时间太长,因为整个过程中屏幕上没有任何动作,从心理学上来说,用户没有得到任何信息反馈,所以尤其感觉漫长。
本发明就是要给用户及时的反馈,实现如电脑操作系统在开机过程中进度条效果,从主观上减少用户的等待时间,进而带给用户良好的操作体验。
发明内容
本发明要解决的技术问题是提供一种实现移动通信终端开机进度条的方法,解决移动通信终端用户从开机按键到出现待机界面的长时间屏幕没有任何变化的问题,同时按照电脑用户的使用习惯给用户以亲切感。
为了解决上述问题,本发明提供了一种实现移动通信终端开机进度条的方法,应用于由包括非掉电易失性存储器,动态存储器,电源管理芯片,显示屏,微处理器和外设所组成的移动通信终端,其中,包括以下步骤(1)开机事件发生时,初始化每个存储器的接口和时钟,并进行开机事件检测;(2)根据不同的开机事件进入对应的开机模式,并把整个终端的代码从非掉电易失性存储器中复制到动态存储器中,同时,激活并显示进度条,根据复制的块数进行进度条的刷新;(3)代码复制完毕后,暂停刷新进度条,进行全部硬件初始化;当完成所有任务初始化时,通过设置定时器或者设置参考点函数的方式,继续刷新进度条,直到整个进度条刷新完毕,然后进入待机界面;进一步的,本发明所述的方法,其中,所述开机事件,包括终端上电、系统复位或按开机键;进一步的,本发明所述的方法,其中,所述步骤(2)中,所述根据复制的块数进行进度条刷新,包括用复制的块数除以该过程中刷新的进度条长度L1即得到刷新一次进度条所拷贝的块数,根据所得到的此块数进行刷新;进一步的,本发明所述的方法,其中,该过程中刷新的进度条长度L1为 其中,计划刷新的总进度条长度为L;从开始拷贝代码到代码拷贝完毕的时间为T1;从完成所有任务初始化到进入待机界面的时间为T2;从代码拷贝完毕到完成所有任务的初始化完毕的时间为t;从显示第一张开机图片到系统进入待机界面的时间T=t+T1+T2;进一步的,本发明所述的方法,其中,所述步骤(3)中,所述设置定时器的方式继续刷新进度条,包括设置定时器,通过启动时间的计算,用从完成所有任务初始化到进入待机界面的时间T2除以过程中刷新的进度条长度L2即得到定时器的时间间隔,从而以这个时间间隔刷新进度条;进一步的,本发明所述的方法,其中,该过程中刷新的进度条长度L2为 其中,计划刷新的总进度条长度为L;从开始拷贝代码到代码拷贝完毕的时间为T1;从完成所有任务初始化到进入待机界面的时间为T2;从代码拷贝完毕到完成所有任务的初始化完毕的时间为t;从显示第一张开机图片到系统进入待机界面的时间T=t+T1+T2;进一步的,本发明所述的方法,其中,从代码拷贝完毕到完成所有任务的初始化完毕的时间为t在计算中忽略不计;本发明所述的方法,其中,所述步骤(3)中,通过设置参考点函数的方式继续刷新进度条,包括除了以等时间间隔的方式刷新进度条,还可以在系统启动程序中抽取函数作为启动程序进展的参考点,执行到特定的函数,就进行进度条刷新操作,以此真实反映启动程序的执行情况;进一步的,本发明所述的方法,其中,如果有些时间点的函数无法抽取,则通过某个函数触发有限个定时器进行进度条刷新。
采用本发明所述方法,与现有技术相比,本发明给予用户及时的反馈,实现如电脑操作系统在开机过程中进度条效果,从主观上减少用户的等待时间,带给用户良好的操作体验。
图1为本发明实施例中手机的硬件连接框图;图2为本发明实施例中第一级加载程序的流程图;图3为本发明实施例中整个开机过程中各阶段示意图。
具体实施例方式
本发明为了解决传统技术方案存在的弊端,通过以下具体实施例进一步阐述本发明所述的一种实现移动通信终端开机进度条的方法,以下对具体实施方式
进行详细描述,但不作为对本发明的限定。
如图1所示,本发明实现移动通信终端开机进度条的方法,包括存储程序代码和文件系统的非掉电易失性存储器NAND FLASH 5,具有读写速度快优势的用来执行程序的动态存储器SDRAM6,电源管理芯片1,LCD显示屏3,微处理器4(包括SRAM41和ROM42)和外设2,其中,开机后,系统向NAND FLASH 5注入包括第一级加载程序(一般称为bootloader),含有进度条刷新功能的第二级加载程序(这里称为secondboot),含有进度条刷新功能的系统启动程序(这里称为systemup);所述第一级加载程序,初始化存储器接口和时钟,进行开机事件检测,并把第二级加载程序复制到SDRAM中;所述含有进度条刷新功能的第二级加载程序,根据各个开机事件进入不同的开机模式,点亮LCD背光并显示不同的开机图片,然后开始拷贝整个终端的代码;在拷贝的过程中,根据拷贝的block块数,进行刷新进度条,同时根据客户的需要显示第二张开机图片,并指示执行系统启动程序;所述含有进度条刷新功能的系统启动程序,用于进行全部硬件初始化,当完成所有任务初始化时,设置定时器,通过启动时间的计算,以等时间间隔的方式刷新进度条,直到进度条刷新到100%,然后进入待机界面。
如图2所示,为本发明实施例中第一级加载程序的流程图。其具体实施方式
为步骤201,手机上电、系统复位或按开机键以及其他开机事件发生时,微处理器内部ROM(Read-Only Memory只读存储器)固化的程序将第一级加载程序(bootloader)从NAND FLASH复制到内部静态存储器中;第一级加载程序必须小于8K字节,而且要放在NAND FLASH的第一个BLOCK,这是微处理器的特征要求的;以下步骤202至步骤207,为执行第一级加载程序步骤202,初始化存储器接口和时钟;步骤203,进行开机事件检测;所述开机时间为上述手机上电、系统复位或按开机键以及其他开机事件;步骤204,是否为正常开机,如果是,则执行步骤206;否则,执行步骤205;步骤205,关机;步骤206,把第二级加载程序复制到SDRAM;将开机事件和当前复制的block数放到指定位置;步骤207,把PC指针置到第二级加载程序的起始地址;步骤208,执行第二级加载程序,主要包括(1)根据不同开机事件进入不同的开机模式;(2)点亮LCD背光并显示开机图片;
(3)开始复制终端的代码,根据发明内容中计算的block间隔数刷新进度条;(4)复制完毕把PC指针置到系统启动程序的入口。
如附图2所述的实施例,执行完第二级加载程序,PC指针置到系统启动程序的入口后,则开始执行系统启动程序,主要包括以下步骤(1)各硬件时钟配置,初始化GPIO、射频、USB等硬件;(2)进行任务初始化;(3)根据图3所示的实施例内容计算的时间间隔设置定时器,当定时器发生中断时,进行进度条刷新;(4)当计数器达到L2时,除能定时器,进入待机界面;由于程序在升级的过程中,系统启动程序的执行时间有可能改变,所以对于上述执行系统启动程序实现,还存在一种备选方案,通过抽取函数的实现方法(1)各硬件时钟配置,初始化GPIO、射频、USB等硬件;(2)进行任务初始化;(3)从任务初始化完毕到进入待机界面之间的代码中,在满足一定时间间隔的条件下,抽取N个函数。如果恰好能抽取L2个函数,则可以令N=L2,针对每个抽取函数都刷新一个进度条;如果函数不好抽取,第i个函数可以触发定时器,第i个定时器刷新K1个进度条。为了满足刷新L2的要求,需要Σi=1NK1=L2;]]>(4)当进度条刷新完毕,进入待机界面。
如图3所示,为本发明实施例中整个开机过程中各阶段示意图。本发明根据从显示第一张开机图片到系统进入待机界面的时间统筹安排了进度条刷新进度,在第二级加载程序中按照拷贝的block块数进行刷新,而在任务初始化完毕通过定时器的方式进行进度条的刷新。
如图3中所示从显示第一张开机图片到系统进入待机界面的时间为T;从代码拷贝完毕到完成所有任务的初始化完毕的时间为t;从开始拷贝代码到代码拷贝完毕的时间为T1;从完成所有任务初始化到进入待机界面的时间为T2;计划刷新的总进度条长度为L;则有,T=t+T1+T2;从上面的开机过程可以看出,从代码拷贝完毕到完成所有任务的初始化完毕这段时间里,并没有刷新进度条,这是因为这段时间加入LCD刷新操作会带来不稳定的因素,而且计数器并没有初始化完毕;由于代码拷贝完毕到系统启动程序完成所有任务的初始化完毕之间的时间很短,一般有0.5秒的时间,所以这种停顿对用户来说是可以接受的;因此,由于t很小,在计算中忽略;在T1过程中需要刷新的进度条长度为 记为L1;在T2过程中需要刷新的进度条长度为 记为L2。
那么,在二级记载程序中,用总代码长度的block数除以L1即可得到拷贝多少个block刷新一次进度条。而在系统启动程序中,用T2除以L2即可得到定时器的时间间隔,从而以这个时间间隔刷新进度条。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种实现移动通信终端开机进度条的方法,应用于由非掉电易失性存储器,动态存储器,电源管理芯片,显示屏,微处理器和外设所组成的移动通信终端,其特征在于,包括以下步骤(1)开机事件发生时,初始化每个存储器的接口和时钟,并进行开机事件检测;(2)根据不同的开机事件进入对应的开机模式,并把整个终端的代码从非掉电易失性存储器中复制到动态存储器中,同时,激活并显示进度条,根据复制的块数进行进度条的刷新;(3)代码复制完毕后,暂停刷新进度条,进行全部硬件初始化;当完成所有任务初始化时,通过设置定时器或者设置参考点函数的方式,继续刷新进度条,直到整个进度条刷新完毕,然后进入待机界面。
2.如权利要求1所述的方法,其特征在于,所述开机事件,包括终端上电、系统复位或按开机键。
3.如权利要求1所述的方法,其特征在于,所述步骤(2)中,所述根据复制的块数进行进度条刷新,包括用复制的块数除以该过程中刷新的进度条长度L1即得到刷新一次进度条所拷贝的块数,根据所得到的此块数进行刷新。
4.如权利要求3所述的方法,其特征在于,该过程中刷新的进度条长度L1为 其中,计划刷新的总进度条长度为L;从开始拷贝代码到代码拷贝完毕的时间为T1;从完成所有任务初始化到进入待机界面的时间为T2;从代码拷贝完毕到完成所有任务的初始化完毕的时间为t;从显示第一张开机图片到系统进入待机界面的时间T=t+T1+T2。
5.如权利要求1所述的方法,其特征在于,所述步骤(3)中,所述设置定时器的方式继续刷新进度条,包括设置定时器,通过启动时间的计算,用从完成所有任务初始化到进入待机界面的时间T2除以过程中刷新的进度条长度L2即得到定时器的时间间隔,从而以这个时间间隔刷新进度条。
6.如权利要求5所述的方法,其特征在于,该过程中刷新的进度条长度L2为 其中,计划刷新的总进度条长度为L;从开始拷贝代码到代码拷贝完毕的时间为T1;从完成所有任务初始化到进入待机界面的时间为T2;从代码拷贝完毕到完成所有任务的初始化完毕的时间为t;从显示第一张开机图片到系统进入待机界面的时间T=t+T1+T2。
7.如权利要求4或6所述的方法,其特征在于,从代码拷贝完毕到完成所有任务的初始化完毕的时间为t在计算中忽略不计。
8.如权利要求1所述的方法,其特征在于,所述步骤(3)中,通过设置参考点函数的方式继续刷新进度条,包括在系统启动程序中抽取函数作为启动程序进展的参考点,执行到之前抽取时指定的参考点函数,就进行进度条刷新操作,以此反映启动程序的执行情况。
9.如权利要求8所述的方法,其特征在于,如果所在时间点的函数无法抽取,则通过该函数触发定时器进行进度条刷新,以保证总刷新次数等于L2。
全文摘要
本发明公开了实现移动通信终端开机进度条的方法,包括以下步骤(1)开机事件发生时,初始化每个存储器的接口和时钟,并进行开机事件检测;(2)根据不同的开机事件进入对应的开机模式,并把整个终端的代码从非掉电易失性存储器中复制到动态存储器中,同时,激活并显示进度条,根据复制的块数进行进度条的刷新;(3)代码复制完毕后,暂停刷新进度条,进行全部硬件初始化;当完成所有任务初始化时,通过设置定时器或者设置参考点函数的方式,继续刷新进度条,直到整个进度条刷新完毕,然后进入待机界面。从而解决移动终端用户从开机按键到出现待机界面的长时间屏幕没有变化的问题,同时按照电脑用户的使用习惯给用户以亲切感。
文档编号G06F9/445GK101094477SQ200710129709
公开日2007年12月26日 申请日期2007年7月24日 优先权日2007年7月24日
发明者王福强 申请人:中兴通讯股份有限公司