判断存储器模块中程序码正确性的方法技术

技术编号:2862025 阅读:148 留言:0更新日期:2012-04-11 18:40
一种用于在电子装置中更新存储器模块中的程序码的方法,该存储器模块包含有一普通固件码区段,该方法包含步骤:    将至少一特定地址所储存的值设定为符合一第二条件;    以一第二程序码取代该普通固件码区段当中所包含的第一程序码;以及    设定该至少一特定地址所储存的值,以使该普通固件码区段中的程序码更新完成时该至少一特定地址所储存的值符合一第一条件。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一种,尤指一种用于在电子装置中。
技术介绍
微处理器与存储器等电子元件在现今信息化世界中占有极为重要之角色,并已被广泛的应用在各种不同领域的电子产品上。以DVD Player及个人电脑用之CD-ROM、CD-RW、DVD-ROM光盘机等电子产品为例,其运作方式皆是以一微处理器执行一储存于非挥发性(Non-Volatile)存储器(如FLASH、ROM)上之程序码(Program Code),并配合特殊设计之应用集成电路(Application Specific Integrated Circuit,ASIC)来处理储存于一挥发性(Volatile)存储器(如DRAM、SRAM)中的一般数据。微处理器以执行程序码(Program Code)来维持系统之运作,而储存于该非挥发性存储器上之程序码又称为固件程序码(Firmware Code)。许多应用产品之固件码基于功能增加、改良或除错之故,可能需要不定期更新,此更新之动作通称为固件更新(Firmware Update)。固件更新时最大的风险是当进行固件更新动作时,可能因断电或不当操作等原因而造成更新动作失败。而固件更新动作失败有可能造成系统无法正常运作,甚至于无法通过再次进行固件更新的动作来恢复系统正常功能。为防止上述情形发生,公知技术在更新固件时多使用一种通称为“系统引导码防护”(Boot Code Protection)的方法来解决。公知技术通常将一非挥发性存储器分成两个部份,一是引导码区段(Boot Code Section),用来存放系统引导码(Boot Code),另一部份则是普通固件码区段(NormalFirmware Section),用来存放其它固件码。系统引导码是固件程序码的一部份,每次系统启动(Power on)或重开机(Reboot)时,固件码当中最先被执行的一段程序码便是系统引导码。一般而言,固件更新时是更新该普通固件码区段中的程序码,而不会变更该引导码区段中的系统引导码。倘若固件更新失败,则在重开机(Reboot)后经过特定的固件码判断程序,系统便会执行系统引导码区段当中的系统引导码,完成开机所需的指令。如此一来,即使固件更新失败,系统仍可通过执行系统引导码的方式重新启动,以重新进行固件更新的程序。然而,在公知技术中,固件码的判断程序不是通过电路的接脚设计来判断,便是预先在非挥发性存储器内复制一份相同的比对程序码,并于重开机后检查固件程序码的校验和(Checksum),并与该比对程序码的校验和进行比对。通过比对两者的校验和是否相同,以判断更新后的固件码之正确性。由上述可知,公知技术的固件码正确性之判断程序,需要额外的存储器空间存放供比对用的固件码,增加了硬件的成本。而且系统每次判断时都需要计算与比对现有固件程序码与比对程序码两者的校验和,不仅影响系统启动的效率,校验和检查法的正确性也不够完善。
技术实现思路
因此,本专利技术的目的在于提供一种用于在电子装置中,通过检查至少一特定地址所储存之值是否符合一预设条件的方式,判断该存储器模块当中程序码的正确性,以解决上述问题。本专利技术提供一种用于在电子装置中判断一存储器模块中程序码正确性的方法,该存储器模块包含有一普通固件码(Normal Firmware Code)区段,该方法包含有将至少一特定地址所储存之值设定为符合一第一条件;提供一检查指令;以及利用该检查指令检查该至少一特定地址之值;其中该电子装置于启动时系依据该检查指令,检查该至少一特定地址之值,若该至少一特定地址所储存之值符合一第二条件,表示该普通固件码区段中之程序码有误;若该至少一特定地址所储存之值符合该第一条件,表示该普通固件码区段中之程序码正确无误。本专利技术判断该存储器模块中程序码之正确性的方法之一优点,在于该电子装置不需要额外的存储器空间来储存另一份比对用的固件程序码,因而可降低系统对存储器空间的需求以及电路成本。本专利技术判断该存储器模块中程序码之正确性的方法之另一优点,在于可提升该电子装置判断其固件程序码正确性的效率与精确性,而可依设计的需要弹性地调整判断的条件。本专利技术的另一目的在于,提供一种用于在电子装置中更新存储器模块中程序码的方法,该存储器模块包含有一普通固件码区段,该方法包含有将至少一特定地址所储存之值设定为符合一第二条件;以一第二程序码取代该普通固件码区段当中所包含之一第一程序码;以及将该至少一特定地址所储存之值设定为符合一第一条件。本专利技术之电子装置更新该存储器模块中之程序码的方法之优点在于,该电子装置进行程序码更新的过程中,仅需对该至少一特定地址作简单的设定,不需备份比对用的程序码,亦不需复杂的程序码更新程序。本专利技术的又一目的为,提供一种用于一电子装置启动时执行一存储器模块中之程序码的方法,该存储器模块包含有一普通固件码区段,该方法包含有利用该电子装置检查至少一特定地址所储存之值;若该至少一特定地址所储存之值符合一第二条件,该电子装置会执行一引导码区段内之程序码而不执行该普通固件码区段内之程序码;以及若该至少一特定地址所储存之值符合一第一条件,该电子装置会执行该普通固件码区段内之程序码。本专利技术之电子装置启动时执行该存储器模块中之程序码的方法之优点,在于该电子装置仅需检查该至少一特定地址之值,而不需要对该普通固件码区段之程序码作校验和的运算与比对,具有简单、迅速的特性。附图说明图1为本专利技术之一非挥发性存储器的示意图。图2为本专利技术用于电子装置更新固件程序码的方法之一实施例流程图。图3为本专利技术之另一非挥发性存储器的示意图。图4为本专利技术用于在电子装置中判断固件程序码之正确性的流程图。图5为本专利技术用于在电子装置启动时执行固件程序码的方法之流程图。附图标记说明100、300非挥发性存储器 110、310 引导码区段120、320 普通固件码区段130、330、340数据具体实施方式在实作上,本领域技术人员可利用包含有一个以上非挥发性存储器的存储器模块来储存固件程序码,而为了方便说明本专利技术之实施例,以下以将固件程序码储存于单一非挥发性存储器中为例。本领域技术人员可依据以下本专利技术的技术公开,应用一包含有多个非挥发性存储器的存储器模块来达成本专利技术之功效。请参考图1。图1为本专利技术用以储存固件程序码之一非挥发性存储器的示意图100。非挥发性存储器100中的存储器空间包含有一引导码区段110,用以储存系统引导码(Boot Code);以及一普通固件码区段120,用以储存其它的固件程序码。普通固件码区段120中包含有位于第一地址的第一内容130,该第一地址是可预先选定的普通固件码区段120中的任何地址。第一内容130的数据长度并不限定于某一特定长度,只要能达成本专利技术之目的,任何长度(包括一位)的第一内容130均属于本专利技术之应用范围。不过第一内容130的数据长度越长就会占用普通固件码区段120越多的存储器空间。在本专利技术之一较佳实施例中,第一内容130的数据长度仅需使用一个字节。本专利技术之判断固件程序码正确性的方法将于稍后讨论,以下先以流程图方式说明本专利技术于一电子装置(例如电脑、光盘机、刻录器、影音播放器、数码相机、印表机、扫描器、其它外围设备或具有固件程序码之电子元件,例如数字信号处理器(Digital Signal P本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:陈炳盛吴松阳林晏丞
申请(专利权)人:联发科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1