著录项信息
专利名称 | 启动和启动代码更新方法 |
申请号 | CN200410082411.6 | 申请日期 | 2004-09-17 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2005-03-23 | 公开/公告号 | CN1598773 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/445 | IPC分类号 | G;0;6;F;9;/;4;4;5查看分类表>
|
申请人 | 三星电子株式会社 | 申请人地址 | 韩国京畿道
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 三星电子株式会社 | 当前权利人 | 三星电子株式会社 |
发明人 | 金炯勋 |
代理机构 | 中原信达知识产权代理有限责任公司 | 代理人 | 林宇清;谢丽娜 |
摘要
本发明公开了一种用于启动并更新启动代码的方法和系统,该方法和系统存储了一启动安装程序以及一启动装载程序,该启动安装程序在启动的过程中可使有选择的执行启动装载程序或者备份启动装载程序,该启动装载程序是用于执行启动的启动代码。启动安装程序存储在位于非易失存储器中的启动更新状态区中,它检查启动更新状态信息以确定是否停止了更新,启动更新状态信息被检查以确定是否停止了对启动装载程序的更新。如果停止了对启动装载程序的更新,那么启动安装程序执行启动区中的启动装载程序,否则启动安装程序执行通过将启动装载程序拷贝到位于非易失存储器中的启动备份区中所创建的备份启动装载程序。
1.一种根据启动代码来对启动代码进行更新并进行启动的方法, 启动代码存储在可编程非易失性存储器中,该方法包括步骤:
将启动装载程序和启动安装程序存储在启动区中,启动装载程序 是用于执行启动的启动代码,启动安装程序是用于根据启动的开始状 态来有选择的执行从启动装载程序和备份启动装载程序之一所选择出 来的代码;
启动安装程序检查启动更新状态信息以确定是否已停止启动装载 程序更新,启动更新状态信息存储在位于非易失性存储器中的启动更 新状态区中;
当确认没有停止启动装载程序更新时,启动安装程序执行启动区 域中的启动装载程序;
当确认已经停止了启动装载程序更新时,启动安装程序执行备份 启动装载程序,该备份启动装载程序作为位于非易失性存储器中的启 动备份区中的启动装载程序的副本;
当从启动装载程序和备份启动装载程序中所选择出来的代码执行 启动时,在将启动装载程序更新文件下载到位于非易失性存储器中的 下载更新文件区中之后,检查启动装载程序是否已被更新;
当已下载了启动装载程序更新文件并且确认尚未对启动装载程序进 行更新时,将启动装载程序拷贝到启动备份区的备份启动装载程序中;
根据启动装载程序更新文件来更新启动装载程序;以及
将启动更新状态信息存储在启动更新状态区中,启动更新状态信 息表示启动装载程序所继续前进到的更新步骤。
2.根据权利要求1的方法,进一步包括步骤:
确定是否已将启动装载程序更新文件下载到更新文件区,由此确 定是否已对启动装载程序进行更新;以及
当启动装载程序更新已经完成时,删除下载更新文件区的启动装 载程序更新文件。
3.一种根据启动代码来对启动代码进行更新并进行启动的方法, 启动代码存储在可编程非易失性存储器中,该方法包括步骤:
将启动装载程序和启动安装程序存储在启动区中,启动装载程序 是用于执行启动的启动代码,启动安装程序是用于根据启动的开始状 态来有选择的执行从启动装载程序和备份启动装载程序之一所选择出 来的代码;
启动安装程序检查启动更新状态信息以确定是否已停止启动装载 程序更新,启动更新状态信息存储在位于非易失性存储器中的启动更 新状态区中;
当确认没有停止启动装载程序更新时,启动安装程序执行启动区 域中的启动装载程序;
当确认已经停止了启动装载程序更新时,启动安装程序执行备份 启动装载程序,该备份启动装载程序作为位于非易失性存储器中的启 动备份区中的启动装载程序的副本;
当从启动装载程序和备份启动装载程序中所选择出来的代码执行 启动时,在将启动装载程序更新文件下载到位于非易失性存储器中的 下载更新文件区中之后,检查启动装载程序是否已被更新;
当已下载了启动装载程序更新文件并且确认尚未对启动装载程序 进行更新时,根据启动装载程序更新文件来更新启动装载程序;
将已更新的启动装载程序拷贝为启动备份区的备份启动装载程 序;以及
将启动更新状态信息存储在启动更新状态区中,启动更新状态信 息表示启动装载程序所继续前进到的更新步骤。
4.根据权利要求3的方法,进一步包括步骤:
确定是否将启动装载程序更新文件下载到下载更新文件区中,由 此确定是否已对启动装载程序进行更新;以及
当启动装载程序更新已经完成时,删除下载更新文件区的启动装 载程序更新文件。
技术领域\n本发明涉及软件更新,尤其是涉及用于对启动代码进行更新的方 法和系统。\n背景技术\n近来,诸如移动式通信终端、个人数字助理(PDA)等等这样的 各种便携式终端已快速发展。通过实现数字整合而将便携式终端的各 种功能组合在一起并且缩短了这些新型便携式终端的更新周期。其结 果是,其包括在便携式终端的实现过程期间所出现的不可见及不希望 功能错误的便携式终端的销售量增加了。还可在实现了或者开始使用 便携式终端之后通过代码修补程序来释放便携式终端的附加功能。\n在这种情况下,必须对用户所购买的且所使用的便携式终端的软 件进行更新以进行升级且进行错误校正。为此,便携式终端的制造技 术人员或者服务商必须直接拜访便携式终端的用户,否则所要更新的 便携式终端的用户必须直接打电话给服务商或者售后服务(A/S)中 心以接收其便携式终端的软件更新。\n为了减少上述不便,已为其具有移动通信功能的便携式终端提供 了无线电软件下载(OTA-SD)模式。这是这样的一模式,即其具有 要更新的便携式终端的用户通过该模式而经由互联网而与A/S中心的 特定服务器相连、选择所要下载的更新文件、并且将该更新文件下载 到他的/她的便携式终端。还存在另一种模式,即用户通过该模式可将 更新文件下载到用户的个人计算机(PC),并且此后通过通用串行总线 (USB)电缆而将更新文件下载到用户的便携式终端。\n在按照上述方式将更新文件下载到便携式终端之后,通过重新启 动便携式终端来执行软件的更新。通常在清除了用于存储更新软件代 码的区域之后,通过将所下载的软件代码存储在与该更新(以下简称 “更新区”)相对应的区域中来执行该软件更新。用于存储的该区域位 于便携式终端中的用于存储软件的非易失性存储器上。在便携式终端 中,用于存储软件的非易失性存储器通常采用诸如闪存这样的可编程 非易失性存储器。这些非易失性存储器存储启动代码和应用程序、字 体二进制、以及内容二进制。\n因为如上所述将软件下载到便携式终端中并对其进行更新,因此 由于在更新过程中造成了异常,因而停止了对软件的更新。如该异常 原因的例子,由于终端电池的脱离而突然断开了终端电源。\n考虑到日志过程以用于防止更新处理在代码更新完成之前异常的 停止。如果采用了日志过程,那么在非易失性存储器中分配了备份及 日志区域、在开始更新时将更新区的存储内容拷贝到备份区中、并且 记录数据存储在日志区域中,该记录数据表示根据一更新过程的每步 执行结果。该更新过程包括三个步骤:第一步骤用于将更新区域的存 储内容拷贝到备份区域中;第二步骤用于清除更新区域;以及第三步 骤用于将所要更新的软件代码存储到更新区域中。\n将更新区域的存储内容拷贝到存储区域的原因是使便携式终端在 更新区域清空之后突然的断电并且防止存储在更新区域中的软件在没 有被更新的情况下被删除。只要完成了其包括有拷贝步骤、清除步骤、 以及存储步骤的这三个步骤之一,则将其表示每步执行结果的记录数 据存储在日志区域。因此,当在更新的过程中在断开电源之后执行重 新启动时,根据记录数据来对该更新所要重新启动的点进行检查,并 且此后自那个点起继续所停止的更新过程。\n同时,当便携式终端的电源最初被闭合时,由存储在上述非易失 性存储器的启动区中的启动代码来执行该启动。通常,启动代码用于 对便携式终端的基本硬件进行初始化并且将应用代码从非易失性存储 器取至易失性存储器。通过对该硬件的大半基本参数进行设置来执行 该硬件的初始化。在销售了便携式终端之后对若干参数进行修改。如 对参数进行这种修改的例子,考虑对处理器工作频率进行调节。在这 种情况下,如上所述必须将启动代码下载到便携式终端中并对其进行 更新。\n然而,根据上述过程在将所要更新的启动代码存储在更新区域之 前并且在更新过程中在清除了更新区域之后断开电源。在这种情况下, 尽管在清除了更新区域之前已将更新区的存储内容拷贝到存储区并且 此后再次提供电源,但是不执行启动本身,因为已经清除了这样的区 域,该区域中已存储了要进行启动而所需的代码。\n当如此下载并更新了启动代码时,在更新的过程中在异常原因停 止了启动之后不执行启动,这与诸如应用程序、字体二进制、内容二 进制等等这样的对其他软件的更新不同。在这种情况下,尽管此后再 次正常的提供电源,但是显然不能对所停止的启动代码继续进行更新, 并且甚至不执行启动,并且最终不能使用便携式终端。\n发明内容\n因此,为解决现有技术所存在的上述问题而提出了本发明,并且 本发明的目的在于提出了这样一种方法和系统,即即使当在对非易失 性可编程存储器中的启动代码进行更新并且进行下载的过程中异常的 停止了启动代码更新时,该方法和系统也可启动便携式终端。\n本发明的另一个目的就是提出了这样一种方法和系统,即即使在 对非易失性可编程存储器中的启动代码进行更新并且进行下载的过程 中异常的停止了启动代码更新,该方法和系统也可继续重新执行所停 止的更新。\n为了实现这些目的,提供了一种用于启动以及启动代码更新的方 法和系统,该方法和系统存储启动安装程序以及启动装载程序。该启 动安装程序可在启动过程中有选择的执行启动装载程序或者备份启动 装载程序。该启动装载程序是用于执行启动处理的启动代码。将启动 安装程序存储在位于非易失性存储器中的启动更新状态区中并且检查 启动更新状态信息以确定是否停止更新,在这种情况下对启动更新状 态信息进行检查以确定是否停止了对启动装载程序的更新处理。如果 没有停止对启动装载程序的更新,那么启动安装程序执行启动区域中 的启动装载程序,并且否则,启动安装程序执行备份启动装载程序, 该备份启动装载程序是通过将启动装载程序拷贝到分配给非易失性存 储器的启动备份区域中所形成的。\n附图说明\n结合附图,从下列详细说明中可显而易见的得出本发明的上述及 其他目的、特征、以及优点,在附图中:\n图1给出了根据本发明实施例的可编程非易失性存储器的存储器 映象的方框图;\n图2给出了根据本发明实施例的用于启动并且更新启动代码的系 统结构的方框图:以及\n图3给出了根据本发明实施例的用于对启动代码的启动及更新进 行处理的流程图。\n具体实施方式\n在下文中,参考附图对本发明的优选实施例进行详细的说明。在 本发明的下面描述中,当形成本发明的主题而不会造成不清楚时,省 略对这里所采用的已知功能和结构进行详细说明。\n图1给出了根据本发明实施例的可编程非易失性存储器的存储器 映象,在该存储器中存储有本发明所采用的便携式终端的操作和可变 功能的启动代码、应用程序、字体二进制、以及内容二进制,并且利 用上述无线电(OTA)软件下载(SD)将更新文件下载到该存储器中 并对其进行更新。与典型的非易失性存储器一样,根据本发明的非易 失性存储器包括启动区100、应用区102、字体区104、内容区106、 以及更新区108。启动区100、应用区102、字体区104、以及内容区 106分别存储启动代码、应用程序、字体二进制、以及内容二进制。\n然而,根据本发明,将启动区100分成用于存储启动安装程序的 启动安装程序区110以及用于存储启动装载程序的启动装载程序区 112,并且更新区108包括启动备份区124和启动更新状态区126。在 本发明中用于执行启动的通用启动代码被称作启动装载程序,其中启 动代码对便携式终端的基本硬件进行初始化并且将应用代码从非易失 性存储器取至易失性存储器。当开始启动处理时,利用存储在更新区 108的启动更新状态区126中的更新状态信息来监控启动代码的更新是 否已停止。根据所检查的结果,将为了可有选择的执行启动装载程序 区112的启动装载程序或者启动备份区124的启动备份装载程序所执 行的代码存储在启动区100中。该代码被称作启动安装程序。将启动 安装程序存储在紧邻启动区100的启动装载程序112之前的启动安装 程序区域110中,该启动安装程序区域110是非易失性存储器的第一存 储区。与将启动代码存储在非易失性存储器中一样,在制造公司制造 存储器的过程中,通过利用只读存储器(ROM)记录器等等将启动安 装程序和启动装载程序存储在启动区100中。\n在上述非易失性存储器中,通常还对分别存储在应用区102、字 体区104、以及内容区106中的应用程序、字体二进制、以及内容二进 制进行更新。然而,本发明还涉及启动代码的更新,并且因此下列描 述的目的只是对启动代码进行更新。\n更新区108进一步包括OTA下载程序区114、更新代理程序区116、 下载更新文件区118、备用存储区120、以及日志区122,并且根据本 发明进一步包括启动备用存储区124以及启动更新状态区126,其中更 新区108用于在根据OTA-SD而下载了更新文件之后执行其包括有上 述日志过程的更新。OTA下载程序区114存储用于根据OTA-SD来下 载更新文件的OTA下载程序,并且下载更新文件区118存储所下载的 更新文件。更新代理程序区116存储用于执行更新处理的更新代理程 序。此外,如上所述,备份存储区120和日志区122用于在更新时间 时所执行的日志过程。\n启动备份存储区124用于存储备份启动装载程序以作为存储在启 动装载程序区112中的启动装载程序的副本。备份启动装载程序是用 于使下一个启动过程被执行的拷贝启动代码,即使当停止了启动装载 程序更新时,这可能是由于在对启动装载程序区112中的启动装载程 序进行更新期间异常的断开了电源。启动更新状态区126用于存储其 表示更新过程的进展状态的启动更新状态信息并且检查是否已停止了 启动装载程序的更新。当执行对启动装载程序的更新时,在对启动装 载程序进行实际更新之前,存储在更新代理程序区116中的更新代理 程序将下述预定值存储在启动更新状态区126中以作为启动更新状态 信息,该预定值表示开始更新启动装载程序,也就是表示“更新开始”。 如果此后成功的完成了对启动装载程序的更新,那么将启动更新状态 信息变为“更新完成”,该“更新完成”是其表示成功完成启动装载程序更 新的预定值,并且将其存储在启动更新状态区126中。因此,在开始 启动时,启动安装程序可从启动更新状态区126的启动更新状态信息 中检测出是否停止了对启动装载程序的更新。如果启动更新状态信息 是“更新开始”,那么启动安装程序可确定出没有完成对启动装载程序的 更新。此外,如果启动更新状态信息是“更新完成”,那么启动安装程序 可确定出没有停止对启动装载程序的更新。\n图2给出了根据本发明实施例的其利用图1所示的非易失性存储 器来对启动代码进行启动并对其进行更新的系统结构。非易失性存储 器200是用于存储处理器单元202操作的软件的存储器并且具有根据 本发明图1所示的存储器映象。处理器单元202用作便携式终端的主 控单元,该单元采用了图2的启动系统以及启动代码。在这种情况下, 处理器单元202根据存储在非易失性存储器200中的软件而对便携式 终端的整个功能进行操作。提供了RAM 204以作为其根据处理器单元 202所执行的程序而进行操作的工作存储器。通常,同步动态随机存取 存储器(SDRAM)用作RAM 204。\n图3给出了根据本发明实施例的用于对启动代码的启动及更新进 行处理的流程图以及启动系统的操作。当其采用图2所示的用于对启 动代码进行更新并进行启动的系统的便携式终端开始启动处理时,当 接通电源时,处理器单元202执行存储在存储器200第一部分中的代 码,存储在启动安装程序区域110中的启动安装程序被执行。因此, 在步骤300至302,启动安装程序检查启动更新状态区126的更新状态 信息(图1)以确定是否已经停止对启动代码的更新处理。\n如果启动更新状态信息是“更新完成”并且确认出没有停止对启动 装载程序的更新,那么启动安装程序在步骤304执行启动区的启动装 载程序区112(图1)中的启动装载程序。因此,由启动区100的启动 装载程序(图1)来执行启动。相反,如果启动更新状态信息是“更新 开始”并且确认出没有完成对启动装载程序的更新但是其已经停止,那 么在步骤306启动安装程序执行备份启动区124的备份启动装载程序。 因此,由备份启动区124的备份启动装载程序来执行启动。\n如上所述,在备份启动装载程序或者启动装载程序执行了启动之 后,处理器单元202(图2)在步骤308通过利用代理程序区116(图 1)的更新代理程序来检查启动装载程序更新文件是否位于下载更新 文件区118(图1)之中。因此,在下载了启动装载程序更新文件之后, 处理器单元202检查是否已经更新了启动装载程序。此时,如果启动 装载程序更新文件不位于下载更新文件区118之中,那么在步骤326 停止启动。然而,如果启动装载程序更新文件位于下载更新文件区118 之中,那么存在这样一种情况,即在下载了启动装载程序文件之后尚 未对启动装载程序进行更新,并且因此处理器单元202前进到步骤310 并且执行启动装载程序更新。\n在步骤310,对启动装载程序区112的启动装载程序进行拷贝以作 为备份启动装载程序区124的备份启动装载程序的副本,并且在步骤 312,将其表示“启动备份完成”的预定值存储在启动更新状态状态区 126(图1)中,并且因此可确认出已成功的拷贝并备份了备份启动装 载程序。\n在步骤314将启动更新状态区126的启动更新状态信息存储为其 表示“更新开始”的预定值之后,在步骤316至318执行启动装载程序的 更新,其根据存储在下载更新文件区118中的启动装载程序更新文件 而将启动装载程序区112的启动装载程序转换成已更新的启动装载程 序。如果在步骤316至318已完成了对启动装载程序的更新,那么在 步骤320通过清除下载更新文件区118来删除所下载的启动装载程序 更新文件、在步骤322将启动更新状态区126的启动更新状态信息设 置为其表示“更新完成”的预定值、并且此后与一般的更新完成一样在步 骤324开始重新启动处理。\n同时,在上述步骤316至318中,当正在执行启动装载程序的更 新时,在对上述更新区进行清除的状态下出现了断电。在这种情况下, 由于清除了部分启动装载程序而停止了更新,但是根据本发明在开始 对启动装载程序进行更新之前,已将启动装载程序拷贝为备份启动装 载程序区124的备份启动装载程序。此外,一旦将启动更新状态信息 存储为“更新开始”,状态信息则不变为“更新完成”。因此,在执行启动 装载程序更新时,当在断电之后再次提供了电源时,首先所执行的启 动安装程序确认启动更新状态信息是“更新开始”并且执行使启动备份 存储区124的备份启动装载程序替换启动装载程序。因此已经完成了 启动。\n因此,即使当在更新启动代码期间在清除了更新区的状态下由于 异常原因而导致断电并且最终停止了启动代码更新时,此后也可由备 份启动装载程序来执行启动并且可继续已停止的启动代码更新。\n本发明的一个实施例特别的给出了在开始启动装载程序更新之前 对启动装载程序进行备份以作为一实施例。此外,本发明还可在启动 装载程序更新之后对启动装载程序进行备份。在这种情况下,如果停 止了启动代码更新,那么在完成了启动装载程序更新之后该启动是由 先前的备份启动装载程序来完成的。然而,如果未曾执行启动装载程 序更新,也就是说如果最初执行启动装载程序更新,那么此后不存在 备份启动装载程序。为此,当首先将启动安装程序和启动装载程序存 储在启动程序区100中时,足以满足备份启动装载程序,该备份启动 装载程序通过利用ROM记录器等等而使其作为启动装载程序的副本 而存储在启动备份区124中。本发明可用于下述嵌入式系统以及便携 式终端,该嵌入式系统对启动代码进行更新并对其进行下载以使其存 储在可编程非易失性存储器中。\n虽然参考其某些优选实施例而给出并描述了本发明,但是对于本 领域普通技术人员来说应该明白的是,在不脱离本发明精神和范围的 情况下可对其结构及细节做出各种变化。因此,本发明的范围并不局 限于这些实施例,而是由随后权利要求及其等效体来定义。\n优先权\n本申请要求韩国专利申请号为NO.2003-64508,申请日为2003 年9月17日,发明名称为“启动和启动代码更新方法以及其系统”的 向韩国知识产权局提交的专利申请的优先权;并且将其内容在此作为 交叉引用。
法律信息
- 2019-09-03
未缴年费专利权终止
IPC(主分类): G06F 9/445
专利号: ZL 200410082411.6
申请日: 2004.09.17
授权公告日: 2007.03.14
- 2007-03-14
- 2005-05-25
- 2005-03-23
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |