CN1692330A - 程序更新方法和终端设备 - Google Patents

程序更新方法和终端设备 Download PDF

Info

Publication number
CN1692330A
CN1692330A CN 200380100316 CN200380100316A CN1692330A CN 1692330 A CN1692330 A CN 1692330A CN 200380100316 CN200380100316 CN 200380100316 CN 200380100316 A CN200380100316 A CN 200380100316A CN 1692330 A CN1692330 A CN 1692330A
Authority
CN
China
Prior art keywords
address
ram
program
nonvolatile memory
control cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200380100316
Other languages
English (en)
Other versions
CN100339823C (zh
Inventor
松本泰辅
渡边泰彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1692330A publication Critical patent/CN1692330A/zh
Application granted granted Critical
Publication of CN100339823C publication Critical patent/CN100339823C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

在更新可重写非易失性存储器如闪速ROM中存储的程序时,将非易失性存储器内包含要更新的存储程序部分的区块中的程序部分传到RAM中,仅让要更新的传送程序部分从外部接受指示并进行更新。然后擦除非易失性存储器内的这个区块,再次将RAM内经过更新的这部分程序记录到非易失性存储器的这个经过擦除的区块上。

Description

程序更新方法和终端设备
技术领域
本发明涉及一种用于更新终端设备中的可重写非易失性存储器如闪速ROM(闪速ROM)内存储的程序的方法,并涉及一种这样的终端设备。
背景技术
传统上,终端设备在可重写非易失性存储器(如闪速ROM)内存储控制软件(程序),用以指示CPU的操作,从而对终端设备进行控制。
在该终端设备中,人们提出了一种可在发现控制软件中的程序错误(bug)时更新控制软件的方法。例如,JP2001-154838(第3-5页,图3)就公开了这样一种方法。
在JP2001-154838公开的方法中,首先产生的是程序错误经过校正的新控制软件。然后,一旦对记录着程序错误的可重写非易失性存储器进行了擦除,就将该新控制软件记录到该存储器中。由此就更新了控制软件。
在一擦掉可重写非易失性存储器(如闪速ROM)就在上面记录新控制软件的更新控制软件方法中,在非易失性存储器(如闪速ROM)的约束下,存储器被分成多个区块,仅在一个划分区块基础上删掉旧控制软件,然后记录新控制软件。
因此,即使在仅需校正1个字节时,如果非易失性存储器的区块是16K字节或64K字节,也必需删掉这整个16K字节或64K字节,然后从设备外部传送其程序错误经过校正了的16K字节或64K字节的新控制软件,分别将它们记录到非易失性存储器中。
因此,在更新终端设备的控制软件过程中,从设备外部传入的数据量加大,于是就产生了包括数据传送所需时间在内的操作时间增加的问题。
发明内容
本发明的一个目的是缩短终端设备内记录的程序更新所需的终端设备操作时间。
本发明中,在更新可重写非易失性存储器(如闪速ROM)内记录的程序过程中,在RAM内对非易失性存储器的含有存储的程序中需更新的部分的那个区块内的程序部分进行扩展,然后根据外部指令,仅更新所扩展的程序部分中需要更新的那个部分。然后,擦除非易失性存储器内的区块,再次将RAM内经过更新的程序部分记录到非易失性存储器的已擦除区块内。
这样通过在RAM内对包含有需要更新的部分的程序部分进行扩展,就可以仅更新程序部分内需要更新的部分。通过这种方式,仅需对需要更新的部分作出指示,而无需指示更新所有程序部分的信息。换言之,由于可以减少从装置外部传送的重写指令,因此可以减少包括数据传输所需时间在内的程序更新操作时间。
附图的简要说明
图1是本发明第一实施例中的终端设备的功能方框图;
图2是表示终端设备中存储器映象图(map)的例子的示意图;
图3是第一实施例中的处理过程的流程图;
图4是表示第一实施例中的重写指令的例子的示意图;
图5是表示第一实施例中的重写指令的另一例子的示意图;
图6是表示本发明的第二实施例中的重写指令的例子的示意图;
图7是第二实施例中的处理过程的流程图;
图8是表示本发明第三实施例中的重写指令的例子的示意图;
图9是第三实施例中的处理过程的流程图;
图10是表示第三实施例中的重写指令的另一例子的示意图;
图11是表示第三实施例中的重写指令的又一例子的示意图;
图12是表示本发明第四实施例中的重写指令的例子的示意图;
图13是第四实施例中的处理过程的流程图;
图14A是表示本发明的第五实施例中软件在校正前的模块结构的示意图;
图14B是第五实施例中校正后的软件的模块结构的示意图;
图15是表示第五实施例中的重写指令例子的示意图;
图16是第五实施例中的处理过程的流程图;
图17是表示第五实施例中的重写指令的另一例子的示意图;
图18是表示第五实施例中的重写指令的再一例子的示意图;
图19是表示第五实施例中软件在RAM内扩展后的模块结构的示意图;
图20A是表示本发明的第六实施例中软件在经过校正前的模块结构的示意图;
图20B是表示第六实施例中软件在经过校正后的模块结构的示意图;
图21A是表示第六实施例中闪速(Flash)ROM内的软件数据在校正前的示意图;
图21B是表示第六实施例中闪速ROM内的软件数据在校正后的示意图;
图22是第六实施例中控制CPU使用的命令的示意图;
图23是第六实施例中重写指令的例子的示意图;
图24是第六实施例中的处理过程的流程图;
图25是表示第六实施例中的移位(shift)记录的示意图;
图26是表示第六实施例中RAM内的部分软件数据在地址重写之前的示意图;
图27是表示第六实施例中RAM内的部分软件数据在指示了地址重写后的示意图;
图28是表示第六实施例中RAM中的部分软件数据在指示了地址重写后的另一示意图。
最佳实施方式
下面将参照附图描述本发明的实施例。
(第一实施例)
图1表示本发明第一实施例中的终端设备的方框图的例子。在图1中,“1”表示终端设备。
终端设备1具有可向/从外部发送/接收信号的外部连接接口11、用于控制终端设备1的控制CPU 12、作为可重写非易失性存储器的闪速ROM 13、RAM、以及数据总线15(每个功能块都通过其相连)。
可考虑作为外部接口11的是电缆有线连接接口和无线连接接口。此外,对于外部接口11,还可使用存储卡接口。该情况下,控制CPU 12从插入存储卡接口的存储卡中读取各种信息。
此外,当外部接口11是有线连接接口或无线连接接口、并且与网络相连时,可利用HTTP、FTP、TFTP以及其它传输协议输入数据。此外,也是在通过外部接口如有线连接接口、无线连接接口或存储卡接口输入信息时,输入信息通过控制CPU 12记录在RAM 14或闪速ROM 13中。另外,在该实施例中,数据通过控制CPU 12记录,在允许DMA传送时,可利用DMA传送复制的数据。
图2表示终端设备1中的存储器映象图的例子。
如图2所示,与数据总线15相连的闪速ROM 13的存储区201在由控制CPU 12控制的存储空间中具有十六进制标志地址00000000(此后表示为0x00000000)到0x0005FFFF。此外,假设RAM 14的存储区202具有0x00100000到0x0015FFFF,闪速ROM 13的擦除单位为64K字节,即0x00000000~0x0000FFFF,0x00010000~0x0001FFFF...
下面参照图3所示的流程图描述按上述方式构建的终端装置1的操作。
在步骤S101,终端装置1的控制CPU 12通过外部连接接口11从外部装置(图1未示出)中将重写指令读入RAM 14的任选区域(在此,假设是图2中从0x00100000开始的区域)。
在此假设在闪速ROM 13存储的控制软件中要重写的地址和数据如图4所示。
此外,通过利用图4所示的地址来指示控制软件的重写部分,就不必利用实际数据指示重写部分,于是就可以减少重写指令的数据量,并缩短程序更新时间。
因此,在步骤S102中,控制CPU 12确定闪速ROM 13中的重写区块。例如,控制CPU 12检查图4中的重写地址,然后判定No.1到No.6的重写指令指定了闪速ROM 13中区块0x00010000到0x0001FFFF中的重写。
在步骤S103中,控制CPU 12在RAM 14的除了步骤S101中读入重写指令区域以外的任选区域中(在此,假设图2中的0x00110000到0x0011FFFF)扩展步骤S102中确定的重写区块内的数据。
此外,在步骤S104中,控制CPU 102在RAM内更新地址0x00110030中的数据,在该地址中,将在用图4的重写指令No.1指示的地址0x00010030内的数据扩展成0x43。
在步骤S105中,控制CPU 12判断步骤S102内确定的重写区块上的所有重写指令是否已得到处理。该情况下,由于留下了指令No.2到No.6,控制CPU 12就进入步骤S104的处理过程,并按照与前面相同的方式根据重写指令No.2到No.6更新RAM中经过扩展的控制软件。
在完成了重写指令No.6的处理过程后,控制CPU 12在步骤S105中能够确定重写区块上的重写指令已全部经过处理,然后进入到步骤S106的处理过程。
接着,在步骤S106中,控制CPU 12擦除闪速Rom13中的区块0x00010000到0x0001FFFF。然后,控制CPU 12将RAM 14内区域0x00110000到0x0011FFFF上存储的更新控制软件记录到闪速ROM 13内的已擦除区块中。
在步骤S107中,控制CPU 12判断是否已处理了所有这些读取的重写指令。该情况下,由于留下了重写指令No.7,因此控制CPU 12进入步骤S102的处理过程。
然后,在步骤S102中,控制CPU 12检查图4中指令No.7以及后续数字的地址,并判定No.7到No.19的重写指令指定了对闪速ROM 13中区块0x00020000到0x0002FFFF中的重写。
在步骤S103中,控制CPU12在RAM 14的除读取重写指令区域之外的所有其它区域(在此假设图2中的0x00110000到0x0011FFFF)的区块内扩展数据。另外,在步骤S104中,控制CPU 12更新RAM 14的地址0x00110000中的数据,其中将位于用图4的重写指令No.7指示的地址0x00021000中的数据扩展为0x1F。
此后,控制CPU 12按照与前面相同的方式根据重写指令No.8到No.10更新RAM中经过扩展的控制软件。在步骤S106中,CPU 12删除闪速ROM 13中的区块。然后,控制CPU 12将RAM 14的区域0x00110000到0x0011FFFF中存储的更新控制软件记录在闪速ROM 13的已删除区块中。
上述处理过程重复进行,直到在步骤S107中判定在终端设备1中读取重写指令的过程已经全部完成。
1.按照上面所述的,依照第一实施例,通过在RAM 14中扩展包括需要更新部分的程序部分,可以仅更新程序部分中需要更新的部分。于是仅需指示需要更新的部分,而无需要求指示更新整个程序部分的更新信息。换言之,可以减少外部传给终端设备1的重写指令。因此,就可以缩短包括数据传输时间在内的闪速ROM 13内存储的控制程序的更新操作时间。
此外,可在完成了对RAM14内控制程序的程序部分的更新之后,对闪速ROM 13进行删除处理,并将更新后的数据写入闪速ROM 13。通过这种方式,例如可获得这样一种方法,其能仅将闪速RAM 13的控制程序中不需要改变的那部分保存RAM 14中,对闪速ROM 13进行删除处理,然后下载更新程序部分以写入闪速ROM 13。在该方法中,可避免以下情形:在将更新程序信息写入闪速ROM 13的过程中通信未联系上时,不仅写入更新程序失败,而且闪速ROM 13中存储的原始程序也丢失。换言之,即使在写入更新程序信息过程中通信未联系上时,也能将更新前的程序部分留在闪速ROM 13内,因此,是能恢复的。
此外,依照第一实施例,可利用外部接口11从外部提供重写指令,因此不必删除(remove)闪速ROM 13以更新程序,而且可以实现缩短了更新操作时间的程序更新。
此外,图2所示的存储空间可相应于控制CPU 12、闪速ROM 13和/或RAM 14的类型或结构或者终端设备1中提供的数据量而变化。
此外,虽然该实施例中使用了闪速ROM 13,但只要存储器是可重写的非易失性存储器,也可以采用EEPROM之类的存储器。
另外,该实施例中控制软件的更新单位是64千字节,但也不需要是64千字节,这要根据取决于非易失性存储器(例如闪速ROM 13)装置类型的擦除区块容量来确定。而且,虽然该实施例描述了1字节作为重写字节数,但重写数据也不必是1字节,例如也可以同时重写用任选地址指定方法指定的数据量如2字节和4字节。
2.图4中,闪速ROM 13中目标重写地址用绝对地址指示。但是,如图5所示,相对于后续的地址,可仅用绝对地址指示第一地址,而这些后续地址用紧接前面所用地址的相对值指示。例如在图5所示的例子中,用重写指令No.2指示的重写地址表示位于用指令No.1指示的重写地址后面的地址0x1。
通过这种方式,就可以用数据量小于绝对地址数据量的相对地址指示重写,由此可以减少重写指令的数据量。
(第二实施例)
下面描述依照本发明第二实施例的终端装置。
依照本发明第二实施例的终端装置的功能方框图的例子和存储映象图的例子分别与第一实施例中的终端装置相同,因此也与图1和2所示的相同。
在第一实施例中,重写指令由图4所示的非易失性存储器中的重写目标地址401和重写数据402的组合构成。在第二实施例中,如图6所示,重写指令由重写指示命令501和用于执行该命令的数据501和502的组合构成。通过这种方式,也可以获得象第一实施例中那样的效果。
例如,图6中的重写指令No.1是用于在RAM 14中扩展的指令。当控制CPU 12收到重写指令No.1时,其利用数据1作为扩展源地址504,以数据2作为扩展目的地址505,将程序从闪速ROM 13扩展到RAM 14中。
此外,图6中的重写指令No.8是一个写回闪速ROM 13的指令。收到重写指令No.8的控制CPU 12删掉闪速ROM 13中从重写指令后面的数据2开始的区块,然后利用数据1作为扩展源地址506,以数据2作为记录目标地址507,将RAM 14中的程序存到闪速ROM 13中。
重写指令No.2到No.7和No.10到No.13是数据重写指令。当控制CPU 12收到数据重写指令时,其利用数据1作为重写目标地址508,以数据2作为实际重写数据509,对RAM中的数据进行重写。
下面参照图7所示的流程图描述给出了图6所示重写指令时的操作。
首先,在步骤S110中,当提供图6所示的指令作为闪速ROM 13所存程序的重写指令时,控制CPU 12通过外部连接接口11读取图6所示的重写指令No.1,并将其存在RAM 14的任选区域内。
在步骤S111中,控制CPU 12检查指令No.1是否是重写终止指令。由于该指令No.1不是重写终止指令,控制CPU 12转入步骤S112的处理过程。
在步骤S112中,控制CPU 12检查指令No.1是否是用于在RAM 14中进行扩展的指令。由于指令No.1是用于在RAM 14中进行扩展的指令,控制CPU12转入步骤S115的处理过程。
在步骤S115中,控制CPU 12根据指令后面的数据,在RAM 14中的0x00110000到0x0011FFFF内对闪速ROM 13中始自0x00010000的区块、即第二实施例中的0x00010000到0x0001FFFF的数据进行扩展。然后,控制CPU12转入步骤S110的处理过程。
接着,在步骤S110中,控制CPU 12读取指令No.2。控制CPU 12在步骤S111和S112中象对指令No.1那样检查读取指令No.2的指令内容。但是,指令No.2与步骤S111和S112的转移条件(branch condition)不一致。因此,控制CPU 12转入步骤S113的处理过程。
在步骤S113中,控制CPU 13判定指令No.2是数据重写指令,因此,转入步骤S116的过程。
在步骤S116中,控制CPU 12根据该指令后面的数据重写地址0x00110030到0x43中存储的数据。
然后,控制CPU 12重复与前面相同的过程,直到指令No.7,然后在步骤S110中读取指令No.8。控制CPU 12在步骤S111到S113中按照与前述过程相同的方式检查指令内容,然后转入步骤S114的处理过程。
在步骤S114中,控制CPU 12判断指令No.8是写回闪速ROM 13的指令,然后转入步骤S117的处理过程。
在步骤S117中,依照该指令后面的数据,控制CPU 12转入将RAM 14中经过扩展的程序记录到区块0x00010000到0x0001FFFF中的处理过程。首先,控制CPU 12一次删掉ROM 13中的区块0x00010000到0x0001FFFF。然后,控制CPU 12将RAM 14的区块0x00010000到0x0001FFFF的内容记录到闪速ROM 13的区块0x00010000到0x0001FFFF中。
然后,控制CPU 12为图6所提供的所有重写指令执行前述过程。
如上所述,依照第二实施例,可以仅将终端设备1中闪速ROM 13所存控制软件中的需要更新的数据读入终端设备1中。由此可以缩短终端设备1中对闪速ROM 13内记录的软件进行更新的时间。
另外,在第二实施例中,图6中举例示出的重写指令可通过图1所示的外部接口11提供,此外,还可为了执行程序过程而顺序地提供指令内容。再有,还可一起提供要存到终端设备1的RAM 14中去的指令,以便根据存储的指令执行重写过程。
此外,在前述描述中,可按照图7中步骤S111、S112、S113和S114的顺序执行检查读指令内容的每个过程,但即使以可选方式改变了顺序,也可以获得相同效果。
(第三实施例)
在第一实施例中,重新指令由闪速ROM 13(其是非易失性存储器)内的图4所示的重写目标地址401和重写数据402的组合构成。在第三实施例中,如图8所示,重写指令由重写起始地址801、重写数据项数目802、以及与重写数据项数目802相对应的实际重写数据803组合构成。通过这种方式,就可以获得与第一实施例相同的效果。
另外,依照本发明第三实施例的终端设备的功能框图的例子和存储器映象图的例子分别与图1和2所示的第一实施例的相同。
下面参照图9所示的流程图,描述在提供有图8所示的重写指令时终端设备1的操作。
在步骤S121中,在将图8所示的指令提供给终端设备1以作为闪速ROM13内所存程序的重写指令时,控制CPU 12通过外部连接接口11将图8所示的重写指令读入RAM 14中的任选区域(在此,假设该区域从图2中的0x00100000开始)。
在步骤S122中,控制CPU 12对图8中的重写起始地址进行检查,判定重写指令No.1和No.2指示闪速ROM 13中区块0x00010000到0x0001FFFF中的重写。
接着,在步骤S123中,控制CPU 12在已读入重写指令的区域之外的任选区域(在此假设0x00110000到0x0011FFFF)内对步骤S122中判定的区块内的数据进行扩展。
另外,在步骤S124中,控制CPU 12根据图8中的重写指令No.1确定RAM 14中对闪速ROM 13中的0x00110030进行了扩展的地址0x00010030是重写起始地址,重写数目项的数目为0x04。
在步骤S125中,控制CPU 12根据图8中指令No.1的重写数据,改变地址0x00110030到0x43的内容。
接着,在步骤S126中,控制CPU 12将重写地址加1,变为0x00110031。在步骤S127中,控制CPU 12将重写数据项数目减1,变为0x03。在步骤S128中,控制CPU 12检查重写数据项数目是否为0,当该数目不是0时,其转入步骤S125的处理。
然后,控制CPU 12重复上述步骤S125到S128的处理过程,直到重写数据项数目变为0。
当重写数据项数目变为0时,控制CPU 12在步骤S129中判断步骤S122中确定的对重写区块的重写指令是否全部处理完。当区块上的重写指令未经过处理时,控制CPU 12转入步骤S124的处理,然后重复步骤S124到S129的处理过程,直到区块上的所有重写指令经过了处理。
与此同时,当重写区块上的所有重写指令全部经过处理之后,控制CPU 12在步骤S130中删除闪速ROM 13内于步骤S122时确定的区块。然后,控制CPU 12将RAM 14中区域0x00110000到0x0011FFFF内存储的新控制软件记录到闪速ROM 13的已删区块内。
接着,控制CPU 12在步骤S131中判断是否完成了对图8举例示出的重写指令的处理。当该处理未完成时,控制CPU进入步骤S122的处理过程。
然后,控制CPU 12重复上述步骤S122到S131的处理过程,直到完成了所有重写指令的处理。
如上所述,依照第三实施例,在终端设备1的闪速ROM 13内存储的控制软件中,可以仅读取需要更新到终端设备1中的数据进行更新。
在第三实施例中,如图8所示,重写指令由重写起始地址801、重写数据项数目802和实际重写数据803组合构成。此外,如图10所示,重写指令可由重写起始地址1001、重写终止地址1002、以及实际重写数据1003构成。该情况下,例如,如图10所示,通过将重写起始地址0x00010030与重写终止地址0x00010033作比较,将重写数据项数目推导为0x04。因此,利用图10所示的重写指令,也可以获得与图8所示重写指令相同的效果。
因此,在第三实施例中,如图8所示,重写指令由重写起始地址801、重写数据项数目802和实际重写数据803组合而成。另外,如图11所示,重写指令可由重写起始地址1101、实际重写数据1102和表示重写终止的特定数据1103构成。该情况下,例如在图11的重写指令No.1中,将RAM 14内地址0x00110030中(其中,重写起始地址0x00010030上的程序经过扩展)的数据更新为0x43。另外,将地址0x00110031上的数据更新为0xBF,将地址0x00110032上的数据更新为0x00,将0x00110033上的数据更新为0x10。
因此,由于0x10后面的数据是表示重写终止的专用数据,因此可以判定该特定数据后面的下一数据是下一重写起始地址。按照这种方式,通过重复上述过程,图11所示的重写指令能实现与图8所示重写指令相同的效果。
另外,在第三实施例中,在步骤S126中将重写地址加1,然后在步骤S127中将重写数据项数减1。但是,通过先将重写数据项数减1,然后在将重写地址加1,也可以获得相同效果。
(第四实施例)
在第三实施例中,如图8所示,重写指令可由非易失性存储器内的重写起始地址801、重写数据项数目802和实际重写数据803组合而成。在第四实施例中,如图12所示,指令由包括重写指令命令的指令1201和用于执行该命令的数据1202组合而成。通过这种方式,可以获得与第三实施例相同的效果。
另外,依照本发明第四实施例的终端装置的功能方框图的例子和存储器映象图的例子分别与图1和2所示的第一实施例的相同。
下面参照图13所示的流程图描述在提供有图12所示重写指令时的操作。
另外,在图12的重写指令的操作中,RAM内扩展和写回ROM与第二实施例中一样。另外,该重写表示利用对应于地址后面的数据表示的数据项数目的后续实际数据写到用指令后面的数据表示的地址中。
在步骤S141中,在提供图12所示的指令作为闪速ROM 13中存储程序上的重写指令时,控制CPU 12读取指令No.1。
接着,在步骤S142中,控制CPU 12检查读取指令是否是重写终止指令。当该指令不是重写终止指令时,控制CPU 12进入步骤S143的处理过程。
在步骤S143中,控制CPU 12检查读取指令是否是RAM 14中的扩展指令。当该指令是RAM 14中的扩展指令时,控制CPU 12进入步骤S144的处理过程,而当指令不是RAM 14中的扩展指令时,其进入步骤S145的处理过程。
在步骤S144中,当读取指令是图12中的指令No.1时,指令是RAM 14中的扩展指令。因此,控制CPU 12在RAM 14中的地址0x00110000到0x0001FFFF上对闪速ROM 13中的地址0x00010000到0x0001FFFF上的数据进行扩展。然后,控制CPU 12进入步骤S141的处理过程。
当读取指令是图12中的指令No.2时,控制CPU 12在步骤S141中读取指令。然后,控制CPU 12通过步骤S142到S143的处理进入S145的处理过程。
在步骤S145中,控制CPU 12检查读取指令是否是数据重写指令。当读取指令是数据重写指令时,控制CPU 12进入步骤S146的处理。其间,当读取指令不是数据重写指令时,控制CPU 12进入步骤S151的处理过程。
图12中的指令No.12是数据重写指令。因此,控制CPU 12进入步骤S146的处理过程。
在步骤S146中,控制CPU 12根据图12中的指令No.2确定RAM 14中的地址0x00110030是重写起始地址,并且重写数据项数目是0x04。
接着,在步骤S147中,控制CPU 12根据图12中的指令No.2的重写数据,将地址0x00110030的内容改为0x43。然后控制CPU 12在步骤S148中将重写地址加1,变为0x00110031。
在步骤S149中,控制CPU 12将重写数据项数目减1,变为0x03。
在步骤S150中,控制CPU 12检查重写数据项数目是否为0,并且当该数据不是0时,进入步骤S147的处理过程。
然后,控制CPU 12重复上述步骤S147到S150的处理过程,直到重写数据项数目变为0。当重写数据项的数目为0时,控制CPU 12进入S141的处理过程。
在图12中的指令No.4的情况下,控制CPU 12在步骤S141中读取指令。然后控制CPU 12通过步骤S142、S143和S145的处理过程进入S151的处理过程。然后,在步骤S151中,控制CPU 12检查该读取指令是否是写回闪速ROM13的指令,当该指令是写回闪速ROM 13的指令时,其进入步骤S152的处理过程,而当该指令不是写回闪速ROM 13的指令时,其进入S141的处理过程。
图12中的指令No.4是写回闪速ROM13的指令。因此,控制CPU 12进入步骤S152的处理。
在步骤S152中,控制CPU 12擦除闪速ROM 13中由写回ROM的读取指令表示的区块,即在图12举例示出的指令No.4的情况下的0x00010000到0x0001FFFF。接着,控制CPU 12将RAM 14的0x00110000到0x0011FFFF中存储的新控制软件记录在闪速ROM 13的已擦除的区块中。然后,控制CPU 12进入步骤S141的处理过程。
控制CPU 12重复前述处理过程,直到在步骤S142中判定步骤S141中读取的指令是重写终止指令。
如上所述,根据第四实施例,在终端设备1的闪速ROM 13存储的控制软件中,可仅将需要更新的数据读入终端设备1。
另外,在第四实施例中,图12举例示出的重写指令可通过图1所示的外部接口11提供,而且,可顺序地提供用于执行该重写处理过程的指令内容。此外,可将RAM 14中存储的指令一起给终端,以便根据所存储的指令执行重写处理。
此外,第四实施例描述了按照步骤S142、S143、S145和S151的顺序执行对步骤S141中读取的指令内容确定处理的情况,但可以以可选方式交换确定顺序。
另外,在第四实施例中,在步骤S148中将重写地址加1,然后在步骤S149中将重写数据项数目减1。但是,先将重写数据项的数目减1,然后再将重写地址加1,也能获得相同效果。
(第五实施例)
图14A和14B表示本发明第五实施例中的程序的模块结构,图14A表示校正程序错误之前的结构,而图14B表示校正了程序错误之后的结构。
换言之,图14A所示的程序由三个模块组成,即模块A1401、模块B1402和模块C1403。在图14A所示的程序中,即校正之前的程序中,模块A位于0x00000000到0x000001FF上,模块B位于0x00000200到0x0000021F上,模块C位于0x00000220到0x000005FF上。
另外,在图14B所示的程序中,作为图14A中程序的校正结果,模块B1402发生了变化,其位于0x00000200到0x0000022F上,成为模块B’1404。模块A与图14A中相比未变化。模块C的内容未变化,但其位移到0x00000230到0x0000060F。
假设本发明第五实施例中终端设备1的功能方框图的例子和存储器映象图的例子分别与图1和2所示的相同。
在假设图14A的程序存储在闪速ROM 13中的前提下,下面描述在终端设备1中将图14A中的程序更新为图114B的程序的方法。在此,参照图16所示的流程图描述当终端设备1收到图15所示的重写指令时的操作。
另外,当图15中的指令1501是RAM 14中的扩展指令时,指令1501后面的数据1502是扩展源的起始地址1503,扩展源的起始地址1503后面的数据是扩展源的终止地址1504,而扩展源的终止地址1504后面的数据是扩展目的地址1505。之后,控制CPU 12利用这些数据将闪速ROM 13的数据扩展到RAM 14中。
由此,可利用地址信息而不是实际数据进行扩展数据的指定。由此可以减少重写指令的数据量,缩短包括数据传输时间在内的程序更新操作时间。
写回ROM 13与本发明第二实施例中描述的操作相同,而重写与本发明第四实施例中描述的操作相同。
在步骤S161中,在通过外部连接接口11将图15所示的指令1501提供为闪速ROM 13中存储程序的重写指令时,控制CPU 12读取指令No.1。
接着,在步骤S162中,控制CPU 12检查读取指令是否是重写终止指令。当该指令不是重写终止指令时,控制CPU 12进入步骤S163的处理过程。
在步骤S163中,控制CPU 12检查读取指令是否是RAM 14中的扩展指令。由于该指令是RAM 14中的扩展指令,控制CPU 12进入步骤S166的处理过程。当读取指令不是RAM 14中的扩展指令时,控制CPU进入步骤S164的处理过程。
图15中的指令No.1是RAM 14中的扩展指令。因此,在步骤S166中,控制CPU 12根据指令No.1的数据确定扩展源的起始地址是闪速ROM 13中的0x00000000,终止地址是0x000001FF,而扩展目的地址是RAM 14中的0x00110000。
接着,在步骤S167中,控制CPU 12依照步骤S166中确定的地址将闪速ROM 13的数据扩展到RAM 14中。
在图15举例示出的指令No.1的情况下,将闪速ROM 13中0x00000000到0x000001FF上的数据、即图14A中的模块A1401扩展到RAM 14的0x00110000到0x001101FF中。
接着,控制CPU 12进入步骤S161的处理过程。
图15中的指令No.2是RAM中进行扩展的指令,其与指令No.1相同。因此,控制CPU 12按照与指令No.1相同的处理过程将数据从闪速ROM 13扩展到RAM 14中。
通过这种方式,图14A中的模块C1403在RAM 14的0x00110230到0x0011060F上扩展。
然后,在图15中的指令No.3的情况下,控制CPU 12在步骤S161读取指令,然后经由步骤S162和S163的处理过程进入步骤S164的处理过程。
在步骤S164中,控制CPU 12检查读取指令是否是数据重写指令。当该读取指令是数据重写指令时,控制CPU 12进入步骤S170的处理过程。其间,当该读取指令不是数据重写指令时,控制CPU 12进入步骤S165的处理过程。
图15中的指令No.3是数据重写指令。因此,控制CPU 12进入步骤S170的处理过程。在步骤S170中,控制CPU 12根据图15中的重写指令No.3确定RAM 14中的地址0x00110200是重写起始地址,并且重写数据项的数目为0x30。
接着,在步骤S171中,控制CPU 12根据图15中No.3的重写数据指令改变地址0x00110200的内容。
然后,在步骤S172中,控制CPU 12将重写地址加1变为0x00110201。接着,在步骤S173中,控制CPU 12将重写数据项的数目减1变为0x2F。
在步骤S174中,控制CPU 12检查重写数据项的数目是否为0,而在该数目不是0时,其进入步骤S171的处理过程。
然后,控制CPU 12重复上述步骤S171到S174的处理过程,直到重写数据项的数目变为0。当重写数据项的数目变为0时,控制CPU 12进入S161的处理过程。
假设指令No.3给出的与0x03相对应的后续数据是图14B中的模块B’1403,当步骤S174中将重写数据项的数目判定为0时,在RAM 14的0x00110200到0x0011022F上对模块B’1404进行扩展。
如上所述,在RAM 14中图19所示的程序由地址0x00110000开始扩展。
要注意的是,因为模块B因更新变为模块B’,并且容量增大,因此模块C的位置向后移位了模块B和模块B’之间的容量差。换言之,模块C在RAM 14内扩展时发生了移位,以便让闪速ROM 13中存储的更新目标模块B和后面的模块C的位置之间的相对值增大。
通过这种方式,即使在模块B由于更新和容量变大而变为模块B’时,也可以避免模块B’与模块C的重叠。
此外,当有一重写部分的程序编码(包括直接数据)的数量(模块B)时,可以无需重写而移位一部分编码(模块C),进而可在无需重写部分(模块B’)的后续编码(模块C)的信息的情况下重写程序。因此,可以减少从终端设备1的外部传输的重写指令。换言之,可以利用较少数据量移位模块C。结果,可以缩短包括数据传输时间在内的程序的更新操作时间。
接着,在图15的指令No.4的情况下,控制CPU 12在步骤S161中读取了指令之后,通过步骤S162、S163和S164进入步骤S165的处理过程。
在步骤S165中,控制CPU 12判断读取指令是否是ROM中进行写回的指令,并且当读取指令是ROM中的写回指令时,其进入步骤S168的处理过程。
当该读取指令不是ROM写回指令时,控制CPU 12进入步骤S161的处理过程。
图15中的指令No.4是ROM写回指令。因此,控制CPU 12进入步骤S168的处理过程。
在步骤S168中,在图15举例示出的指令No.4的情况下,控制CPU 12根据读取的ROM写回指令,确定RAM 14中存储的新控制软件地址0x00110000到0x0011FFFF,以及闪速ROM 13的写回区块,即0x00000000到0x0000FFFF。
接着,在步骤S169中,控制CPU 12删掉步骤S168中确定的闪速ROM 13的区块0x00000000到0x0000FFFF。然后,控制CPU12将RAM 14内存储在0x00110000到0x0011FFFF中的新控制软件记录到闪速ROM 13的已删除区块中。
控制CPU 12进入步骤S161的处理过程。
然后,控制CPU 12顺序地重复前述处理过程,直到在步骤S162中将步骤S161中读取的指令判定为重写终止指令。
如上所述,根据第五实施例,在无需下载图14所示的整个校正程序的情况下,可更新终端中闪速ROM 13内存储的控制软件。结果,由于重写指令的减少实现了软件更新时间的缩短。
另外,依照第五实施例,当模块B的容量因更新而增大时,可在RAM 14进行扩展的过程中移位模块C,以增大闪速ROM 13中存储的更新目标的模块B与后面的模块C的位置之间的相对值。由此,可以减少从设备外部传送的重写指令。结果,就可以缩短包括数据传输时间在内的重写更新操作时间。
另外,虽然第五实施例描述了程序由三个模块组成的情况,但模块数目和模块容量并不限于上面所述的模块数目和容量。
此外,虽然图15中的“RAM扩展”由闪速ROM 13中作为扩展源的起始地址1503和终止地址1504、RAM中作为扩展目的的起始地址1505组合而成,但如图17所示,通过将扩展源的起始地址1703和后面的扩展数据项数目1704、以及RAM中作为扩展目的的起始地址1705组合起来,也能获得相同效果。
另外,在图15中,利用绝对地址指定RAM 14中对闪速ROM 13内的程序进行扩展的区域。但是,由于RAM 14中的区域仅用作操作区域,因此终端设备1中的控制CPU 13可设定RAM 14内的任选区域。
该情况下,在RAM 14中,可利用与任选区域起始地址的移位值进行扩展时的地址指定或指定过程中RAM 14的重写。换言之,在图18所示的重写指令中,“RAM 14的扩展”由闪速ROM 13中作为扩展源的起始地址1803、扩展数据项的数目1804和与任选区域的起始地址的移位值1805组合而成。
例如,指令No.2表示在任选区域的起始地址加0x00000230中,扩展以闪速ROM 13中的地址0x00000220开始的、与0x3E0相对应的后续数据。
另外,“重写”由相对任选区域中起始地址的移位值1806、重写数据项的数目1807和与该数据项数目相对应的实际重写数据1808组合而成。例如,在指令No.3中,与0x30相对应的数据从任选区域的起始地址加上0x0000200的地址开始重写。
写回ROM 13的指令指示基于闪速ROM 13的已删区块进行写回。因此,该指令仅指示写回区块的头部。例如,在指令No.4中,将0x00000000指示为写回区块的头部,在删掉了图2所示存储器映象图的区块0x00000000到0x0000FFFF后,将从RAM任选区域中的头部到该任选区域的头部加0x0000FFFF的区域写回闪速ROM 13。
另外,第五实施例描述了按照步骤S162、S163、S164和S165的顺序对步骤S161中读取的指令内容进行确定处理的情况,但也可以以可选方式改变确定顺序。
另外,在第五实施例中,在步骤S172中将重写地址加1,然后在步骤S173中将重写数据项的数目减1。但是,先将重写数据项的数目减1,然后再将重写地址加1,也能获得相同效果。
(第六实施例)
图20A和20B表示本发明第六实施例中的程序的模块结构,图20A表示校正程序错误之前的结构,而图20B校正了程序错误之后的结构。
换言之,图20A所示的程序由三个模块组成,即模块A2001、模块B2002和模块C2003。模块A位于0x00000000到0x000001FF上,模块B位于0x00000200到0x0000021F上,模块C位于0x00000220到0x000005FF上。
在图20B所示的程序中,作为图20A所示程序的校正结果,模块A2001发生了变化。
具体而言,模块A2001变为模块A’2004位于0x000001FF上。模块B2002变为模块B’2005位于0x00000200到0x0000022F上。模块C内容未变化,但其位置移到0x00000230到0x0000060F。
图21A表示未校正程序错误的模块A2001的部分内容,图21B表示校正了程序错误的部分模块A’2001。
图22表示第六实施例中终端设备1的控制CPU 12的转移(branch)命令的例子。
作码2201准备将在操作码2201后的操作数2202转移(branch)作为地址。
具体而言,操作码0xEA准备将在该操作码后面的操作数32位转移(branch)作为绝对地址。另外,操作码0xE9在该操作码后面设定出8位作为相对值,并转移到用该操作码中存储的地址和该相对值的总和表示的地址。
换言之,如图21A所示,当地址(2101)0x00000010(2103的数据(2102))是0xEA(2104)时,这部分是将地址0x00000011到0x00000014(2105)存储的数据(2106)译为可转移00000318的32位地址的命令。
此外,如图21A所示,当地址0x000001F8(2107)的内容是0xE9(2108)时,其是将地址0x000001F9(2109)上的数据0x38设定为相对值、然后转移作为0x000001F8与该相对值的总和的0x00000230的命令。
图21B表示图20A所示控制程序的程序错误经过校正的图20B所示的控制程序。
具体而言,如图20B所示,模块B’2005的容量比模块B2002的容量大0x10位。结果,模块B2002后面的模块C2003的位置移位了0x10位。因此,0x00000010(2103)内存储的绝对地址转移命令的转移目的变为0x00000328。另外,0x000001F8(2109)中存储的相对地址转移命令的转移目的变为0x00000240。
下面描述第六实施例中的终端设备。本发明第六实施例的终端设备1的功能性方框图的例子和存储器映象图的例子分别与第一实施例并分别按照图1和2所示相同。此外,假设0x00110000到0x001111FFFF用作控制CPU 12校正控制程序的操作区域。
下面描述在闪速ROM 13中记录了图20A程序的情况下,终端设备1将图20A所示的程序更新为图20B所示的程序的方法。在此,将参照图24所示的流程图描述为终端设备1提供图23所示的重写指令时的操作。
另外,在对图23的每个指令进行操作的过程中,重写与第五实施例的相同。
此外,在RAM 14中进行扩展的情况下,数据2302位于指令2301No.1的后面部分内。数据2302中布置了扩展源的起始地址2303,在扩展源中的起始地址2303后面进行扩展的数据项数目2304,以及在扩展的数据项数目2304后面扩展目的的地址2305。
控制CPU 12利用这些信息将数据从闪速ROM 13扩展到RAM 14中。
在写回ROM 13的情况下,指令2301No.6后面的数据2302的头部表示要记录到闪速ROM 13中目标区块的起始地址2306。在删除了以头部地址2306起始的区块后,将已被以可选方式确定为RAM 14操作区的区域内的数据记录在闪速ROM 13内以头部地址2306起始的已删区块中。
相对地址中的变化,指令No.4后面的数据2302的起始部分是其与RAM 14中扩展程序用的任选区域内的头部的移位值2307。其指示对在用该起始地址和移位值2307的总和指示的地址中存储的操作码进行解释,并更新与该解释操作码相对应的操作数。
首先,在步骤S181中,当通过外部连接接口11将图23所示的指令提供为闪速ROM 13中存储程序的重写指令时,控制CPU 12读取指令No.1。
接着,在步骤S182中,控制CPU 12检查读取指令是否是重写终止指令。当该指令不是重写终止指令时,控制CPU 12进入步骤S183的处理过程。
在步骤S183中,控制CPU 12检查读取指令是否是RAM 14中的扩展指令。如果该指令是在RAM 14中进行扩展的指令,控制CPU 12进入步骤S186的处理过程,而如果该读取指令不是RAM 14中的扩展指令时,其进入步骤S184的处理过程。
图23中的指令No.1是RAM 14中的扩展指令。因此,在步骤S186中,控制CPU 12基于指令No.1的数据,确定扩展源的地址是闪速ROM 13中的0x00000000,要扩展的数据项数目是0x200字节,扩展目的地址是0x00110000,作为RAM 14中前一操作区域的起始地址0x00110000加移位0x00000000的总和。
接着,在步骤S187中,控制CPU 12根据步骤S186中确定的地址和数据项数目将数据从ROM 13扩展到RAM 14中。
在指令No.1是图23中所示指令的情况下,在RAM 14的0x00110000到0x00110FF上扩展0x00000000到0x000001FF(即图20A中的模块A2001)中的数据。
然后,在步骤S195中,控制CPU 12在RAM 14的除操作区域0x00110000到0x0011FFFF以外的任选区域中记下闪速ROM 13中区域0x00000000到0x000001FF的移位量是0x00000000,然后进入步骤S181的处理过程。
之后,由于图23中的指令No.2与指令N0.1一样,是在RAM中进行扩展的指令,于是控制CPU 12按照与前述过程相同的方式执行数据从闪速ROM 13到RAM 14的扩展过程。
通过这种方式,图20A中的模块C2003在RAM 14的0x00110230到0x0011060F上扩展。
此外,象上面描述的过程一样,在步骤S195中,控制CPU 12记录闪速ROM13中区域0x00000220到0x000005FF的移位量是0x00000010。
通过前述过程,获得了图25中所示的移位区域起始地址2501和终止地址2502以及该区域的移位量2503的记录。
移位区域的起始地址2501和终止地址2502实际上是该移位区域的起始地址和终止地址。由此就消除了利用实际数据描述移位区域的要求,于是减少了数据量。
然后,在指令是图23中的指令No.3的情况下,控制CPU 12在步骤S181中读到该指令,然后通过步骤S182和S183的处理过程进入步骤S184的处理过程。
在步骤S184中,控制CPU 12检查读取指令是否是数据重写指令。当该读取指令是数据重写指令时,控制CPU 12进入步骤S190的处理过程,而当该读取指令不是数据重写指令时,其进入步骤S196的处理过程。
图23中的指令No.3是数据重写指令。因此,控制CPU 12进入步骤S190的处理。
在步骤S190中,控制CPU 12利用图23中的重写指令No.3确定通过将RAM 14中操作区域的起始地址0x00110000加上移位0x00000200获得的地址0x00110200是重写起始地址,并且重写数据项的数目是0x30。
之后,在步骤S191中,控制CPU 12根据图23中的指令No.3的重写数据改变地址0x002202000的内容。
然后,在步骤S192中,控制CPU 12将该重写地址加上1成为0x00110201。
在步骤193中,控制CPU 12将该重写数据项的数目减掉1,变为0x2F。
在步骤S194中,控制CPU 12检查重写数据项的数目是否为0,当该数目不是0时,其进入步骤S191的处理过程。
然后,控制CPU 12重复上述步骤S191到S194的处理过程,直到重写数据项的数目变为0。
当重写数据项的数目变为0时,控制CPU 12进入步骤S181的处理过程。
在此,假设与指令No.3给出的0x30相对应的后续数据是图20B中的模块B’2005,当在步骤S194中判定重写数据项的数目变为0时,在RAM 14的0x00110200到0x0011022F上扩展模块B’2005。
通过前述处理过程,图19所示的程序从RAM 14中的地址0x00110000开始扩展。
图26表示处于该点的RAM 14的状态。地址(2601)0x00110010(2603)和0x001101F8(2605)分别具有外围数据(2602)、0xEA(2604)和0xE9(2606)。
然后,在指令是图23中的指令No.4的情况下,控制CPU 12在步骤S181中读取指令,然后通过步骤S182、S183和S184的处理过程进入S196的处理过程。
在步骤S196中,控制CPU 12检查读取指令是否是地址改变指令。当该读取指令是地址改变指令时,控制CPU 12进入S197的处理。当该读取指令不是地址改变指令时,控制CPU 12进入S185的处理。
图23中的指令No.4是地址改变指令。因此,控制CPU 12进入S197的处理过程。
在步骤S197中,控制CPU 12判定由该读取地址改变指令表示的移位值0x00000010(2307)是地址0x00110010(其要加到RAM 14中操作区域的起始地址0x00110000上)的地址改变指令。
此外,控制CPU 12利用图22所示的操作码和0x00110010后面的4位操作数,将图26中所示的在地址0x00110010(2603)内存储的操作码0xEA(2604)解释为到地址0x00000318的转移命令。
此外,控制CPU 12利用图25所示的模块移位信息记录,确认包括0x00000318在内的区块0x00000220到0x000005FFF具有移位量0x00000010。因此,控制CPU 12算出校正程序中的转移目的地址是通过将未校正的转移目的地址0x00000318加上移位量0x00000010获得的0x00000328。
然后,在步骤S198中,控制CPU 12更新地址(2701)0x00110010(2703)到0x00000328的操作码(数据)(2702)0xEA(2704)后面的字节操作数。
控制CPU 12进入S181的处理过程。
此外在图23的指令No.5中,控制CPU 12在步骤S181中读取指令,然后通过步骤S182、S183、S184和S196的处理过程进入S197的处理过程。
在步骤S197中,控制CPU 12判断用读取地址改变指令表示的移位值0x000001F8是否是要被加到RAM 14的操作区域的起始地址0x00110000上的地址0x001101F8的地址改变指令。
例如,控制CPU 12利用图22所示的操作码和0x001101F8后面的1位操作数,将存在图27的地址(2701)0x001101F8(2705)中的操作码(2702)0xE9(2706)解释为对于地址0x00000230的转移命令,所述地址0x00000230是通过将0x38加到0x000001F8上获得的。此外,控制CPU 12利用图25所示的移位记录识别出包括0x00000230的区块0x00000220到0x000005FF具有移位量0x00000010。
因此,控制CPU 12能够判定校正程序中的转移目的地址是通过将移位量0x0000010加到未校正的转移地址0x00000230上获得的0x00000240,并算出有着操作码的0x00001F8的相对地址是0x48。
然后,在步骤S198中,控制CPU 12根据步骤S197中确定的转移目的地址,将图28所示地址(2801)0x001101F8(2805)的操作码(数据)(2802)0xE9(2806)后面的1字节操作数更新为0x48。
因此,当操作码所用的操作数因模块B的容量变化而移位时,控制CPU 12能够根据图25所示的模块移位信息记录自动校正操作数。因此,就不必指示从外部获取操作数的校正内容,从而减少了指令的数据量。
接着,控制CPU 12进入过程S181。
之后,在指令是图23中的指令No.6的情况下,控制CPU 12在步骤S181中读取指令,然后经由步骤S182、S183、S184和S196进入步骤S185的处理过程。
在步骤S185中,控制CPU 12检查读取指令是否是写回ROM的指令,当该读取指令是写回ROM 13的指令时,其进入步骤S188的处理过程,而当该读取指令不是写回ROM 13的指令时,其进入步骤S181的处理过程。
图23中的指令No.6是写回ROM 13的指令。因此,控制CPU 12进入步骤S188的处理过程。
在步骤S188中,控制CPU 12确定闪速ROM 13中用写回ROM 13的读取指令指示的区块。例如,在指令是图23举例示出的指令No.6的情况下,控制CPU 12将地址0x00000000到0x0000FFFF确定为这个区块。
接着,在步骤S189中,控制CPU 12删掉步骤S188中确定的闪速ROM 13的0x00000000到0x0000FFFF上的区块。然后,控制CPU 12将存在RAM 14的操作区域0x00110000到0x0011FFFF中的新控制软件记录到闪速ROM 13的已删区块上。
控制CPU 12进入步骤S181的处理过程。
然后,控制CPU 13重复前述处理过程,直到在步骤S182中将步骤S181中读取的指令判定为重写终止指令。
如上所述,依照第六实施例,可在无需下载如图20B所示的整个校正程序的情况下,更新终端的闪速ROM 13内存储的控制软件。
另外,虽然第六实施例描述了程序由三个模块组成的情况,但模块数量和模块容量并不限于上面描述的模块数量和容量。
虽然第六实施例中将示出的图22作为转移命令的操作码的例子,但根据终端设备1所用的控制CPU 12的类型,利用不同于图22所示的操作码也能获得相同效果。
另外,第六实施例描述了利用图25所示的模块移位信息记录来校正绝对值转移和相对值转移操作数的情况。但是,还可适用函数调用命令以及转移命令。
此外,依照第六实施例,当采用了转移命令和函数调用命令(每个都具有相对指定地址)、且它们都超过相对地址指定转移命令中可用的地址范围时,取消了对通过外部接口下载用于指示从相对地址指定转移命令或相对地址指定函数调用命令相对转化成绝对地址指定转移命令或绝对地址指定函数调用命令的数据、以变为更新程序的要求。于是减少了通过外部接口指示的数据量。结果,可以缩短包括数据传输时间在内的程序更新操作时间。
此外,在设有由事件如警报、键压力和本发明的处理模块存在地址组成的查询表配置的情况下,可利用图25所示的模块移位信息记录,在查询表上校正处理模块的存在地址。
在校正查询表的情况下,可由外部或利用终端设备1中预先装入的地址指示查询表位置。在装入查询表地址时,可在无需外部指令的情况下自动校正查询表。
另外,在第六实施例中,可利用如绝对值转移和相对值转移之类的地址(操作数)进行用于改变其中存储着命令的地址的指令。但是,控制CPU 12在接收仅仅表示地址的指令的过程中,可自动判断绝对值转移或相对值转移之类的命令是否存在于该地址中,并且在存在该命令时,利用图25所示的模块移位信息记录校正操作数。
于是可以省掉从外部获取指令。此外,在不知道存储了绝对值转移或相对值转移之类的命令的情况下,可以自动校正命令中采用的操作数。
另外,通过从开头分解程序,可以提取转移(函数调用)命令,并校正该命令中使用的地址。于是减少了从外部获取的指令。
该情况下,当程序和数据部分结合得很复杂时,由于难以将程序部分分开,因此可以提前从外部指定程序部分,然后仅分解该指定部分,再重新计算地址。
通过这种方式,就消除了从外部指定转移(函数调用)命令的位置的需要,因此可以减少从外部获取的指令。
此外,第六实施例描述了按照步骤S182、S183、S184、S196和S185的顺序执行对步骤S181中读取的指令内容进行确定处理的情况,但还可以可选方式改变确定顺序。
另外,在第六实施例中,在步骤S192中将重写地址加1,然后在步骤S193中将重写数据项的数目减1。但是,先将重写数据项的数目减1,然后将重写地址加1,也可以获得相同效果。
再有,第六实施例中,于步骤S186中确定了扩展源的地址、要扩展的数据项数目、扩展目的地址以后,在步骤S 189中将数据从闪速ROM 13扩展到RAM 14中,在步骤S195中记录该移位。但是,先记录移位,然后将数据从闪速ROM 13扩展到RAM 14中也能取得相同效果。
本申请基于2002年10月8日申请的日本专利申请2002-294499和2003年10月6日申请的2003-347561,在此专门通过参考将其整个内容结合进来。
工业应用性
依照本发明,在更新终端的非易失性存储器内存储的软件以便校正的过程中,可在无需将所有校正软件下载到终端中的情况下校正软件,并且有利的是能有效地更新终端中的软件。

Claims (27)

1.一种程序更新方法,其包括:
在更新可重写非易失性存储器内存储的程序过程中,其中所述可重写非易失性存储器由多个区块组成,并且这些区块包括存储着程序的更新目标部分的区块,于RAM内对存储着所述程序的更新目标部分的区块内的程序部分进行扩展;
根据通过外部接口指示的重写指令,仅更新在RAM内经过扩展的程序部分的更新目标部分,以及
将更新了的程序部分一起写回非易失性存储器。
2.根据权利要求1所述的程序更新方法,其中当更新目标部分由于更新而增大了容量时,重写指令是,在RAM的扩展过程中用于移位后续部分、以便增加非易失性存储器内存储的更新目标部分和更新目标部分的后续部分之间的相对位置关系的指令。
3.根据权利要求2所述的程序更新方法,其中重写指令包括确定后续部分和在RAM内扩展该后续部分的起始地址的地址信息。
4.根据权利要求3所述的程序更新方法,其中确定后续部分的地址信息包括后续部分在非易失性存储器中或RAM中的起始地址和数据项数目。
5.根据权利要求3所述的程序更新方法,其中确定后续部分的地址信息包括在非易失性存储器或RAM内后续部分的起始地址和终止地址。
6.根据权利要求2所述的程序更新方法,其中后续部分在RAM中的移位信息记录在RAM中不同于程序扩展区域的另一区域内,当非易失性存储器或RAM的地址由程序指令指示时,根据移位信息校正所指示的地址内存储的绝对地址值。
7.根据权利要求6所述的程序更新方法,其中移位信息包括确定后续部分位置的地址信息和在RAM内扩展后续部分的起始地址。
8.根据权利要求7所述的程序更新方法,其中确定后续部分的地址信息包括后续部分在非易失性存储器或RAM中的起始地址和数据项数目,或者后续部分在非易失性存储器或RAM内的起始地址和终止地址。
9.根据权利要求7所述的程序更新方法,其中在RAM内扩展后续部分的起始地址是与根据在非易失性存储器或RAM内后续部分的起始地址的相对地址。
10.根据权利要求6所述的程序更新方法,其中重写指令在非易失性存储器或RAM内指示地址,依照移位信息校正该指示地址内存储的绝对地址指定转移命令使用的绝对地址值。
11.根据权利要求6所述的程序更新方法,其中重写指令在非易失性存储器或RAM内指示地址,依照移位信息校正该指示地址内存储的绝对地址指定函数调用命令使用的绝对地址值。
12.根据权利要求6所述的程序更新方法,其中重写指令在非易失性存储器或RAM内指示地址,依照移位信息校正该指示地址内存储的相对地址值。
13.根据权利要求6所述的程序更新方法,其中重写指令在非易失性存储器或RAM内指示地址,并依照移位信息校正该指示地址内存储的相对地址指定转移命令使用的相对地址值。
14.根据权利要求6所述的程序更新方法,其中重写指令在非易失性存储器或RAM内指示地址,依照移位信息校正该指示地址内存储的相对地址指定函数调用命令使用的相对地址值。
15.根据权利要求12所述的程序更新方法,其中在依照移位信息校正程序的相对地址值的过程中,在所校正的相对地址值超过了允许相对地址指定的范围时,将所述相对地址值转换成绝对地址值。
16.根据权利要求13所述的程序更新方法,其中在依照移位信息校正程序的相对地址值、并将所校正的相对地址值校正成绝对地址值的过程中,利用未经校正的相对地址值将相对地址指定转移命令转换成绝对地址指定转移命令。
17.根据权利要求14所述的程序更新方法,其中在依照移位信息校正程序的相对地址值、并将所校正的相对地址值转换成绝对地址值的过程中,利用未经校正的相对地址值将相对地址指定函数调用命令转换成绝对地址指定函数调用命令。
18.根据权利要求1所述的程序更新方法,其中重写指令包括程序部分在非易失性存储器或RAM中扩展的起始地址、要重写的数据项数目以及后续的实际重写数据。
19.根据权利要求1所述的程序更新方法,其中重写指令包括程序部分在非易失性存储器中或在RAM中扩展的起始地址、后续的实际重写数据以及表示重写终止的特定数据。
20.根据权利要求3所述的程序更新方法,其中在重写指令的地址指定过程中,先利用绝对值进行地址指定,然后利用根据前面刚刚指定的地址的相对地址进行后续的地址指定。
21.根据权利要求3所述的程序更新方法,其中在重写指令的地址指定过程中,先利用绝对值进行地址指定,之后在由指定地址完成了后续重写处理时,利用根据地址的相对地址进行后续的地址指定。
22.根据权利要求3所述的程序更新方法,其中在重写指令的地址指定过程中,先利用提前确定的地址作为参考进行地址指定,后续指定是利用前面刚刚指定的、作为参考的地址的相对地址指定。
23.根据权利要求3所述的程序更新方法,其中在重写指令的地址指定过程中,先利用绝对值进行地址指定,然后利用提前确定的作为参考的地址进行后续地址指定,后续地址指定是根据在由所指定的地址完成后续重写处理时的地址的相对地址指定。
24.一种终端设备,其包括:
可重写非易失性存储器,其多个区块内存储着程序;
RAM;
用于接收程序的重写指令的外部接口;以及
控制器,其对存储着程序的更新目标部分的至少一个区块内的程序部分进行扩展,依照重写指令仅对RAM内经过扩展的程序部分的更新目标部分进行更新,然后一起将更新后的程序部分写回非易失性存储器。
25.根据权利要求24所述的终端设备,其中外部接口是有线连接接口。
26.根据权利要求24所述的终端设备,其中外部接口是无线连接接口。
27.根据权利要求24所述的终端设备,其中外部接口是存储卡接口,控制器从插入存储卡接口的存储卡中读出重写指令。
CNB2003801003168A 2002-10-08 2003-10-08 程序更新方法和终端设备 Expired - Fee Related CN100339823C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002294499 2002-10-08
JP294499/2002 2002-10-08
JP347561/2003 2003-10-06

Publications (2)

Publication Number Publication Date
CN1692330A true CN1692330A (zh) 2005-11-02
CN100339823C CN100339823C (zh) 2007-09-26

Family

ID=35346982

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003801003168A Expired - Fee Related CN100339823C (zh) 2002-10-08 2003-10-08 程序更新方法和终端设备

Country Status (1)

Country Link
CN (1) CN100339823C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103026339A (zh) * 2010-08-06 2013-04-03 罗伯特·博世有限公司 对微控制器中的软件参数重新配置的方法以及微控制器和控制设备
CN103558993A (zh) * 2006-12-20 2014-02-05 莫塞德技术公司 具有易失性和非易失性存储器的混合固态存储器系统
CN104102521A (zh) * 2014-07-25 2014-10-15 浪潮(北京)电子信息产业有限公司 一种更新非易失性存储器的方法和装置
CN105719390A (zh) * 2014-12-22 2016-06-29 富士通先端科技株式会社 介质处理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05134860A (ja) * 1991-10-31 1993-06-01 Fujitsu Ltd 実行形式フアイル修正方式
JP3310060B2 (ja) * 1993-09-13 2002-07-29 株式会社東芝 記憶装置および同装置の制御プログラム書換え方法
JPH0844551A (ja) * 1994-07-28 1996-02-16 Hitachi Ltd 情報処理装置
JPH08153005A (ja) * 1994-11-29 1996-06-11 Oki Electric Ind Co Ltd パッチ処理システム
JP2002014833A (ja) * 2000-06-30 2002-01-18 Konica Corp フラッシュメモリの書き換え方式、制御装置、画像形成装置及びプログラム更新方式

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103558993A (zh) * 2006-12-20 2014-02-05 莫塞德技术公司 具有易失性和非易失性存储器的混合固态存储器系统
CN103026339A (zh) * 2010-08-06 2013-04-03 罗伯特·博世有限公司 对微控制器中的软件参数重新配置的方法以及微控制器和控制设备
US9760367B2 (en) 2010-08-06 2017-09-12 Robert Bosch Gmbh Method for reconfiguring software parameters in a microcontroller as well as a microcontroller and control unit
CN104102521A (zh) * 2014-07-25 2014-10-15 浪潮(北京)电子信息产业有限公司 一种更新非易失性存储器的方法和装置
CN105719390A (zh) * 2014-12-22 2016-06-29 富士通先端科技株式会社 介质处理装置

Also Published As

Publication number Publication date
CN100339823C (zh) 2007-09-26

Similar Documents

Publication Publication Date Title
CN1130626C (zh) 支援并行程序的装置以及支持程序编制的方法
CN1118148C (zh) 非线性引起的失真补偿系统
CN100346418C (zh) 用于管理信息记录介质的缺陷的方法和设备
CN1677365A (zh) 通过属性控制的测试实例继承
CN1498367A (zh) 信息处理装置、存储器管理装置、存储器管理方法及信息处理方法
CN1881903A (zh) 文件版本管理装置及方法和程序
CN1558348A (zh) 将基于模式的分级数据结构转换成平面数据结构的方法以及系统
CN1805049A (zh) 一种嵌入式系统中非易失性存储器的数据存取方法
CN1758222A (zh) 程序处理装置
CN1529847A (zh) 内嵌软件更新系统
CN1977531A (zh) 程序生成装置、程序测试装置、程序执行装置及信息处理系统
CN1097226C (zh) 编译程序器
CN1193783A (zh) 存储器卡
CN1342314A (zh) 信息记录介质,信息记录方法及信息记录/再现系统
CN101053037A (zh) 文件处理装置、文件处理方法、程序及记录介质
CN1758221A (zh) 程序处理装置
CN1833287A (zh) 信息处理装置和方法、程序及记录媒体
CN1681287A (zh) 数字照相机、像簿管理方法、像簿管理程序产品、以及像簿管理程序传送介质
CN1194295C (zh) 程序变换装置及程序变换方法
CN1624611A (zh) 可编程控制器、通信单元、变量解决方法和数据交接方法
CN1098501C (zh) 用于sql关系数据库的仿真器及方法
CN100339823C (zh) 程序更新方法和终端设备
CN1722138A (zh) 结构化文档管理设备、搜索设备、存储和搜索方法及程序
CN1270530C (zh) 接收装置及其方法
CN1885431A (zh) 半导体存储设备及用于该半导体存储设备的控制方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070926

Termination date: 20091109