JP2010218334A - Program dynamic updating system, management server, incorporated equipment, and program - Google Patents

Program dynamic updating system, management server, incorporated equipment, and program Download PDF

Info

Publication number
JP2010218334A
JP2010218334A JP2009065461A JP2009065461A JP2010218334A JP 2010218334 A JP2010218334 A JP 2010218334A JP 2009065461 A JP2009065461 A JP 2009065461A JP 2009065461 A JP2009065461 A JP 2009065461A JP 2010218334 A JP2010218334 A JP 2010218334A
Authority
JP
Japan
Prior art keywords
update
program
information file
function
update information
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
JP2009065461A
Other languages
Japanese (ja)
Other versions
JP5297848B2 (en
Inventor
Tomoki Yada
智揮 矢田
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.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering 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 Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2009065461A priority Critical patent/JP5297848B2/en
Publication of JP2010218334A publication Critical patent/JP2010218334A/en
Application granted granted Critical
Publication of JP5297848B2 publication Critical patent/JP5297848B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To dynamically update a program even in incorporated equipment whose loaded memory capacity is small. <P>SOLUTION: A management server is configured to collect update information corresponding to a pre-update program operating in incorporated equipment, and to generate an update information file by solving an address on a memory for dynamically applying the update information to the incorporated equipment. On the other hand, the incorporated equipment is configured to dynamically update an incorporated program based on the update information file. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、組込み機器上で動作するプログラムの動作を停止させることなく、プログラムを動的に更新する技術に関する。また、本発明は、プログラム動的更新技術を適用する管理サーバ、組込み機器及び対応するプログラムに関する。   The present invention relates to a technique for dynamically updating a program without stopping the operation of the program running on the embedded device. The present invention also relates to a management server to which the program dynamic update technology is applied, an embedded device, and a corresponding program.

近年、情報家電等の組込み機器の増加及び高機能化に伴い、製品出荷後に組込み機器に搭載されているプログラムの更新が行われるようになってきた。ここで更新とは、プログラムの不具合の修正や、新しい機能を追加すること等を指す。この更新は一般に組込み機器のファームウェアの更新によって実施される。しかし、前記更新方法は、ファームウェアが書き込まれているフラッシュROM(Read Only Memory)の内容を更新後のファームウェアで置き換える操作が必要となる。ファームウェアの更新中は組込み機器を利用できず、また更新後は組込み機器を再起動する必要がある。このような状況を回避するために、ファームウェアを置き換える手法に代えて、プログラムを起動した状態のまま動的にプログラムの更新をする手法が用いられる場合がある。例えばサービス無中断が要求されるオンラインシステム等におけるプログラムの更新技術(特許文献1参照)が開示されている。   In recent years, with the increase in the number of embedded devices such as information home appliances and higher functionality, programs installed in the embedded devices have been updated after product shipment. Here, updating refers to correcting a problem in a program, adding a new function, or the like. This update is generally performed by updating the firmware of the embedded device. However, the update method requires an operation of replacing the contents of a flash ROM (Read Only Memory) in which the firmware is written with the updated firmware. The embedded device cannot be used during the firmware update, and it is necessary to restart the embedded device after the update. In order to avoid such a situation, a method of dynamically updating the program while the program is activated may be used instead of the method of replacing the firmware. For example, a program update technique (see Patent Document 1) in an online system or the like that requires no service interruption is disclosed.

特開平10−247143号公報Japanese Patent Laid-Open No. 10-247143

しかし、特許文献1の方法は、メモリ搭載量の少ない情報家電等の組込み機器に実用的に適用することは困難である。特許文献1の方法では、システムで動作するプログラムを更新するたびに、新部分プログラムをメモリに読み込む必要がある。プログラムをメモリに読み込む際には再配置及びアドレス解決が行われる。この処理によりメモリが消費される。このため、上記方法では累積してプログラムの更新を行うとメモリ消費量が増大し、上記組込み機器で許容できるメモリ使用量を超え、組込み機器で動作する別のプログラムの動作に影響を与えてしまう。   However, it is difficult to practically apply the method of Patent Document 1 to embedded devices such as information home appliances with a small amount of memory. In the method of Patent Document 1, it is necessary to read a new partial program into the memory every time a program operating in the system is updated. When the program is read into the memory, relocation and address resolution are performed. This process consumes memory. Therefore, in the above method, if the program is updated accumulatively, the memory consumption increases, the memory usage allowable in the embedded device is exceeded, and the operation of another program operating in the embedded device is affected. .

そこで、本発明では、組込み機器で動作する組込プログラムに更新プログラムを動的に適用する際のアドレスを解決した更新情報ファイルを管理サーバにおいて作成し、この更新情報ファイルを組込み機器に書き込む手法を提案する。なお、更新情報ファイルには、更新後関数と、更新前関数のメモリ上のアドレスと、更新後関数の更新情報ファイル内の相対アドレスとが書き込まれていることが望ましい。また、更新情報ファイルには、更新後関数と、更新後関数内から参照する組込プログラムの関数が記述されているメモリ上のアドレスと、当該アドレスを書き込む更新情報ファイル内の相対アドレスとが書き込まれていることが望ましい。また、更新情報ファイルには、参照関係がある複数の更新後関数と、参照先になる更新後関数が記述されている更新情報ファイル内の相対アドレスと、当該アドレスを書き込む更新情報ファイル内の相対アドレスとが書き込まれていることが望ましい。   Therefore, in the present invention, a method for creating an update information file that resolves an address when dynamically applying an update program to an embedded program that operates on the embedded device is created in the management server, and writing the updated information file to the embedded device. suggest. In the update information file, it is desirable that the post-update function, the address of the pre-update function in the memory, and the relative address in the update information file of the post-update function are written. In the update information file, an updated function, an address on the memory in which the function of the embedded program referred to from the updated function is described, and a relative address in the update information file to which the address is written are written. It is desirable that The update information file also includes a plurality of updated functions that have a reference relationship, a relative address in the update information file that describes the updated function that is the reference destination, and a relative address in the update information file to which the address is written. It is desirable that the address is written.

一方、組込み機器は、更新情報ファイルのうち相対アドレスで表記された部分を、相対アドレスの基準アドレスが書き込まれたメモリ上のアドレス(実アドレス)分だけシフトする手法を提案する。   On the other hand, the embedded device proposes a method of shifting the portion indicated by the relative address in the update information file by the address (real address) on the memory where the reference address of the relative address is written.

本発明によれば、情報家電のような搭載メモリ容量が少ない組込み機器であっても動的にプログラムの更新が可能になる。   According to the present invention, it is possible to dynamically update a program even in an embedded device having a small installed memory capacity such as an information home appliance.

形態例に係るプログラム動的更新システムの全体構成を説明する図である。It is a figure explaining the whole program dynamic update system composition concerning a form example. 管理サーバの形態例を示す図である。It is a figure which shows the example of a form of a management server. 組込み機器の形態例を示す図である。It is a figure which shows the example of a form of an embedded apparatus. 関数の動的な更新動作を説明する図である。It is a figure explaining the dynamic update operation | movement of a function. 更新前後の関数の関係と更新後の関数間の関係を説明する図である。It is a figure explaining the relationship between the function before and behind an update, and the relationship between the functions after an update. 更新情報ファイルの構成例を示す図である。It is a figure which shows the structural example of an update information file. 管理サーバ側で実行される更新情報ファイルの作成手順例を示すフローチャートである。It is a flowchart which shows the example of a preparation procedure of the update information file performed by the management server side. 組込み機器側で実行される更新プログラムの更新手順例を示すフローチャートである。It is a flowchart which shows the example of an update procedure of the update program performed by the embedded apparatus side.

以下、本発明を適用したプログラム動的更新システムの一形態例を、図面を用いて説明する。   Hereinafter, an example of a program dynamic update system to which the present invention is applied will be described with reference to the drawings.

・ 形態例
(1−1)システム構成
図1に、形態例に係るシステム構成図を示す。形態例に係るプログラム動的更新システムは、1台の管理サーバ101と複数台の組込み機器103(103A・103B)とがネットワーク102を介して相互に接続される場合を想定する。
-Embodiment (1-1) System Configuration FIG. 1 shows a system configuration diagram according to an embodiment. The program dynamic update system according to the embodiment assumes a case where one management server 101 and a plurality of embedded devices 103 (103A and 103B) are connected to each other via the network 102.

組込み機器103には、例えばテレビやホームゲートウェイ等の情報家電が相当する。図1では、ネットワーク102に接続されている組込み機器103が2台の場合を記載しているが、組込み機器103の台数は任意で良い。また、管理サーバ101も組込み機器103と同様に台数は任意で良い。さらに、ネットワーク102は、管理サーバ101と組込み機器103とを相互に接続できる形態であれば任意で良い。従って、ネットワーク102は、有線接続と無線接続のどちらか一方又は両方で構成されていても良い。ネットワーク102には、例えばインターネットや放送波が相当する。   The embedded device 103 corresponds to an information home appliance such as a television or a home gateway. Although FIG. 1 shows a case where there are two embedded devices 103 connected to the network 102, the number of embedded devices 103 may be arbitrary. Further, the number of management servers 101 may be arbitrary as with the embedded device 103. Furthermore, the network 102 may be arbitrary as long as the management server 101 and the embedded device 103 can be connected to each other. Therefore, the network 102 may be configured by one or both of wired connection and wireless connection. The network 102 corresponds to, for example, the Internet or a broadcast wave.

(1−2)管理サーバの構成
図2に、管理サーバ101の構成例を示す。管理サーバ101は、プログラム動的更新システムの管理者が使用するコンピュータシステムである。管理サーバ101は、入力部201、表示部202、データ処理部203、記憶部205、ネットワーク接続部209で構成される。
(1-2) Configuration of Management Server FIG. 2 shows a configuration example of the management server 101. The management server 101 is a computer system used by an administrator of the program dynamic update system. The management server 101 includes an input unit 201, a display unit 202, a data processing unit 203, a storage unit 205, and a network connection unit 209.

入力部201は、管理者が、管理サーバ101に対する指示を与えるのに使用されるデバイスである。この形態例の場合、管理者は、組込み機器103で使用される更新情報ファイル208の作成等の指示を与えるために使用される。入力部201には、例えばキーボードやマウスを使用する。表示部202は、管理サーバ101に対する入力情報や処理結果としての各種データ等を表示する出力装置である。表示部202には、例えばCRTディスプレイや液晶ディスプレイを使用する。   The input unit 201 is a device used by an administrator to give an instruction to the management server 101. In the case of this embodiment, the administrator is used to give an instruction to create the update information file 208 used by the embedded device 103. For the input unit 201, for example, a keyboard or a mouse is used. The display unit 202 is an output device that displays input information to the management server 101 and various data as processing results. For the display unit 202, for example, a CRT display or a liquid crystal display is used.

データ処理部203は、処理装置とメモリとから構成される。処理装置は、読み込んだプログラムの内容を解釈してデータ処理を実行する。処理装置は、例えばCPU(セントラル・プロセシング・ユニット)やMPU(マイクロ・プロセシング・ユニット)等で構成される。メモリは、処理装置で使用される処理データを一時的に記憶する記憶装置である。メモリは、例えばRAM(ランダム・アクセス・メモリ)等で構成される。なお、メモリには、後述する更新情報ファイルの作成を支援するプログラム等が格納される。この形態例においては、このプログラムを更新情報ファイル生成部204という。   The data processing unit 203 includes a processing device and a memory. The processing device interprets the contents of the read program and executes data processing. The processing device is composed of, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), and the like. The memory is a storage device that temporarily stores processing data used in the processing device. The memory is composed of, for example, a RAM (Random Access Memory). The memory stores a program that supports creation of an update information file to be described later. In this embodiment, this program is referred to as an update information file generation unit 204.

更新情報ファイル作成部204は、組込み機器103側で動作する更新前プログラム306を更新するための情報を含む更新情報ファイル208を作成する。なお、図面において、図2の更新情報ファイル208と、図3の更新情報ファイル307と、図6の更新情報ファイル601とは全て同一の内容であり、図面及び説明の都合上異なった符号を記載しているだけである。   The update information file creation unit 204 creates an update information file 208 including information for updating the pre-update program 306 operating on the embedded device 103 side. In the drawing, the update information file 208 in FIG. 2, the update information file 307 in FIG. 3, and the update information file 601 in FIG. 6 all have the same contents, and different reference numerals are used for convenience of the drawing and description. Just doing.

記憶部205は、各種データを記憶又は読み出す装置である。記憶部205は、例えばHDD(ハード・ディスク・ドライブ)や光学記憶装置等で構成される。この形態例の場合、記憶部205には、例えば更新前プログラム206、更新後プログラム207、更新情報ファイル208等が格納される。更新前プログラム206は、組込み機器で現在動作しているプログラムである。明細書では、このプログラムを更新前プログラムという。更新後プログラム207は、組込み機器で新たに動作させるプログラムである。明細書では、このプログラムを更新後プログラムという。更新情報ファイル208は、更新前プログラムを更新後プログラムに動的に変更するために必要なプログラムとそのアドレス情報等で構成されるデータファイルである。   The storage unit 205 is a device that stores or reads various data. The storage unit 205 includes, for example, an HDD (hard disk drive), an optical storage device, or the like. In the case of this embodiment, the storage unit 205 stores, for example, a pre-update program 206, a post-update program 207, an update information file 208, and the like. The pre-update program 206 is a program currently operating on the embedded device. In the specification, this program is referred to as a pre-update program. The updated program 207 is a program that is newly operated by the embedded device. In the specification, this program is referred to as an updated program. The update information file 208 is a data file composed of a program necessary for dynamically changing the pre-update program to the post-update program, its address information, and the like.

ネットワーク接続部209は、管理サーバ101をネットワーク102に接続するための通信装置である。ネットワーク接続部209には、例えばNIC(ネットワーク・インタフェース・カード)を使用する。なお、更新情報ファイル208を放送波に重畳して送信する場合、ネットワーク接続部209には、放送波の送信装置が用いられる。   The network connection unit 209 is a communication device for connecting the management server 101 to the network 102. For the network connection unit 209, for example, a NIC (network interface card) is used. When the update information file 208 is transmitted by being superimposed on a broadcast wave, a broadcast wave transmission device is used for the network connection unit 209.

(1−3)組込み機器の構成
図3に、組込み機器103の構成例を示す。プログラム動的更新システムにおける組込み機器103とは、更新対象のプログラムが動作する機器である。組込み機器103は、例えば入力部301、表示部302、データ処理部303、記憶部305、ネットワーク接続部308で構成される。ただし、図3に示す組込み機器103の構成は一例であり、この構成に限定されない。
(1-3) Configuration of Embedded Device FIG. 3 shows a configuration example of the embedded device 103. The embedded device 103 in the program dynamic update system is a device on which the program to be updated operates. The embedded device 103 includes, for example, an input unit 301, a display unit 302, a data processing unit 303, a storage unit 305, and a network connection unit 308. However, the configuration of the embedded device 103 illustrated in FIG. 3 is an example, and is not limited to this configuration.

入力部301は、利用者が、組込み機器103に対する指示を与えるのに使用されるデバイスである。入力部301には、例えばキーボードやリモートコントローラーを使用する。表示部302は、組込み機器103に対する入力情報や処理結果としての各種データ等を表示する出力装置である。表示部301には、例えば液晶ディスプレイを使用する。   The input unit 301 is a device used by a user to give an instruction to the embedded device 103. For the input unit 301, for example, a keyboard or a remote controller is used. The display unit 302 is an output device that displays input information for the embedded device 103 and various data as processing results. As the display unit 301, for example, a liquid crystal display is used.

データ処理部303は、処理装置とメモリとから構成される。処理装置は、読み込んだプログラムの内容を解釈してデータ処理を実行する。処理装置は、例えばCPU(セントラル・プロセシング・ユニット)やMPU(マイクロ・プロセシング・ユニット)等で構成される。メモリは、処理装置で使用される処理データを一時的に記憶する記憶装置である。メモリは、例えばRAM(ランダム・アクセス・メモリ)等で構成される。なお、メモリには、更新前プログラム306に更新情報ファイル307を動的に適用するプログラム等が格納される。この形態例においては、このプログラムを更新部304という。   The data processing unit 303 includes a processing device and a memory. The processing device interprets the contents of the read program and executes data processing. The processing device is composed of, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), and the like. The memory is a storage device that temporarily stores processing data used in the processing device. The memory is composed of, for example, a RAM (Random Access Memory). The memory stores a program for dynamically applying the update information file 307 to the pre-update program 306. In this embodiment, this program is referred to as an update unit 304.

記憶部305は、各種データを記憶又は読み出す装置である。記憶部305は、例えばフラッシュROMやHDD(ハード・ディスク・ドライブ)等で構成される。この形態例の場合、記憶部305には、例えば更新前プログラム306、更新情報ファイル307等が格納される。   The storage unit 305 is a device that stores or reads various data. The storage unit 305 is configured by, for example, a flash ROM, an HDD (hard disk drive), or the like. In the case of this example, the storage unit 305 stores, for example, a pre-update program 306, an update information file 307, and the like.

ネットワーク接続部308は、組込み機器103をネットワーク102に接続するための通信装置である。ネットワーク接続部308は、例えばNIC(ネットワーク・インタフェース・カード)を使用する。なお、更新情報ファイル307が放送波に重畳されている場合、ネットワーク接続部308には、放送波の受信装置が用いられる。   The network connection unit 308 is a communication device for connecting the embedded device 103 to the network 102. The network connection unit 308 uses, for example, a NIC (network interface card). When the update information file 307 is superimposed on the broadcast wave, a broadcast wave receiver is used for the network connection unit 308.

(1−4)プログラムの動的更新動作
図4に、プログラムの動作を停止させずにプログラム内の関数を更新する方法を示す。更新前関数401とは、プログラム内の関数であって不具合等を含む関数である。また、更新後関数404とは、更新前関数401の不具合等を修正した関数である。まず、更新後関数404をメモリに読み込む。次に、制御移行先403をメモリ上に配置する。制御移行先403には、更新後関数404が配置されているメモリ上の先頭アドレスが記述される。最後に、更新前関数401が配置されているメモリ上の先頭アドレスに制御移行命令402が記述される。制御移行命令402は、制御移行先403に記述された先頭アドレスを参照し、制御を記述先の先頭アドレスに移す役割をする。以上の操作により、更新前関数401が呼び出された場合は、制御移行命令402により更新後関数404に制御が移る。従って、不具合を含む更新前関数401を、不具合を修正した更新後関数404に置き換えることが可能になる。
(1-4) Dynamic Update Operation of Program FIG. 4 shows a method for updating a function in the program without stopping the operation of the program. The pre-update function 401 is a function in the program and includes a defect or the like. The post-update function 404 is a function in which a defect or the like of the pre-update function 401 is corrected. First, the updated function 404 is read into the memory. Next, the control transfer destination 403 is arranged on the memory. In the control transfer destination 403, the start address on the memory where the post-update function 404 is arranged is described. Finally, the control transfer instruction 402 is described at the top address on the memory where the pre-update function 401 is located. The control transfer instruction 402 plays a role of referring to the start address described in the control transfer destination 403 and transferring control to the start address of the description destination. When the pre-update function 401 is called by the above operation, the control is transferred to the post-update function 404 by the control transfer instruction 402. Accordingly, it is possible to replace the pre-update function 401 including the defect with the post-update function 404 that corrects the defect.

(1−5)更新情報ファイルに記述される関数間の更新関係
図5に、更新情報ファイルに記述される関数間の更新関係の一例を示す。更新情報ファイルには、3種類の更新関係が記述される。1つは、更新前プログラムの更新前関数を更新後関数に変更する記述である。1つは、更新後プログラムの関数からOS(オペレーティング・システム)が提供する関数を参照する記述である。1つは、更新後プログラム内の関数から更新後プログラム内の他の関数を参照する記述である。
(1-5) Update Relationship Between Functions Described in Update Information File FIG. 5 shows an example of an update relationship between functions described in the update information file. Three types of update relationships are described in the update information file. One is a description for changing the pre-update function of the pre-update program to the post-update function. One is a description that refers to a function provided by the OS (operating system) from the function of the updated program. One is a description that refers to another function in the updated program from a function in the updated program.

<a>更新前関数から更新後関数への更新
図5は、更新前関数A(501)、更新前関数B(504)、更新前関数C(507)の三つを、それぞれ更新後関数1(510)、更新後関数2(513)、更新後関数3(516)に動的に更新した状態を示している。図4の説明の場合と同様、更新前関数A(501)の先頭に制御移行命令A(502)が書き込まれている。例えば制御移行命令A(502)が参照する制御移行先A(503)には、更新後関数1(510)のメモリ上での先頭アドレスが格納されている。同様に、更新前関数B(504)の先頭に制御移行命令B(505)が書き込まれている。制御移行命令B(505)が参照する制御移行先B(506)には、更新後関数2(513)のメモリ上での先頭アドレスが格納されている。同様に、更新前関数C(507)の先頭に制御移行命令C(508)が書き込まれている。制御移行命令C(508)が参照する制御移行先C(509)には、更新後関数3(516)のメモリ上での先頭アドレスが格納されている。
<a> Update from Pre-Update Function to Post-Update Function FIG. 5 shows the pre-update function A (501), the pre-update function B (504), and the pre-update function C (507). (510), updated function 2 (513), and updated function 3 (516) are shown in a dynamically updated state. As in the case of the description of FIG. 4, the control transfer instruction A (502) is written at the head of the pre-update function A (501). For example, the control transfer destination A (503) referred to by the control transfer instruction A (502) stores the start address of the updated function 1 (510) on the memory. Similarly, the control transfer instruction B (505) is written at the head of the pre-update function B (504). The control transfer destination B (506) referred to by the control transfer instruction B (505) stores the start address on the memory of the updated function 2 (513). Similarly, a control transfer instruction C (508) is written at the head of the pre-update function C (507). The control transfer destination C (509) referred to by the control transfer instruction C (508) stores the start address of the updated function 3 (516) on the memory.

<b>更新後プログラムの関数からOS関数の参照
図5は、更新後関数1(510)からOSが提供する関数(521)を呼び出す状態を示している。この動作は、更新後関数1(510)の該当位置に記述された制御移行命令1(511)に基づいて実行される。制御移行命令1(511)が参照する制御移行先(512)には、OSが提供する関数(521)のメモリ上でのアドレスが格納されている。
<B> Reference of OS Function from Function of Updated Program FIG. 5 shows a state in which a function (521) provided by the OS is called from updated function 1 (510). This operation is executed based on the control transfer instruction 1 (511) described at the corresponding position of the updated function 1 (510). In the control transfer destination (512) referred to by the control transfer instruction 1 (511), the address on the memory of the function (521) provided by the OS is stored.

<c>更新後プログラム内の関数から更新後プログラム内の他の関数の参照
図5は、更新後関数2(513)から更新後関数3(516)を呼び出す状態を示している。この動作は、更新後関数2(513)の該当位置に記述された制御移行命令2(514)に基づいて実行される。制御移行命令2(514)が参照する制御移行先2(515)には、更新後関数3(516)のメモリ上のアドレスが格納されている。
<C> Reference of Other Functions in Updated Program from Functions in Updated Program FIG. 5 shows a state in which updated function 3 (516) is called from updated function 2 (513). This operation is executed based on the control transfer instruction 2 (514) described at the corresponding position of the updated function 2 (513). The control transfer destination 2 (515) referred to by the control transfer instruction 2 (514) stores the address on the memory of the updated function 3 (516).

(1−6)更新情報ファイル
図6に、更新情報ファイル601の構成例を示す。更新情報ファイル601は、組込み機器のプログラムを動的に更新するために使用する。更新情報ファイル601は、更新後関数表602、制御移行表603、相互参照表604で構成される。以下に、更新情報ファイル601を構成する要素のそれぞれを説明する。
(1-6) Update Information File FIG. 6 shows a configuration example of the update information file 601. The update information file 601 is used to dynamically update the embedded device program. The update information file 601 includes an updated function table 602, a control transfer table 603, and a cross reference table 604. Hereinafter, each element constituting the update information file 601 will be described.

以下の説明において、オフセットは、更新情報ファイル601の先頭位置からの変位(相対アドレス)として定義される。この形態例の場合、更新後関数1(図6)は更新情報ファイル601の先頭に配置される。従って、更新後関数1(図6)のオフセットは“0”で与えられる。つまり、オフセットは更新後関数1(図6)の先頭位置からの変位とも言うことができる。   In the following description, the offset is defined as a displacement (relative address) from the head position of the update information file 601. In the case of this example, the post-update function 1 (FIG. 6) is arranged at the head of the update information file 601. Therefore, the offset of the post-update function 1 (FIG. 6) is given by “0”. That is, the offset can also be said to be a displacement from the head position of the post-update function 1 (FIG. 6).

図5の場合、矢印517の長さ(長さの単位は、例えばバイトがある)が更新後関数2(513)の更新後関数1(510)に対するオフセットに対応する。同様に、矢印520の長さが更新後関数3(516)の更新後関数1(510)に対するオフセットに対応する。   In the case of FIG. 5, the length of the arrow 517 (the unit of length is, for example, a byte) corresponds to the offset of the updated function 2 (513) with respect to the updated function 1 (510). Similarly, the length of the arrow 520 corresponds to the offset of the updated function 3 (516) with respect to the updated function 1 (510).

更新後関数表602は、N個の更新後関数(1〜N)で構成される。ここで、更新後関数(1〜N)は、更新前プログラム306と更新後プログラム307の比較で差異のあった関数、又は更新後プログラム307にのみ存在する関数の集まりである。図6は、これらの関数が合計でN個あることを表している。図5の例では、更新後関数1〜3(図5)の3個が相当し、Nは3になる。   The post-update function table 602 is composed of N post-update functions (1 to N). Here, the post-update function (1 to N) is a function having a difference in comparison between the pre-update program 306 and the post-update program 307, or a set of functions existing only in the post-update program 307. FIG. 6 shows that there are N of these functions in total. In the example of FIG. 5, three of the post-update functions 1 to 3 (FIG. 5) correspond, and N is 3.

制御移行表603は、M個のオフセットJ(1〜M)とアドレスJ(1〜M)の対で構成される。制御移行表603には、(a)更新前関数から更新後関数に更新するために必要なアドレス対と、(b)更新後プログラムの関数からOS関数を参照するために必要なアドレス対が記述される。従って、制御移行表603のオフセットには、後述する相互参照表604で使われるオフセットは含まない。   The control transfer table 603 includes M offset J (1 to M) and address J (1 to M) pairs. The control transfer table 603 describes (a) an address pair necessary for updating from the pre-update function to the post-update function, and (b) an address pair necessary for referring to the OS function from the function of the post-update program. Is done. Therefore, the offset of the control transfer table 603 does not include the offset used in the cross-reference table 604 described later.

図5の例の場合、制御移行表603のオフセットJは、例えば制御移行先1(512)に記述する更新情報ファイル内の変位(518)や制御移行先2(515)に記述する更新情報ファイル内の変位(519)を与える。制御移行表603のアドレスJは、例えば更新前関数(A〜C)のメモリ上のアドレスやOSが提供する関数(521)のメモリ上のアドレス(絶対アドレス)を与える。この点で、オフセットとアドレスとは異なる。   In the example of FIG. 5, the offset J of the control transfer table 603 is, for example, the displacement (518) in the update information file described in the control transfer destination 1 (512) or the update information file described in the control transfer destination 2 (515). The displacement (519) is given. The address J of the control transfer table 603 gives, for example, an address on the memory of the pre-update function (A to C) or an address (absolute address) on the memory of the function (521) provided by the OS. In this respect, the offset and the address are different.

相互参照表604は、L個のオフセットFR(1〜L)とオフセットTO(1〜L)の対で構成される。相互参照表604には、更新後プログラムの関数同士での呼び出しに必要なアドレス対が記述される。図5の例の場合、更新後関数2(513)から更新後関数3(516)を呼び出すのに用いられる。オフセットFRは、制御移行命令2(514)で参照する制御移行先2(515)の位置を与える。オフセットTOは、更新後関数3(516)の先頭アドレスを与える変位(520)を与える。このオフセットTOは、制御移行先2(515)に記述される。   The cross-reference table 604 is composed of a pair of L offsets FR (1 to L) and offsets TO (1 to L). In the cross-reference table 604, address pairs necessary for calling between functions of the updated program are described. In the case of the example of FIG. 5, it is used to call the updated function 3 (516) from the updated function 2 (513). The offset FR gives the position of the control transfer destination 2 (515) referred to by the control transfer instruction 2 (514). The offset TO gives a displacement (520) that gives the head address of the post-update function 3 (516). This offset TO is described in the control transfer destination 2 (515).

(1−7)更新情報ファイルの作成手順
次に、管理サーバ101側で実行される更新情報ファイル208の作成手順を示す。なお、更新情報ファイル208は、組込み機器103の更新部304において利用される。
(1-7) Procedure for Creating Update Information File Next, a procedure for creating the update information file 208 executed on the management server 101 side will be described. The update information file 208 is used in the update unit 304 of the embedded device 103.

図7に、更新情報ファイル生成部204(図2)を通じて実行される処理手順例を示す。   FIG. 7 shows an example of a processing procedure executed through the update information file generation unit 204 (FIG. 2).

まず、更新情報ファイル生成部204は、操作者が指定入力した更新前プログラム206とその修正プログラムである更新後プログラム207との比較動作を実行する。この処理により、両プログラム間で修正のあった関数、又は更新後プログラムにのみ存在する関数が抽出される(ステップS701)。この形態例の場合、その合計はN個である。   First, the update information file generation unit 204 performs a comparison operation between the pre-update program 206 designated and input by the operator and the post-update program 207 which is a correction program. By this process, a function that has been corrected between both programs or a function that exists only in the updated program is extracted (step S701). In the case of this embodiment, the total is N.

次に、更新情報ファイル生成部204は、ステップS701で抽出した関数を更新情報ファイル601の更新後関数(1〜N)(602)とし、更新後関数表602を作成する(ステップS702)。図5の場合、更新後関数1(510)、更新後関数2(513)、更新後関数3(516)の3つで構成される更新後関数表602が作成される。   Next, the update information file generation unit 204 sets the function extracted in step S701 as the post-update function (1 to N) (602) of the update information file 601, and creates the post-update function table 602 (step S702). In the case of FIG. 5, an updated function table 602 including three functions: an updated function 1 (510), an updated function 2 (513), and an updated function 3 (516) is created.

次に、更新情報ファイル生成部204は、ステップS701にて抽出したN個の更新後関数(1〜N)について、カウンタをiとする変更箇所ループ1を開始する(ステップS703)。   Next, the update information file generation unit 204 starts the changed portion loop 1 with a counter i for the N updated functions (1 to N) extracted in step S701 (step S703).

次に、i番目の更新後関数iが図4の用語で更新前関数401を修正した更新後関数404であるならば、更新情報ファイル生成部204は、更新後関数iの更新情報ファイル601の先頭からの変位であるオフセットJkを算出する。ここでkはカウンタであり、初期値“1”から1つずつカウントアップする。更新前関数401が組込み機器103のメモリ上のどの位置に配置されるかは、例えば更新対象プログラムがLinux(登録商標)のカーネルの場合、System.mapファイル等を用いて調べることができる。System.mapファイルには、Linux(登録商標)カーネル内の関数の名前と、関数が配置されているメモリ上のアドレスを対にした情報が書かれている。これにより取得した更新前関数401のアドレスをアドレスJkとする。   Next, if the i-th post-update function i is the post-update function 404 obtained by correcting the pre-update function 401 using the terms in FIG. 4, the update information file generation unit 204 stores the update information file 601 of the post-update function i. An offset Jk that is a displacement from the head is calculated. Here, k is a counter and counts up one by one from the initial value “1”. For example, when the update target program is a Linux (registered trademark) kernel, the pre-update function 401 is arranged in the memory of the embedded device 103. It can be examined using a map file or the like. System. In the map file, information is written in which a function name in the Linux (registered trademark) kernel is paired with an address on a memory where the function is arranged. The address of the pre-update function 401 acquired in this way is set as an address Jk.

更新情報ファイル生成部204は、このように求めたオフセットJkとアドレスJkを対にして制御移行表603に加える(ステップS704)。図5の場合、オフセット1の変位は0(ゼロ)、アドレス1は更新前関数A(501)のメモリ上のアドレスであり、オフセット2は変位(517)、アドレス2は更新前関数B(504)のメモリ上のアドレスであり、オフセット3は変位(520)、アドレス3は更新前関数C(507)のメモリ上のアドレスである。   The update information file generation unit 204 adds the offset Jk and the address Jk obtained in this way as a pair to the control transfer table 603 (step S704). In the case of FIG. 5, the displacement of the offset 1 is 0 (zero), the address 1 is an address on the memory of the pre-update function A (501), the offset 2 is the displacement (517), and the address 2 is the pre-update function B (504). ), The offset 3 is the displacement (520), and the address 3 is the address of the pre-update function C (507) on the memory.

次に、更新情報ファイル生成部204は、i番目の更新後関数iが外部関数を呼ぶか判定する(ステップS705)。ここで、外部関数とは、更新前プログラム内の関数であって、ステップS701で差異があると判定されなかった関数である。図5の例では、更新後関数1(510)から呼ばれるOSが提供する関数(521)が外部関数に相当する。   Next, the update information file generation unit 204 determines whether the i-th updated function i calls an external function (step S705). Here, the external function is a function in the pre-update program that has not been determined to have a difference in step S701. In the example of FIG. 5, the function (521) provided by the OS called from the updated function 1 (510) corresponds to the external function.

ステップS705がYesの場合、更新情報ファイル生成部204は、アドレス解決を行う(ステップS706)。アドレス解決は、i番目の更新後関数iが外部関数を呼ぶ際、その外部関数が組込み機器103のメモリ上のどのアドレスに存在するか決定することである。例えば、更新対象プログラムがLinux(登録商標)のカーネルの場合、System.mapファイルにより前記アドレスを求めることができる。このアドレスをJkとする。外部関数は、通常の関数呼び出しと同様に制御移行命令が制御移行先を参照し呼び出される。更新情報ファイル生成部204は、更新情報ファイル601の先頭からの更新後関数i内の制御移行先のオフセットを求め、これをオフセットJkとし、オフセットJkとアドレスJkを対にして制御移行表603に加える。更新情報ファイル生成部204は、上記の処理動作を、更新後関数i内の外部関数の全てに対して行う。図5の場合、制御移行表603にオフセット518とOS内の関数(521)のメモリ上のアドレスの対が追加される。   If step S705 is Yes, the update information file generation unit 204 performs address resolution (step S706). The address resolution is to determine at which address on the memory of the embedded device 103 when the i-th updated function i calls the external function. For example, when the update target program is a Linux (registered trademark) kernel, System. The address can be obtained from a map file. This address is Jk. The external function is called by referring to the control transfer destination by the control transfer instruction in the same way as a normal function call. The update information file generation unit 204 obtains the offset of the control transfer destination in the updated function i from the head of the update information file 601, sets this as the offset Jk, and sets the offset Jk and the address Jk in the control transfer table 603. Add. The update information file generation unit 204 performs the above processing operation on all the external functions in the post-update function i. In the case of FIG. 5, a pair of an address on the memory of the offset (518) and the function (521) in the OS is added to the control transfer table 603.

ステップS705がNoの場合、更新情報ファイル生成部204は何もしない。この後、更新情報ファイル生成部204は、ステップS704〜S706の処理を、そのカウンタiがNを越えるまで繰り返す(ステップS707)。   When step S705 is No, the update information file generation unit 204 does nothing. Thereafter, the update information file generation unit 204 repeats the processing of steps S704 to S706 until the counter i exceeds N (step S707).

次に、更新情報ファイル生成部204は、ステップS701で抽出したN個の更新後関数(1〜N)について、カウンタをjとする変更箇所ループ2を開始する(ステップS708)。   Next, the update information file generation unit 204 starts the changed portion loop 2 with the counter set to j for the N updated functions (1 to N) extracted in step S701 (step S708).

次に、更新情報ファイル生成部204は、j番目の更新後関数jが内部関数を呼ぶか判定する(ステップS709)。ここで、内部関数とは、更新前プログラム内の関数であって、ステップS701で差異があると判定された関数である。図5の場合、内部関数の呼び出しは、更新後関数2(513)内の制御移行命令2(514)による更新後関数3(516)の呼び出しに相当する。   Next, the update information file generation unit 204 determines whether or not the j-th updated function j calls an internal function (step S709). Here, the internal function is a function in the pre-update program that is determined to have a difference in step S701. In the case of FIG. 5, the call of the internal function corresponds to the call of the updated function 3 (516) by the control transfer instruction 2 (514) in the updated function 2 (513).

ステップS709がYesの場合、更新情報ファイル生成部204は、相互参照表を作成する(ステップS710)。j番目の更新後関数jが内部関数を呼ぶ場合、更新情報ファイル生成部204は、読み出し対象である更新後関数(1〜N)の位置(すなわち、更新情報ファイル501の先頭からの変位)をオフセットTOmとする。ここで、mはカウンタであり、初期値“1”から1つずつカウントアップされる。同様に、更新情報ファイル生成部204は、内部関数を呼ぶ制御移行命令が参照する制御移行先に記述する位置(すなわち、更新情報ファイル501の先頭からの変位)をオフセットFRmとする。更新情報ファイル生成部204は、このオフセットFRmとオフセットTOmを対にして相互参照表504に加える。更新情報ファイル生成部204は、上記の処理動作を、更新後関数j内の内部関数の全てに対して実行する。図5の場合、オフセットFRとして変位(519)、オフセットTOとして変位(520)を相互参照表504に加える。   When step S709 is Yes, the update information file generation unit 204 creates a cross reference table (step S710). When the j-th updated function j calls an internal function, the update information file generation unit 204 determines the position of the updated function (1 to N) to be read (that is, the displacement from the top of the update information file 501). The offset is TOm. Here, m is a counter and is counted up one by one from the initial value “1”. Similarly, the update information file generation unit 204 sets the position described in the control transfer destination referred to by the control transfer instruction that calls the internal function (that is, the displacement from the top of the update information file 501) as the offset FRm. The update information file generation unit 204 adds the offset FRm and the offset TOm to the cross reference table 504 as a pair. The update information file generation unit 204 executes the above processing operation for all internal functions in the updated function j. In the case of FIG. 5, the displacement (519) is added to the cross-reference table 504 as the offset FR and the displacement (520) is added as the offset TO.

ステップS709がNoの場合、更新情報ファイル生成部204は何もしない。この後、更新情報ファイル生成部204は、ステップS709〜S710の処理を、そのカウンタjがNを越えるまで繰り返す(ステップS711)。   If step S709 is No, the update information file generation unit 204 does nothing. Thereafter, the update information file generation unit 204 repeats the processes of steps S709 to S710 until the counter j exceeds N (step S711).

以上の処理動作の実行により更新情報ファイル601が作成される。このように、アドレス解決は、基本的に管理サーバ101で実行される。   The update information file 601 is created by executing the above processing operations. As described above, the address resolution is basically executed by the management server 101.

(1−8)組込み機器での更新動作
次に、組込み機器103の更新部304が更新情報ファイル307を用いて実行する更新前プログラム306の更新動作を説明する。
(1-8) Update Operation in Embedded Device Next, an update operation of the pre-update program 306 executed by the update unit 304 of the embedded device 103 using the update information file 307 will be described.

図8に、更新情報ファイル307を通じて実行される処理手順例を示す。
まず、更新部304は、更新情報ファイル307を組込み機器103の記憶部305に読み込む(ステップS801)。以下、更新情報ファイル307が配置されたメモリ上のアドレスをADDRと表記する。
FIG. 8 shows a processing procedure example executed through the update information file 307.
First, the update unit 304 reads the update information file 307 into the storage unit 305 of the embedded device 103 (step S801). Hereinafter, the address on the memory where the update information file 307 is arranged is denoted as ADDR.

次に、更新部304は、相互参照表604のオフセットFRaとオフセットTOaの値を取り出し、オフセットFRaとオフセットTOaのそれぞれにADDRを加える(ステップS802)。なお、aは1〜Lを表す。この加算処理により、更新部304は、オフセットとして与えられた更新情報ファイル307内の相対アドレスは、メモリ上の実アドレスに変換される。この後、更新部304は、オフセットFRaにADDRを加えたメモリ上のアドレスに、オフセットTOaにADDRを加えたアドレスを記述内容とする制御移行先を書き込む。   Next, the update unit 304 extracts the values of the offset FRa and the offset TOa from the cross reference table 604, and adds ADDR to each of the offset FRa and the offset TOa (step S802). A represents 1 to L. By this addition processing, the update unit 304 converts the relative address in the update information file 307 given as an offset into a real address on the memory. Thereafter, the update unit 304 writes a control transfer destination having the description content of the address obtained by adding ADDR to the offset TOa to the address on the memory obtained by adding ADDR to the offset FRa.

最後に、更新部304は、制御移行表603のオフセットJbの値を取り出し、この値にADDRを加える(ステップS803)。この加算処理により、更新部304は、オフセットとして与えられた更新情報ファイル307内の相対アドレスは、メモリ上の実アドレスに変換される。この後、更新部304は、オフセットJbと対をなすメモリ上のアドレス(図5の場合、503、506、509)にアドレスJbを記述内容とする制御移行先を書き込み、対応する関数の先頭アドレスに制御移行命令を書き込む。なお、bは1〜Mを表す。   Finally, the update unit 304 extracts the value of the offset Jb from the control transfer table 603 and adds ADDR to this value (step S803). By this addition processing, the update unit 304 converts the relative address in the update information file 307 given as an offset into a real address on the memory. Thereafter, the updating unit 304 writes the control transfer destination having the address Jb as the description content to the address on the memory paired with the offset Jb (in the case of FIG. 5, 503, 506, and 509), and the start address of the corresponding function Write a control transfer command to. Note that b represents 1 to M.

ここで、制御移行命令を書き込む際、更新部304は、組込み機器103のハードウェアの仕様に基づき、更新前プログラム306が想定外の動作をしないようにするための処理を適切に行うものとする。   Here, when writing the control transfer instruction, the update unit 304 appropriately performs processing for preventing the pre-update program 306 from performing an unexpected operation based on the hardware specifications of the embedded device 103. .

以上の更新手順により、組込み機器103で動作する更新前プログラム306の動作を停止することなく、前記更新前プログラム306を更新後プログラム207と同等の処理をする状態に移行させることが可能となる。   With the above update procedure, it is possible to shift the pre-update program 306 to a state in which processing equivalent to that of the post-update program 207 is performed without stopping the operation of the pre-update program 306 operating on the embedded device 103.

(1−9)効果
以上説明したように、組込み機器103の更新部304は、更新情報ファイル307に基づいて、組込み機器103で動作するプログラムを動的に更新することができる。従来方式とは異なり、この形態例の場合には、プログラムを更新するたびに更新用プログラムをメモリに読み込み実行する必要がない。すなわち、形態例に係る組込み機器103は、再配置及びアドレス解決に起因するメモリ消費量が大幅に削減される。
(1-9) Effect As described above, the update unit 304 of the embedded device 103 can dynamically update a program that operates on the embedded device 103 based on the update information file 307. Unlike the conventional method, in the case of this embodiment, it is not necessary to read the update program into the memory and execute it every time the program is updated. That is, in the embedded device 103 according to the embodiment, the memory consumption due to the rearrangement and the address resolution is greatly reduced.

実際、更新部304は、更新情報ファイル307が読み込まれたメモリ上での先頭アドレス(ADDR)の情報のみに基づいてオフセットから絶対アドレスに変換することができる。よって、メモリ消費は更新情報ファイル307の大きさ程度に抑えることが可能となる。   Actually, the update unit 304 can convert from an offset to an absolute address based only on the information of the start address (ADDR) on the memory from which the update information file 307 is read. Therefore, the memory consumption can be suppressed to the size of the update information file 307.

以上より、複数の更新情報ファイル307を順次累積的に適用してプログラムの更新を行ったとしても、メモリ消費量を抑えることができる。これにより、メモリ搭載量が少ない情報家電等の組込み機器においてもプログラムの動的な更新を実用的に実行することができる。   As described above, even if a plurality of update information files 307 are sequentially and cumulatively applied to update the program, the memory consumption can be suppressed. Thereby, the dynamic update of the program can be practically executed even in an embedded device such as an information home appliance with a small amount of memory.

一例として、形態例に係るプログラムの動的更新方法を、組込み機器103で動作する更新前プログラム306の更新動作に適用する場合について説明する。まず、管理者が、管理サーバ101で不都合を修正した更新後プログラム207を作成する。次に、更新情報ファイル生成部204を用いて、更新前プログラム206と更新後プログラム207とから更新情報ファイル208を作成する。管理サーバ101は前記更新情報ファイル208を組込み機器103にネットワーク経由で配布する。最後に、組込み機器103の更新部304は、配布された更新情報ファイル307を用いて、組込み機器103の更新前プログラム306を更新し、不都合を解消する。   As an example, a case where the program dynamic update method according to the embodiment is applied to the update operation of the pre-update program 306 that operates on the embedded device 103 will be described. First, the administrator creates an updated program 207 in which the management server 101 corrects the inconvenience. Next, the update information file generation unit 204 is used to create an update information file 208 from the pre-update program 206 and the post-update program 207. The management server 101 distributes the update information file 208 to the embedded device 103 via the network. Finally, the update unit 304 of the embedded device 103 uses the distributed update information file 307 to update the pre-update program 306 of the embedded device 103 to eliminate the inconvenience.

(2)他の形態例
前述の形態例においては、情報更新ファイルの送信手順について説明しなかったが、以下のような手順によって実行することができる。例えば管理サーバ101が更新情報ファイルを強制的に組込み機器103に送信し、そのタイミングで組込み機器103内のプログラムを更新させる手法を採用しても良い。これに対し、組込み機器103が管理サーバ101に対して新規の更新情報ファイルが存在するか否かの確認処理を実行し、存在が確認された場合には、組込み機器103からの要求により管理サーバ101から更新情報ファイルをダウンロードする手法を採用しても良い。
(2) Other Embodiments In the above embodiment, the procedure for transmitting the information update file has not been described. However, it can be executed by the following procedure. For example, a method may be employed in which the management server 101 forcibly transmits the update information file to the embedded device 103 and updates the program in the embedded device 103 at that timing. On the other hand, the embedded device 103 executes processing for confirming whether or not a new update information file exists with respect to the management server 101. If the existence is confirmed, the management server receives a request from the embedded device 103. A method of downloading an update information file from 101 may be adopted.

101…管理サーバ
102…ネットワーク
103A…組込み機器
103B…組込み機器
201…入力部
202…表示部
203…データ処理部
204…更新情報ファイル生成部
205…記憶部
206…更新前プログラム
207…更新後プログラム
208…更新情報ファイル
209…ネットワーク接続部
301…入力部
302…表示部
303…データ処理部
304…更新部
305…記憶部
306…更新前プログラム
307…更新情報ファイル
308…ネットワーク接続部
401…更新前関数
402…制御移行命令
403…制御移行先
404…更新後関数
501…更新前関数A
502…制御移行命令A
503…制御移行先A
504…更新前関数B
505…制御移行命令B
506…制御移行先B
507…更新前関数C
508…制御移行命令C
509…制御移行先C
510…更新後関数1
511…制御移行命令1
512…制御移行先1
513…更新後関数2
514…制御移行命令2
515…制御移行先2
516…更新後関数3
517…更新後関数2へのオフセット
518…制御移行先1へのオフセット
519…制御移行先2へのオフセット
520…更新後関数3へのオフセット
521…OS内の関数
601…更新情報ファイル
602…更新後関数
603…制御移行表
604…相互参照表
101 ... management server 102 ... network 103A ... embedded device 103B ... embedded device 201 ... input unit 202 ... display unit 203 ... data processing unit 204 ... update information file generation unit 205 ... storage unit 206 ... pre-update program 207 ... post-update program 208 ... update information file 209 ... network connection unit 301 ... input unit 302 ... display unit 303 ... data processing unit 304 ... update unit 305 ... storage unit 306 ... pre-update program 307 ... update information file 308 ... network connection unit 401 ... pre-update function 402 ... Control transfer instruction 403 ... Control transfer destination 404 ... Function after update 501 ... Function A before update
502 ... Control transfer instruction A
503 ... Control transfer destination A
504 ... Function B before update
505 ... Control transfer instruction B
506 ... Control transfer destination B
507 ... Function C before update
508 ... Control transfer instruction C
509 ... Control transfer destination C
510 ... Updated function 1
511 ... Control transfer instruction 1
512 ... Control transfer destination 1
513 ... Function 2 after update
514 ... Control transfer instruction 2
515 ... Control transfer destination 2
516 ... Function 3 after update
517 ... Offset to function 2 after update 518 ... Offset to control transfer destination 1 519 ... Offset to control transfer destination 2 520 ... Offset 521 to function 3 after update ... Function 601 in OS ... Update information file 602 ... Update Post-function 603 ... Control transition table 604 ... Cross reference table

Claims (9)

組込み機器で稼働する更新前プログラムに対する更新情報を収集し、更新情報を組込み機器に動的に適用するためのメモリ上でのアドレスを解決した更新情報ファイルを生成する管理サーバと、
前記更新情報ファイルに基づいて組込プログラムを動的に更新する組込み機器と
を有するプログラム動的更新システム。
A management server that collects update information for pre-update programs running on embedded devices and generates an update information file that resolves addresses in memory for dynamically applying the update information to embedded devices;
A program dynamic update system comprising: an embedded device that dynamically updates an embedded program based on the update information file.
前記更新情報ファイルは、更新後関数と、更新前関数のメモリ上のアドレスと、更新後関数の更新情報ファイル内の相対アドレスとを有する
ことを特徴とする請求項1に記載のプログラム動的更新システム。
2. The program dynamic update according to claim 1, wherein the update information file includes a post-update function, an address in the memory of the pre-update function, and a relative address in the update information file of the post-update function. system.
前記更新情報ファイルは、更新後関数と、更新後関数内から参照する組込プログラムの関数が記述されているメモリ上のアドレスと、当該アドレスを書き込む更新情報ファイル内の相対アドレスとを有する
ことを特徴とする請求項1又は2に記載のプログラム動的更新システム。
The update information file has an updated function, an address on the memory in which the function of the embedded program referred to from the updated function is described, and a relative address in the update information file to which the address is written. The program dynamic update system according to claim 1 or 2, characterized in that
前記更新情報ファイルは、参照関係がある複数の更新後関数と、参照先になる更新後関数が記述されている更新情報ファイル内の相対アドレスと、当該アドレスを書き込む更新情報ファイル内の相対アドレスとを有する
ことを特徴とする請求項1〜3のいずれか1項に記載のプログラム動的更新システム。
The update information file includes a plurality of post-update functions having a reference relationship, a relative address in the update information file in which the post-update function to be referred to is described, and a relative address in the update information file to which the address is written. The program dynamic update system according to any one of claims 1 to 3, wherein the program dynamic update system is provided.
組込み機器は、前記相対アドレスで表記された部分を、前記相対アドレスの基準アドレスが書き込まれたメモリ上のアドレス分だけシフトしたアドレスに変更する
ことを特徴とする請求項1〜4のいずれか1項に記載のプログラム動的更新システム。
The embedded device changes the portion indicated by the relative address to an address shifted by an address on the memory in which the reference address of the relative address is written. The program dynamic update system according to item.
組込み機器で稼働中の更新前プログラムと、新たに適用する更新後プラグラムとを記憶する記憶装置と、
前記更新前プログラムと前記更新後プログラムとを比較し、更新前プログラムに対する更新情報を収集し、更新情報を組込み機器に動的に適用するためのメモリ上でのアドレスを解決した更新情報ファイルを生成する更新情報ファイル生成部と
を有する管理サーバ。
A storage device for storing a pre-update program running on an embedded device and a post-update program to be newly applied;
Compares the pre-update program with the post-update program, collects update information for the pre-update program, and generates an update information file that resolves addresses in memory for dynamically applying the update information to embedded devices And an update information file generation unit.
更新前プログラムと、更新後プログラムの修正箇所を更新前プログラムに動的に適用するための更新情報ファイルとを記憶する記憶装置と、
前記更新情報ファイルに基づいて組込プログラムを動的に更新する更新部と
を有する組込み機器。
A storage device that stores a pre-update program, and an update information file for dynamically applying a corrected portion of the post-update program to the pre-update program;
An embedded device comprising: an update unit that dynamically updates an embedded program based on the update information file.
前記更新前プログラムと前記更新後プログラムとを比較し、更新前プログラムに対する更新情報を収集する処理と、
更新情報を組込み機器に動的に適用するためのメモリ上でのアドレスを解決した更新情報ファイルを生成する処理と
をコンピュータに実行させるプログラム。
A process of comparing the pre-update program and the post-update program and collecting update information for the pre-update program;
A program that causes a computer to execute a process of generating an update information file that resolves addresses in memory for dynamically applying update information to embedded devices.
更新後プログラムの修正箇所を更新前プログラムに動的に適用するための更新情報ファイルを記憶装置から読み出す処理と、
前記更新情報ファイルに基づいて組込プログラムを動的に更新する処理と
をコンピュータに実行させるプログラム。
A process of reading an update information file from the storage device for dynamically applying the corrected part of the post-update program to the pre-update program;
A program that causes a computer to execute a process of dynamically updating an embedded program based on the update information file.
JP2009065461A 2009-03-18 2009-03-18 Program dynamic update system, management server, embedded device and program Expired - Fee Related JP5297848B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009065461A JP5297848B2 (en) 2009-03-18 2009-03-18 Program dynamic update system, management server, embedded device and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009065461A JP5297848B2 (en) 2009-03-18 2009-03-18 Program dynamic update system, management server, embedded device and program

Publications (2)

Publication Number Publication Date
JP2010218334A true JP2010218334A (en) 2010-09-30
JP5297848B2 JP5297848B2 (en) 2013-09-25

Family

ID=42977097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009065461A Expired - Fee Related JP5297848B2 (en) 2009-03-18 2009-03-18 Program dynamic update system, management server, embedded device and program

Country Status (1)

Country Link
JP (1) JP5297848B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10642596B2 (en) 2016-03-01 2020-05-05 Renesas Electronics Corporation Embedded device and program updating method
US10642607B2 (en) 2016-09-23 2020-05-05 Renesas Electronics Corporation Determination apparatus and determination method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273147A (en) * 2000-03-27 2001-10-05 Toshiba Corp Method, system and server for distributing information, terminal device and recording medium
JP2004126863A (en) * 2002-10-01 2004-04-22 Nippon Telegr & Teleph Corp <Ntt> Object managing device and method, and its program
JP2005251045A (en) * 2004-03-08 2005-09-15 Mitsubishi Electric Corp Information processor, housing position management method, and program
JP2006301765A (en) * 2005-04-18 2006-11-02 Toshiba Corp Maintenance device of control unit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273147A (en) * 2000-03-27 2001-10-05 Toshiba Corp Method, system and server for distributing information, terminal device and recording medium
JP2004126863A (en) * 2002-10-01 2004-04-22 Nippon Telegr & Teleph Corp <Ntt> Object managing device and method, and its program
JP2005251045A (en) * 2004-03-08 2005-09-15 Mitsubishi Electric Corp Information processor, housing position management method, and program
JP2006301765A (en) * 2005-04-18 2006-11-02 Toshiba Corp Maintenance device of control unit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10642596B2 (en) 2016-03-01 2020-05-05 Renesas Electronics Corporation Embedded device and program updating method
US10642607B2 (en) 2016-09-23 2020-05-05 Renesas Electronics Corporation Determination apparatus and determination method

Also Published As

Publication number Publication date
JP5297848B2 (en) 2013-09-25

Similar Documents

Publication Publication Date Title
EP2815311B1 (en) Using an application cache to update resources of installed applications
US8407688B2 (en) Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets
JP4810548B2 (en) Server apparatus, updated image detection method and program
KR101422563B1 (en) Method and system for efficient download of data package
JP4275683B2 (en) Object state transfer method, object state transfer device, object state transfer program, and recording medium for the program
TW201712564A (en) Method and apparatus for facilitating a software update process over a network
CN111078147A (en) Processing method, device and equipment for cache data and storage medium
CN102420873B (en) Compound network brand new cloud application platform
CN105052111A (en) Service migration across cluster boundaries
KR20120071205A (en) Operating method for virtual machine and node and apparatus thereof
JP2009199261A (en) Information processing system, information processing method, and program
JP5297848B2 (en) Program dynamic update system, management server, embedded device and program
JP2012128836A (en) Information processing apparatus, server, control method, program, and recording medium
JP2012203442A (en) Enclosure manager, firmware management system, firmware management method and program
US9600271B2 (en) System, method, and computer-readable medium
CN107656753A (en) A kind of patch-realizing method and device
CN110377400B (en) Virtual machine recovery method, device, system and medium
JP5982436B2 (en) Screen transfer server device and screen transfer method
JP2011048605A (en) Program execution device and execution method for application program
JP5608551B2 (en) Virtual machine system and control method thereof
WO2015181851A1 (en) Expansion prediction device, expansion prediction method, program, and recording medium
JP2015211342A (en) Device management server and movement method thereof
JP5499781B2 (en) Memory database system, speed-up method, and program
JP2012221101A (en) Inter-processing part mismatching detection method under consideration of reboot due to failure and shared device and cluster system
Vankeirsbilck et al. Network latency hiding in thin client systems through server-centric speculative display updating

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130522

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130611

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130617

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees