绕道修补程序的方法及使用该方法的电子装置制造方法及图纸

技术编号:2860147 阅读:141 留言:0更新日期:2012-04-11 18:40
一种绕道修补程序方法,执行于一程序驱动电子装置中,上述程序驱动电子装置具有一可重写内存,用以储存一程序,上述程序包含储存在一第一区域的一被取代部分程序,包括下列步骤:取得一修正程序,用以取代上述被取代部分程序;储存上述修正程序于上述可重写内存的一第二区域;将上述被取代部分程序的一开头指令改成一例外产生指令,使得上述被取代部分程序被执行时产生程序修补例外;当接收上述程序修补例外时,执行上述修正程序。

【技术实现步骤摘要】

本专利技术涉及修正加载至一程序驱动电子装置的需要修改程序的方法,特别是涉及经由接收程序修补例外来执行上述需要修改程序的修正程序的方法。
技术介绍
在一个以内存记录程序,并由此程序驱动的程序驱动电子装置中,当执行于程序驱动电子装置中的程序有错误部分或其中某些部分需要被更新时,通常会以重写的方式将正确或新版的程序加载以取代原来的程序。但是这样的作法需要比较长的时间,而且当原来程序只有一小部分需要修改时,对于整个程序重新安装的作法而言是非常没有效率的。而整个程序更新的程序也会告知使用者请求同意,这对使用者而言也会造成使用上的不便。在另一种作法上,只针对原来程序中需要修改的部分用更新程序代码覆盖作修改。这种作法中并不是每种情况皆适用的。因为如果储存更新程序代码所需的位大于需要修改的部分就无法直接覆盖上述被取代部分程序。而且移动通讯装置及数字相机在用来储存操作系统的闪存(flash memory)如果需要更新程序,需要以区块(block)为单位作更新。因此并不能单纯地只更新原来程序中需要修改的部分。因此,需要一种更具弹性的修补程序的方法,用以克服上述需要更新整个程序及不能适用每种情况的部分更新的缺点。
技术实现思路
有鉴于此,本专利技术的目的在提供一种更具弹性的修补程序的方法,用以克服上述需要更新整个程序及不能适用每种情况的部分更新的缺点。基于上述目的,本专利技术提供一种绕道修补程序方法,执行于一程序驱动电子装置中,上述程序驱动电子装置具有一可重写内存,用以储存一程序,上述程序包含储存在一第一区域的一被取代部分程序,包括下列步骤取得一修正程序,用以取代上述被取代部分程序;储存上述修正程序于上述可重写内存的一第二区域;将上述被取代部分程序的一开头指令改成一例外产生指令,使得上述被取代部分程序被执行时产生程序修补例外;当接收上述程序修补例外时,执行上述修正程序。其中,本专利技术的具有绕道修补程序方法可以利用一程序实现,记录于例如内存或存储装置的储存介质上,当此程序加载至一程序驱动电子装置中,则可执行如上所述绕道修补程序方法。另外,本专利技术提出一种程序驱动电子装置,用以执行绕道修补程序方法,包含可重写内存,用以储存程序,上述程序包含储存在第一区域的被取代部分程序;处理器,耦接于上述内存,其中当上述处理器取得修正程序时,储存上述修正程序于上述可重写内存的第二区域,用以取代上述被取代部分程序。上述处理器将上述被取代部分程序的一开头指令改成例外产生指令,使得上述被取代部分程序被执行时产生程序修补例外。以及当上述处理器接收上述程序修补例外时,执行上述修正程序。附图说明图1示出了执行本专利技术较佳实施例的绕道修补程序方法的移动通讯装置方块图;图2示出了本专利技术较佳实施例中上述内存4的示意图;图3A及图3B中示出了本专利技术较佳实施例的绕道修补程序方法流程图;图4示出了多个修正程序的数据结构示意图;图5示出了依据本专利技术实施例的绕道修补程序方法的计算机可读取储存介质示意图。附图符号说明1-处理器;2-取得单元;4-内存;10-移动通讯装置;41-固件使用区;42-固件预留区;43-数据区;44-中断向量表;45-例外处理模块;46-被取代部分程序;47-49-修正程序471,481,491-索引字段;472,482,492-版本字段;473,483,493-下个修正程序地址字段;474,487,494-修正程序代码。具体实施例方式本专利技术提供一种绕道修补程序方法,执行于一程序驱动电子装置中,用以克服上述需要更新整个程序及部分更新方法不能适用每种情况的的缺点。在本实施例中以移动通讯装置为例,然而本专利技术较佳实施例的绕道修补程序方法可以执行于其它程序驱动电子装置中。图1示出了一执行本专利技术的绕道修补程序方法的移动通讯装置10,上述移动通讯装置10包含处理器1、取得单元2、及内存4。上述处理器1耦接于上述取得单元2及内存4。上述取得单元2用以取得修正程序。在本实施例中,虽以移动通讯装置10为例,然其并非用以限定本专利技术,本专利技术的程序驱动电子装置可以是其它电子装置。在本实施例中,取得单元2经由无线通讯方式,从个人计算机下载或连接因特网取得修正程序。举例来说,取得单元2可以经由内含修正程序的短信服务(Short Messaging Services,简称SMS)讯息来取得修正程序。通常硬件制造厂会预先将该产品内部的内存逻辑划分为(a)用以存放数据的数据区,及(b)用以存放固件程序的程序区。因为逻辑划分时硬件制造厂并不晓得实际固件程序需要多大储存空间,所以均会预留远超过固件程序大小的较大空间。故实际加载固件程序至内存时,在程序区的末端往往会有一部分固件预留区。图2示出了本专利技术较佳实施例中上述内存4的示意图,上述数据区为数据区43,而上述程序区包含固件预留区(empty area)42及固件使用区(code area)41。固件使用区41储存着用以驱动上述移动通讯装置10的程序。当上述程序中有一部分程序码需要修改时,可以利用本专利技术的绕道修补程序方法修正。在固件使用区41中有一被取代部分程序46、例外处理模块45、及中断向量表44。本专利技术较佳实施例中,上述中断向量表44所记录的各种例外对应的例外处理程序码所在地址皆为指向上述例外处理模块45的地址。因此任何例外产生时,处理器1皆根据上述例外处理模块45所记录的例外处理程序来处理例外。不同于传统的例外处理程序,本专利技术较佳实施例中,例外处理模块45所记录的例外处理程序首先判别处理器1接收的例外是否为程序修补例外。图3A示出了本专利技术较佳实施例的电子装置修补程序过程的流程图。首先处理器1经由取得单元2取得一修正程序47,上述修正程序47稍后会被用以取代被取代部分程序46(步骤S2)。举例来说,由移动通讯装置10的制造者发送一内含修正程序47的短信至移动通讯装置10。取得单元2取得上述短信并撷取出上述修正程序47。接着,处理器1将上述修正程序47储存在内存4的固件预留区42中相邻于数据区43的区域(步骤S4),处理器1并记录储存修正程序47的地址。等到修正程序47确实储存在内存4中后,处理器1接着修改被取代部分程序46(步骤S6),使处理器1稍后欲再执行被取代部分程序46时都会产生程序修补例外;如此处理器1稍后将无法执行被取代部分程序46,而是会跳到修正程序47所在地址以执行修正程序47。在本实施例中,我们将被取代部分程序46的开端指令修改为“例外产生指令”(exception-causing code)即处理器1执行该指令时,会导致处理器1产生例外(exception)情形的指令。上述例外产生指令包含具有未定义指令码(op code)的指令,或存取非法内存地址的指令。上述开端指令是被取代部分程序46的第一个指令。上述被取代部分程序的范围可以由修正程序设计者决定。举例来说,如果固件使用区41中的固件程序的第三到第六个指令是错误的或需要更新的,则上述被取代部分程序46可以定义为第三到第六个指令或者第二到第六个指令,或者为包含上述第三到第六个指令的任何范围。上述开端指令是被取代部分程序46的第一个指令,所以开端指令可以是上述第三个指令或上述第三个指令以前的任何一指令。同理,如果上述固件程序的第i个指令是错误的或需要更新的,则上述开端本文档来自技高网...

【技术保护点】
一种修补程序方法,执行于一程序驱动电子装置中,上述程序驱动电子装置具有一可重写内存,用以储存一程序,上述程序包含储存在一第一区域的一被取代部分程序,包括下列步骤:取得一修正程序,用以取代上述被取代部分程序;储存上述修正程序于上述可重写内存的一第二区域;将上述被取代部分程序的一开头指令改成一例外产生指令,使得上述被取代部分程序被执行时产生程序修补例外;以及当接收上述程序修补例外时,执行上述修正程序。

【技术特征摘要】

【专利技术属性】
技术研发人员:郑耀杰施维忠
申请(专利权)人:明基电通股份有限公司
类型:发明
国别省市:71[中国|台湾]

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

1