启动和启动代码更新方法以及其系统的制作方法

文档序号:6431658阅读:120来源:国知局
专利名称:启动和启动代码更新方法以及其系统的制作方法
技术领域
本发明涉及软件更新,尤其是涉及用于对启动代码进行更新的方法和系统。
背景技术
近来,诸如移动式通信终端、个人数字助理(PDA)等等这样的各种便携式终端已快速发展。通过实现数字整合而将便携式终端的各种功能组合在一起并且缩短了这些新型便携式终端的更新周期。其结果是,其包括在便携式终端的实现过程期间所出现的不可见及不希望功能错误的便携式终端的销售量增加了。还可在实现了或者开始使用便携式终端之后通过代码修补程序来释放便携式终端的附加功能。
在这种情况下,必须对用户所购买的且所使用的便携式终端的软件进行更新以进行升级且进行错误校正。为此,便携式终端的制造技术人员或者服务商必须直接拜访便携式终端的用户,否则所要更新的便携式终端的用户必须直接打电话给服务商或者售后服务(A/S)中心以接收其便携式终端的软件更新。
为了减少上述不便,已为其具有移动通信功能的便携式终端提供了无线电软件下载(OTA-SD)模式。这是这样的一模式,即其具有要更新的便携式终端的用户通过该模式而经由互联网而与A/S中心的特定服务器相连、选择所要下载的更新文件、并且将该更新文件下载到他的/她的便携式终端。还存在另一种模式,即用户通过该模式可将更新文件下载到用户的个人计算机(PC),并且此后通过通用串行总线(USB)电缆而将更新文件下载到用户的便携式终端。
在按照上述方式将更新文件下载到便携式终端之后,通过重新启动便携式终端来执行软件的更新。通常在清除了用于存储更新软件代码的区域之后,通过将所下载的软件代码存储在与该更新(以下简称“更新区”)相对应的区域中来执行该软件更新。用于存储的该区域位于便携式终端中的用于存储软件的非易失性存储器上。在便携式终端中,用于存储软件的非易失性存储器通常采用诸如闪存这样的可编程非易失性存储器。这些非易失性存储器存储启动代码和应用程序、字体二进制、以及内容二进制。
因为如上所述将软件下载到便携式终端中并对其进行更新,因此由于在更新过程中造成了异常,因而停止了对软件的更新。如该异常原因的例子,由于终端电池的脱离而突然断开了终端电源。
考虑到日志过程以用于防止更新处理在代码更新完成之前异常的停止。如果采用了日志过程,那么在非易失性存储器中分配了备份及日志区域、在开始更新时将更新区的存储内容拷贝到备份区中、并且记录数据存储在日志区域中,该记录数据表示根据一更新过程的每步执行结果。该更新过程包括三个步骤第一步骤用于将更新区域的存储内容拷贝到备份区域中;第二步骤用于清除更新区域;以及第三步骤用于将所要更新的软件代码存储到更新区域中。
将更新区域的存储内容拷贝到存储区域的原因是使便携式终端在更新区域清空之后突然的断电并且防止存储在更新区域中的软件在没有被更新的情况下被删除。只要完成了其包括有拷贝步骤、清除步骤、以及存储步骤的这三个步骤之一,则将其表示每步执行结果的记录数据存储在日志区域。因此,当在更新的过程中在断开电源之后执行重新启动时,根据记录数据来对该更新所要重新启动的点进行检查,并且此后自那个点起继续所停止的更新过程。
同时,当便携式终端的电源最初被闭合时,由存储在上述非易失性存储器的启动区中的启动代码来执行该启动。通常,启动代码用于对便携式终端的基本硬件进行初始化并且将应用代码从非易失性存储器取至易失性存储器。通过对该硬件的大半基本参数进行设置来执行该硬件的初始化。在销售了便携式终端之后对若干参数进行修改。如对参数进行这种修改的例子,考虑对处理器工作频率进行调节。在这种情况下,如上所述必须将启动代码下载到便携式终端中并对其进行更新。
然而,根据上述过程在将所要更新的启动代码存储在更新区域之前并且在更新过程中在清除了更新区域之后断开电源。在这种情况下,尽管在清除了更新区域之前已将更新区的存储内容拷贝到存储区并且此后再次提供电源,但是不执行启动本身,因为已经清除了这样的区域,该区域中已存储了要进行启动而所需的代码。
当如此下载并更新了启动代码时,在更新的过程中在异常原因停止了启动之后不执行启动,这与诸如应用程序、字体二进制、内容二进制等等这样的对其他软件的更新不同。在这种情况下,尽管此后再次正常的提供电源,但是显然不能对所停止的启动代码继续进行更新,并且甚至不执行启动,并且最终不能使用便携式终端。

发明内容
因此,为解决现有技术所存在的上述问题而提出了本发明,并且本发明的目的在于提出了这样一种方法和系统,即即使当在对非易失性可编程存储器中的启动代码进行更新并且进行下载的过程中异常的停止了启动代码更新时,该方法和系统也可启动便携式终端。
本发明的另一个目的就是提出了这样一种方法和系统,即即使在对非易失性可编程存储器中的启动代码进行更新并且进行下载的过程中异常的停止了启动代码更新,该方法和系统也可继续重新执行所停止的更新。
为了实现这些目的,提供了一种用于启动以及启动代码更新的方法和系统,该方法和系统存储启动安装程序以及启动装载程序。该启动安装程序可在启动过程中有选择的执行启动装载程序或者备份启动装载程序。该启动装载程序是用于执行启动处理的启动代码。将启动安装程序存储在位于非易失性存储器中的启动更新状态区中并且检查启动更新状态信息以确定是否停止更新,在这种情况下对启动更新状态信息进行检查以确定是否停止了对启动装载程序的更新处理。如果没有停止对启动装载程序的更新,那么启动安装程序执行启动区域中的启动装载程序,并且否则,启动安装程序执行备份启动装载程序,该备份启动装载程序是通过将启动装载程序拷贝到分配给非易失性存储器的启动备份区域中所形成的。
附图明结合附图,从下列详细说明中可显而易见的得出本发明的上述及其他目的、特征、以及优点,在附图中

图1给出了根据本发明实施例的可编程非易失性存储器的存储器映象的方框图;图2给出了根据本发明实施例的用于启动并且更新启动代码的系统结构的方框图以及图3给出了根据本发明实施例的用于对启动代码的启动及更新进行处理的流程图。
具体实施例方式
在下文中,参考附图对本发明的优选实施例进行详细的说明。在本发明的下面描述中,当形成本发明的主题而不会造成不清楚时,省略对这里所采用的已知功能和结构进行详细说明。
图1给出了根据本发明实施例的可编程非易失性存储器的存储器映象,在该存储器中存储有本发明所采用的便携式终端的操作和可变功能的启动代码、应用程序、字体二进制、以及内容二进制,并且利用上述无线电(OTA)软件下载(SD)将更新文件下载到该存储器中并对其进行更新。与典型的非易失性存储器一样,根据本发明的非易失性存储器包括启动区100、应用区102、字体区104、内容区106、以及更新区108。启动区100、应用区102、字体区104、以及内容区106分别存储启动代码、应用程序、字体二进制、以及内容二进制。
然而,根据本发明,将启动区100分成用于存储启动安装程序的启动安装程序区110以及用于存储启动装载程序的启动装载程序区112,并且更新区108包括启动备份区124和启动更新状态区126。在本发明中用于执行启动的通用启动代码被称作启动装载程序,其中启动代码对便携式终端的基本硬件进行初始化并且将应用代码从非易失性存储器取至易失性存储器。当开始启动处理时,利用存储在更新区108的启动更新状态区126中的更新状态信息来监控启动代码的更新是否已停止。根据所检查的结果,将为了可有选择的执行启动装载程序区112的启动装载程序或者启动备份区124的启动备份装载程序所执行的代码存储在启动区100中。该代码被称作启动安装程序。将启动安装程序存储在紧邻启动区100的启动装载程序112之前的启动安装程序区域110中,该启动安装程序区域110是非易失性存储器的第一存储区。与将启动代码存储在非易失性存储器中一样,在制造公司制造存储器的过程中,通过利用只读存储器(ROM)记录器等等将启动安装程序和启动装载程序存储在启动区100中。
在上述非易失性存储器中,通常还对分别存储在应用区102、字体区104、以及内容106中的应用程序、字体二进制、以及内容二进制进行更新。然而,本发明还涉及启动代码的更新,并且因此下列描述的目的只是对启动代码进行更新。
更新区108进一步包括OTA下载程序区114、更新代理程序区116、下载更新文件区118、备用存储区120、以及日志区122,并且根据本发明进一步包括启动备用存储区124以及启动更新状态区126,其中更新区108用于在根据OTA-SD而下载了更新文件之后执行其包括有上述日志过程的更新。OTA下载程序区114存储用于根据OTA-SD来下载更新文件的OTA下载程序,并且下载更新文件区116存储所下载的更新文件。更新代理程序区118存储用于执行更新处理的更新代理程序。此外,如上所述,备份存储区120和日志区122用于在更新时间时所执行的日志过程。
启动备份存储区124用于存储备份启动装载程序以作为存储在启动装载程序区112中的启动装载程序的副本。备份启动装载程序是用于使下一个启动过程被执行的拷贝启动代码,即使当停止了启动装载程序更新时,这可能是由于在对启动装载程序区112中的启动装载程序进行更新期间异常的断开了电源。启动更新状态区126用于存储其表示更新过程的进展状态的启动更新状态信息并且检查是否已停止了启动装载程序的更新。当执行对启动装载程序的更新时,在对启动装载程序进行实际更新之前,存储在更新代理程序区116中的更新代理程序将下述预定值存储在启动更新状态区域126中以作为启动更新状态信息,该预定值表示开始更新启动装载程序,也就是表示“更新开始”。如果此后成功的完成了对启动装载程序的更新,那么将启动更新状态信息变为“更新完成”,该“更新完成”是其表示成功完成启动装载程序更新的预定值,并且将其存储在启动更新状态信息区126中。因此,在开始启动时,启动安装程序可从启动更新状态区126的启动更新状态信息中检测出是否停止了对启动装载程序的更新。如果启动更新状态信息是“更新开始”,那么启动安装程序可确定出没有完成对启动装载程序的更新。此外,如果启动更新状态信息是“更新完成”,那么启动安装程序可确定出没有停止对启动装载程序的更新。
图2给出了根据本发明实施例的其利用图1所示的非易失性存储器来对启动代码进行启动并对其进行更新的系统结构。非易失性存储器200是用于存储处理器单元202操作的软件的存储器并且具有根据本发明图1所示的存储器映象。处理器单元202用作便携式终端的主控单元,该单元采用了图2的启动以及启动代码。在这种情况下,处理器单元202根据存储在非易失性存储器200中的软件而对便携式终端的整个功能进行操作。提供了RAM 204以作为其根据处理器单元202所执行的程序而进行操作的工作存储器。通常,同步动态随机存取存储器(SDRAM)用作RAM 204。
图3给出了根据本发明实施例的用于对启动代码的启动及更新进行处理的流程图以及启动系统的操作。当其采用图2所示的用于对启动代码进行更新并进行启动的系统的便携式终端开始启动处理时,当接通电源时,处理器单元202执行存储在存储器200第一部分中的代码,存储在启动安装程序区域110中的启动安装程序被执行。因此,在步骤300至302,启动安装程序检查启动更新状态区126的更新状态信息(图1)以确定是否已经停止对启动代码的更新处理。
如果启动更新状态信息是“更新完成”并且确认出没有停止对启动装载程序的更新,那么启动安装程序在步骤304执行启动区的启动装载程序区112(图1)中的启动装载程序。因此,由启动区100的启动装载程序(图1)来执行启动。相反,如果启动更新状态信息是“更新开始”并且确认出没有完成对启动装载程序的更新但是其已经停止,那么在步骤306启动安装程序执行备份启动区124的备份启动装载程序。因此,由备份启动区124的备份启动装载程序来执行启动。
如上所述,在备份启动装载程序或者启动装载程序执行了启动之后,处理器单元202(图2)在步骤308通过利用代理程序区116(图1)的更新代理程序来检查启动装载程序更新文件是否位于下载更新文件区118(图1)之中。因此,在下载了启动装载程序更新文件之后,处理器单元202检查是否已经更新了启动装载程序。此时,如果启动装载程序更新文件不位于下载更新文件区118之中,那么在步骤326停止启动。然而,如果启动装载程序更新文件位于下载更新文件区118之中,那么存在这样一种情况,即在下载了启动装载程序文件之后不对启动装载程序进行更新,并且因此处理器单元202前进到步骤310并且执行启动装载程序更新。
在步骤310,对启动装载程序区112的启动装载程序进行拷贝以作为备份启动装载程序区124的备份启动装载程序的副本,并且在步骤312,将其表示“启动备份完成”的预定值存储在启动更新状态状态区126(图1)中,并且因此可确认出已成功的拷贝并备份了备份启动装载程序。
在步骤314将启动更新状态区126的启动更新状态信息存储为其表示“更新开始”的预定值之后,在步骤316至318执行启动装载程序的更新,其根据存储在下载更新文件区118中的启动装载程序更新文件而将启动装载程序区112的启动装载程序转换成已更新的启动装载程序。如果在步骤316至318已完成了对启动装载程序的更新,那么在步骤320通过清除下载更新文件区118来删除所下载的启动装载程序更新文件、在步骤322将启动更新状态区126的启动更新状态信息设置为其表示“更新完成”的预定值、并且此后与一般的更新完成一样在步骤324开始重新启动处理。
同时,在上述步骤316至318中,当正在执行启动装载程序的更新时,在对上述更新区进行清除的状态下出现了断电。在这种情况下,由于清除了部分启动装载程序而停止了更新,但是根据本发明在开始对启动装载程序进行更新之前,已将启动装载程序拷贝为备份启动装载程序区124的备份启动装载程序。此外,一旦将启动更新状态信息存储为“更新开始”,状态信息则不变为“更新完成”。因此,在执行启动装载程序更新时,当在断电之后再次提供了电源时,首先所执行的启动安装程序确认启动更新状态信息是“更新开始”并且执行使启动备份存储区124的备份启动装载程序替换启动装载程序。因此已经完成了启动。
因此,即使当在更新启动代码期间在清除了更新区的状态下由于异常原因而导致断电并且最终停止了启动代码更新时,此后也可由备份启动装载程序来执行启动并且可继续已停止的启动代码更新。
本发明的个实施例特别的给出了在开始启动装载程序更新之前对启动装载程序进行备份以作为一实施例。此外,本发明还可在启动装载程序更新之后对启动装载程序进行备份。在这种情况下,如果停止了启动代码更新,那么在完成了启动装载程序更新之后该启动是由先前的备份启动装载程序来完成的。然而,如果未曾执行启动装载程序更新,也就是说如果最初执行启动装载程序更新,那么此后不存在备份启动装载程序。为此,当首先将启动安装程序和启动装载程序存储在启动程序区100中时,足以满足备份启动装载程序,该备份启动装载程序通过利用ROM记录器等等而使其作为启动装载程序的副本而存储在启动备份区124中。本发明可用于下述嵌入式系统以及便携式终端,该嵌入式系统对启动代码进行更新并对其进行下载以使其存储在可编程非易失性存储器中。
虽然参考其某些优选实施例而给出并描述了本发明,但是对于本领域普通技术人员来说应该明白的是,在不脱离本发明精神和范围的情况下可对其结构及细节做出各种变化。因此,本发明的范围并不局限于这些实施例,而是由随后权利要求及其等效体来定义。
权利要求
1.一种根据存储在可编程非易失性存储器中的启动代码来进行启动的方法,该方法包括步骤将启动装载程序和启动安装程序存储在启动区中,启动装载程序是用于执行启动的启动代码,启动安装程序是用于根据启动的开始状态来有选择的执行从启动装载程序和备份启动装载程序之一所选择出来的代码;启动安装程序检查启动更新状态信息以确定是否已停止启动装载程序更新,启动更新状态信息存储在位于非易失性存储器中的启动更新状态区域中;当确认没有停止启动装载程序更新时,启动安装程序执行启动区域中的启动装载程序;以及当确认已经停止了启动装载程序更新时,启动安装程序执行备份启动装载程序,该备份启动装载程序作为位于非易失性存储器中的启动备份区中的启动装载程序的副本。
2.一种根据启动代码来对启动代码进行更新并进行启动的方法,启动代码存储在可编程非易失性存储器中,该方法包括步骤将启动装载程序和启动安装程序存储在启动区中,启动装载程序是用于执行启动的启动代码,启动安装程序是用于根据启动的开始来有选择的执行从启动装载程序和备份启动装载程序之一所选择出来的代码;启动安装程序检查启动更新状态信息以确定是否已停止启动装载程序更新,启动更新状态信息存储在位于非易失性存储器中的启动更新状态区域中;当确认没有停止启动装载程序更新时,启动安装程序执行启动区域中的启动装载程序;当确认已经停止了启动装载程序更新时,启动安装程序执行备份启动装载程序,该备份启动装载程序作为位于非易失性存储器中的启动备份区中的启动装载程序的副本;当从启动装载程序和备份启动装载程序中所选择出来的代码执行启动时,在将启动装载程序更新文件下载到位于非易失性存储器中的下载更新文件区中之后,检查启动装载程序是否已被更新;当已下载了启动装载程序更新文件并且确认不对启动装载程序进行更新时,将启动装载程序拷贝到启动备份区的备份启动装载程序中;根据启动装载程序更新文件来更新启动装载程序;以及将启动更新状态信息存储在启动更新状态区中,启动更新状态信息表示启动装载程序所继续前进到的更新步骤。
3.根据权利要求2的方法,进一步包括步骤确定是否已将启动装载程序更新文件下载到更新文件区,由此确定是否已对启动装载程序进行更新;以及当启动装载程序更新已经完成时,删除下载更新文件区的启动装载程序更新文件。
4.一种根据启动代码来对启动代码进行更新并进行启动的方法,启动代码存储在可编程非易失性存储器中,该方法包括步骤将启动装载程序和启动安装程序存储在启动区中,启动装载程序是用于执行启动的启动代码,启动安装程序是用于根据启动状态的开始来有选择的执行从启动装载程序和备份启动装载程序之一所选择出来的代码;启动安装程序检查启动更新状态信息以确定是否已停止启动装载程序更新,启动更新状态信息存储在位于非易失性存储器中的启动更新状态区中;当确认没有停止启动装载程序更新时,启动安装程序执行启动区域中的启动装载程序;当确认已经停止了启动装载程序更新时,启动安装程序执行备份启动装载程序,该备份启动装载程序作为位于非易失性存储器中的启动备份区中的启动装载程序的副本;当从启动装载程序和备份启动装载程序中所选择出来的代码执行启动时,在将启动装载程序更新文件下载到位于非易失性存储器中的下载更新文件区中之后,检查启动装载程序是否已被更新;当已下载了启动装载程序更新文件并且确认不对启动装载程序进行更新时,根据启动装载程序更新文件来更新启动装载程序;将已更新的启动装载程序拷贝为启动备份区的备份启动装载程序;以及将启动更新状态信息存储在启动更新状态区中,启动更新状态信息表示启动装载程序所继续前进到的更新步骤。
5.根据权利要求4的方法,进一步包括步骤确定是否将启动装载程序更新文件下载到下载更新文件区中,由此确定是否已对启动装载程序进行更新;以及当启动装载程序更新已经完成时,删除下载更新文件区的启动装载程序更新文件。
6.一种根据启动代码来对启动代码进行更新并进行启动的系统,该系统包括可编程非易失性存储器,用于存储启动代码;以及处理器单元,其中非易失性存储器包括启动区,用于存储启动装载程序和启动安装程序,该启动装载程序是用于执行启动的启动代码,该启动安装程序可根据启动的开始状态而有选择的执行启动装载程序或者备份启动装载程序;启动更新状态区,用于存储启动更新状态信息,该状态信息用于检查是否已停止对启动装载程序的更新;下载更新文件区,用于存储已下载的启动装载程序更新文件;以及备份启动区,用于存储备份启动装载程序以作为启动装载程序的副本,并且其中处理器单元根据启动安装程序而通过启动更新状态信息来检查在启动的过程中是否停止了更新;当确认停止了对启动装载程序的更新时根据备份启动装载程序来执行启动、并且当确认没有停止对启动装载程序的更新时启动装载程序执行启动。
7.根据权利要求6的系统,其中处理器单元进一步通过从启动装载程序和备份启动装载程序选择出的之一来执行启动,当下载启动装载程序更新文件并且确认不对启动装载程序进行更新时将启动装载程序拷贝为备份启动装载程序,以及将表示更新过程进展状态的信息存储到启动更新区中,根据启动装载程序更新文件来更新启动装载程序。
8.根据权利要求7的系统,其中处理器单元通过确定是否已下载了启动装载程序更新文件来确定是否已对启动装载程序进行更新,并且当完成启动装载程序时删除下载文件区的启动装载程序更新文件。
全文摘要
本发明公开了一种用于启动并更新启动代码的方法和系统,该方法和系统存储了一启动安装程序以及一启动装载程序,该启动安装程序在启动的过程中可使有选择的执行启动装载程序或者备份启动装载程序,该启动装载程序是用于执行启动的启动代码。启动安装程序存储在位于非易失存储器中的启动更新状态区中,它检查启动更新状态信息以确定是否停止了更新,启动更新状态信息被检查以确定是否停止了对启动装载程序的更新。如果停止了对启动装载程序的更新,那么启动安装程序执行启动区中的启动装载程序,否则启动安装程序执行通过将启动装载程序拷贝到位于非易失存储器中的启动备份区中所创建的备份启动装载程序。
文档编号G06F15/02GK1598773SQ20041008241
公开日2005年3月23日 申请日期2004年9月17日 优先权日2003年9月17日
发明者金炯勋 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1