(57)【要約】【課題】常時運用動作を必要とする組込システムにおいて、プログラム書き換え時もリブートを発生させずに新たに更新されたプログラムに移行し、運用維持する。【解決手段】ランダムアクセスメモリ１４のプログラム格納領域１５で実行中のプログラムは、プログラム書き換え時に新規プログラムの全データを不揮発性メモリ１２に書込む。プログラムは、その時点でのユニット全体の動作状態を動作状態保存領域１７に記録する。次いで、プログラム実行領域をプログラム格納領域１５から不揮発性メモリ１２のプログラム格納領域１３上に分岐させる。分岐直後の不揮発性メモリ１２のプログラム格納領域１３で実行されるプログラムは、動作状態保存領域１７に保存されている各種動作状態データを参照しパラメータを反映することによって運用動作を継続させる。【選択図】  図１
2007034692.tif 000002
【特許請求の範囲】
【請求項１】
第１の格納領域に格納されたプログラムを前記第1の格納領域とは別の第２の格納領域にコピーし、前記第２の格納領域に記憶されたプログラムの実行中に前記プログラムを更新するプログラムを取得して前記第1の格納領域に格納されたプログラムを書き換え、前記第２の格納領域に記憶されたプログラムの実行履歴を反映して前記第1の格納領域に記憶された書き換え後のプログラムを実行するプログラム書き換え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、常時運用動作を必要とする組込システムにおいて、システムのバグフィックスやバージョンアップを行う際に用いられるプログラム書き換え方法に関する。
【背景技術】
【０００２】
従来、ソフトウェアを自動的に更新できるプログラム書き換え装置が利用されている。例えば、機器組込ユニットなどのプログラムでは、バグを解消するためのバグフィックスや、プログラムの改良、データの更新などに伴うバージョンアップの保守作業が必要となることがあり、機器組込ユニットに含まれるファームウェアの書き換え作業を実施している。従来のプログラム書き換え方法としては、プログラムを実行するメモリ領域の他に、ダウンロード用のメモリ領域を用意し、この領域にプログラムを書込み後、ユニットをリブートすることにより、書き換ええられた新規プログラムで運用を開始している。
【０００３】
図６は従来のプログラム書き換え装置の例を示す図である。図６に示すように、従来のプログラム書き換え装置５０は、組込ユニット５８の各機能を実行するマイクロプロセッサ５１を備え、プログラムを記録、実行するための不揮発性メモリ５２及びランダムアクセスメモリ５４をバス５７を介して接続する。不揮発性メモリ５２は、プログラムデータを格納するプログラム格納領域５３を備え、プログラム書き換え時に新たな更新用のプログラムがプログラム格納領域５３上に記録保存され、リブート時にはプログラム格納領域５３上に記録されたプログラムを実行する。ランダムアクセスメモリ５４は、プログラムデータが格納されるプログラム格納領域５５と、各プログラムが実行される際に使用されるデータ領域５６を備え、リブート時には不揮発性メモリ５２からプログラム格納領域５５上にプログラムデータが転記され、ユニット定常状態では不揮発性メモリ５２からプログラム実行領域を分岐されプログラム格納領域５５上でプログラムを実行する。さらに、バス５７を介して、映像エンコーダ、デコーダ、等の機能的組込ユニット５８が接続される。ここでは映像エンコーダ、デコーダを例として挙げたが、これに限定する必要はない。映像エンコーダ、デコーダ、等の機能的組込ユニット５８は、マイクロプロセッサ５１によって与えられたパラメータで符号化及び復号化動作を実行する。ランダムアクセスメモリ５４のプログラム格納領域５５で実行中のプログラムは、プログラム書き換え時に新規プログラムの全データを不揮発性メモリ５２に書込む。全データ書き換え終了後にランダムアクセスメモリ５４で実行中のプログラムは、ユニット全体にリブートを発生させる。リブート直後は新規プログラムデータが書込まれた不揮発性メモリ５２を実行領域として起動し、不揮発性メモリ５２が起動処理の中でプログラム全データをランダムアクセスメモリ５４領域に転記し終えた後、実行領域をもランダムアクセスメモリ５４に分岐して運用を継続させる。プログラム書き換え時の格納領域が不揮発性メモリ５２であるのは、電源断時にもプログラム内容を記憶させておく必要があるためである。一方、通常の実行領域であるランダムアクセスメモリ５４は不揮発性メモリである必要はなく、マイクロプロセッサとメモリ間のデータ転送に関して性能の高いＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）で実現することが一般的である。
【０００４】
このように従来のプログラム書き換え装置は、プログラムを実行するメモリ領域の他に、ダウンロード用のメモリ領域を用意し、この領域にプログラムを書込み後、ユニットをリブートすることにより新規プログラムで運用を開始している。また、常時運用動作を必要とする機器の組込システムにおいて、自動的にシステムのアップデートを行え、しかもシステムをフリーズさせることのないプログラム更新装置が開示されている（例えば、特許文献１参照）。
【特許文献１】特開２００２−３３３９９０号公報
【０００５】
この文献に記載された方法は、プログラムの書き換え作業において、自動的にプログラムの書き換えを行なうことができ、たとえ新しい動作プログラム等が起動に失敗しても決してシステムがフリーズすること無く、プログラムの書き換えを行なうことができる。
【０００６】
しかしながら上述したプログラム書き換え装置及びプログラム書き換え方法はいずれも、プログラム書込み後にユニットのリブートを発生させなければ、新たに更新したプログラムでユニットを起動させることができない。例えば、２４時間常時運用動作を必要とする映像監視システムでは、映像入力ユニット及び映像出力ユニットのプログラム更新時にユニットのリブートを発生させることによって、リブートにかかる時間内は監視映像を出力することができず、運用に制限が加えられてしまうという問題が存在していた。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記従来のプログラム書き換え装置及びプログラム書き換え方法にあっては、プログラム書込み後にユニットのリブートを発生させなければ、新たに更新したプログラムでユニットを起動させることができないという事情があった。例えば、２４時間常時運用動作を必要とする映像監視システムでは、映像入力ユニット及び映像出力ユニットのプログラム更新時にユニットのリブートを発生させることによって、リブートにかかる時間内は監視映像を出力することができず、運用に制限が加えられてしまうという問題が存在していた。
【０００８】
本発明は、上記の問題点に鑑みて、プログラム書き換え時もリブートを発生させずに新たに更新されたプログラムに移行し、運用を維持することが可能なプログラム書き換え方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、第1の格納領域に格納されたプログラムを前記第1の格納領域とは別の第２の格納領域にコピーし、前記第２の格納領域に記憶されたプログラムの実行中に前記プログラムを更新するプログラムを取得して前記第1の格納領域に格納されたプログラムを書き換え、前記第２の格納領域に記憶されたプログラムの実行履歴を反映して前記第1の格納領域に記憶された書き換え後のプログラムを実行する。この構成によれば、書き換え後のプログラムを実行する際に書き換え前のプログラムの実行履歴を反映させることで、書き換え前のプログラムから書き換え後のプログラムへリブートなしでプログラムの実行を移行させることができ、運用を継続させることができる。
【００１０】
本発明を実施するための装置は、マイクロプロセッサと、マイクロプロセッサとバスを介して接続し、マイクロプロセッサの起動処理を実行するプログラムを記録し、起動処理とは別に通常処理を実行するプログラムを特定の固定領域に記録した不揮発性メモリと、マイクロプロセッサ及び不揮発性メモリとバスを介して接続し、マイクロプロセッサを作動させるプログラムを記録し、マイクロプロセッサを作動させるプログラムを実行中に不揮発性メモリ上の特定の固定領域に分岐するランダムアクセスメモリとを備える。
【００１１】
この構成により、ユニットにリブートを発生させずにプログラムの書き換え及び新規プログラムでの運用を再開することができる。起動処理とは別に通常処理を行うプログラムのアドレス先頭位置を常に固定しておき、ランダムアクセスメモリが新規プログラムデータを不揮発性メモリに書込み後、不揮発性メモリ上の通常処理を行うプログラムのアドレス先頭に分岐させることによって、ユニットにリブートを発生させずにプログラムの運用を継続することが可能となる。例えば、映像エンコーダ及びデコーダなど常時映像監視を行わなければならないシステムなどでは、監視作業を行いながら組込ファムウェアの更新を行うことが可能である。
【００１２】
本発明を実施するための装置は、ランダムアクセスメモリは、不揮発性メモリ上で実行されるプログラムが使用するデータ領域と、ランダムアクセスメモリ上で実行されるプログラムが使用するデータ領域が、同一のアドレス空間で実現されるデータ領域を備える。
【００１３】
この構成により、コストや実装面積を拡大することなくリブートを発生させないプログラム書き換え作業を実施できる。それぞれのメモリ上で運用されるプログラムが使用するデータ領域が同一のアドレス空間で使用されることによって、余分な空間を新たに追加する必要がないプログラム書き換え装置のランダムアクセスメモリが実現できる。
【００１４】
上記装置のデータ領域は、ランダムアクセスメモリが現在の動作状態を書込み、書込まれた現在の動作状態を不揮発性メモリが読出すための領域を含む。
【００１５】
この構成により、ランダムアクセスメモリから不揮発性メモリへのプログラム分岐時のユニットの運用動作を安定させることができる。ランダムアクセスメモリ上で運用されるプログラムが現在のユニットのステータスを書込み、そのステータスを不発揮性メモリが読み出せるエリアを設けることで、ランダムアクセスメモリから不発揮性メモリに分岐する際のユニットの動作状態を参照後、ステータスに従ったソフトウェアの変数設定や各ブロックへのパラメータ設定などを行うことが可能となる。常時映像監視を行うシステム等では、監視映像が正常に継続したままプログラム分岐時の動作も含んだすべてのプログラム書き換え作業を終了させることができる。
【００１６】
上記装置は、ランダムアクセスメモリが書き換え用のプログラムデータを伝送する通信装置とバスを介して接続される。
【００１７】
この構成により、ユニットに実装される通信装置を経由してマンマシンインタフェースからリモートでのプログラムデータ転送が可能となる。パソコン等で実現されるマンマシンインタフェースから書き換え用のプログラムデータをバージョンアップ対象のユニットへ送信し、自動的にプログラムが更新されかつ新規プログラムで運用されるため、より操作しやすいプログラム書き換え作業を実現できる。
【発明の効果】
【００１８】
本発明によれば、組込ファームウェアが使用されるユニットにリブートを発生させずにプログラムの書き換え及び新規プログラムでの運用を再開することができる。起動処理とは別に通常処理を行うプログラムのアドレス先頭位置を常に固定しておき、ランダムアクセスメモリが新規プログラムデータを不揮発性メモリに書込み後、不揮発性メモリ上の通常処理を行うプログラムのアドレス先頭に分岐させることによって、ユニットにリブートを発生させずにプログラムの運用を継続することが可能となる。例えば、映像エンコーダ、デコーダ、等の常時映像監視を行わなければならないシステムなどでは、監視作業を行いながら組込ファムウェアを更新できるという効果を有するプログラム書き換え装置を提供することができる。
【発明を実施するための最良の形態】
【００１９】
図１は、第一の実施形態のプログラム書き換え装置の構成の一例を示すブロック図である。プログラム書き換え装置１０は、組込ユニット１９の各機能を実現するマイクロプロセッサ１１を備え、プログラムを記録、実行するための不揮発性メモリ１２及びランダムアクセスメモリ１４をバス１８を介して接続する。不揮発性メモリ１２は、プログラムデータを格納するプログラム格納領域１３を備え、プログラム書き換え時に新たな更新用プログラムがプログラム格納領域１３に記録保存される。プログラム書き換え完了後には、プログラム格納領域１３上に記録されたプログラムを実行する。ランダムアクセスメモリ１４は、プログラムデータを格納するプログラム格納領域１５と、各プログラムを実行する際に使用するデータ領域１６と、プログラムを分岐させる際に分岐前と分岐後のユニット動作状態を記録、参照が可能な動作状態保存領域１７を備え、ユニット定常状態ではプログラム格納領域１５でプログラムが実行される。さらに、バス１８を介して組込ユニット１９の機能的な特徴を示す映像エンコーダ、デコーダ、等の各ブロックが接続される。ここでは映像エンコーダ、デコーダ、等の組込ユニット１９を例として挙げたが、これに限定する必要はない。映像エンコーダ、デコーダ、等の組込ユニット１９は、マイクロプロセッサ１１によって与えられたパラメータで符号化及び復号化動作を実行する。
【００２０】
ランダムアクセスメモリ１４のプログラム格納領域１５で実行中のプログラムは、プログラム書き換え時に新規プログラムの全データを不揮発性メモリ１２に書込む。全データ書き換え終了したランダムアクセスメモリ１４で実行中のプログラムは、その時点でのユニット全体の動作状態を動作状態保存領域１７に記録する。全状態を動作状態保存領域１７に記録完了後、プログラム実行領域をプログラム格納領域１５から不揮発性メモリ１２のプログラム格納領域１３上に分岐させる。分岐直後の不揮発性メモリ１２のプログラム格納領域１３で実行されるプログラムは、動作状態保存領域１７に保存されている各種動作状態データを参照し、映像エンコーダ、デコーダ、等の組込ユニット１９及び自身のデータ領域１６上にパラメータを反映することによって運用動作を継続させる。
【００２１】
ここで、マイクロプロセッサ１１を作動させる環境として、マイクロプロセッサ１１と各メモリ間のデータ転送に関して処理速度等の性能の面からランダムアクセスメモリ１４上でプログラムを実施することが望ましいため、再度ランダムアクセスメモリ１４上でプログラムを作動させるための処理を示す。更新された新規プログラムで運用を再開した不揮発性メモリ１２のプログラム格納領域１３上で運用中のプログラムは、書き換え後のプログラムデータをランダムアクセスメモリ１４のプログラム格納領域１５上に転記し、すべてのプログラムデータを転記終了後、その時点でのユニット全体の動作状態を動作状態保存領域１７に記録する。全状態を動作状態保存領域１７に記録完了後、プログラム実行領域をプログラム格納領域１３からランダムアクセスメモリ１４のプログラム格納領域１５上に分岐させる。分岐直後のランダムアクセスメモリ１４のプログラム格納領域１５で実行されるプログラムは、動作状態保存領域１７に保存されている各種動作状態データを参照し、映像エンコーダ、デコーダ、等の組込ユニット１９及び自身のデータ領域１６上にパラメータを反映させることによって運用動作を継続させる。このように、プログラム書き換え時にも、上記手法のようにプログラム実行領域を分岐させることで、リブートを発生させずにユニット運用を継続させることが可能となる。
【００２２】
次に、本実施形態のプログラム書き換え装置１０によるプログラム書き換え方法について説明する。図２は第一の実施形態のプログラム書き換え装置においてプログラム書き換え時の各要素間を往来するデータの流れを示すシーケンス図である。図２に示すように、マンマシンインタフェースの役割を果たす通信装置２０を経由してリモート操作でプログラム書き換え、データ送信及び書き換えを行った場合を考える。通信装置２０は不揮発性メモリ１２及びランダムアクセスメモリ１４とバスを介して接続され、パソコン等からユーザが送信した書き換え用プログラムデータを受信可能な媒体とする。現在ランダムアクセスメモリ１４上でプログラム実行ＰＲ１中のプログラムは、通信装置２０を介してユーザからのプログラム書き換え指示Ｐ１を受信する。これに対する応答Ｒ１がランダムアクセスメモリ１４上で実行されるプログラムから通信装置２０を介してユーザ側に送信される。これを受けてユーザからは、通信装置２０を介して、ランダムアクセスメモリ１４上で実行されるプログラムに書き換え用プログラムデータ送信ＰＤ１する。これを受信したランダムアクセスメモリ１４上で実行されるプログラムは、不揮発性メモリ１２のプログラム格納領域上に受信した全プログラムデータを転記する全プログラムデータ転記処理ＰＤ２を実行する。全プログラムデータを転記し終えたランダムアクセスメモリ１４上で実行されるプログラムは、ユニット動作状態を自メモリ内に確保している動作状態保存領域１７に記録する動作状態記録処理Ｊ１を実行する。全動作状態を記録後、ランダムアクセスメモリ１４上で実行されるプログラムは、分岐処理ＢＲ１を実行し、プログラム実行領域を不揮発性メモリ１２の指定されたプログラム格納領域１３へ分岐する。
【００２３】
分岐直後の不揮発性メモリ１２上で実行されるプログラムＰＲ２は、動作状態参照設定処理Ｊ２を実行し、動作状態保存領域１７に記録された全動作状態を参照し、ユニットの各ブロック及び自身のデータ領域上にパラメータを反映し、運用動作を継続させる。次いで、再度プログラム実行領域をランダムアクセスメモリ１４に移すために、不揮発性メモリ１２上で運用中のプログラムＰＲ２は、記録処理Ｊ３を実行し、書き換え後のプログラムデータをランダムアクセスメモリ１４のプログラム格納領域１５に転記し、すべてのプログラムデータを転記終了後、その時点でのユニット全体の動作状態を動作状態保存領域１７に記録する。全動作状態を記録後、不揮発性メモリ１２上で実行されるプログラムは、分岐処理ＢＲ２を実行し、プログラム実行領域をランダムアクセスメモリ１４の指定されたプログラム格納領域１５へ分岐する。
【００２４】
次いで、分岐直後のランダムアクセスメモリ１４上で実行されるプログラムＰＲ３は、動作状態参照設定処理Ｊ４を実行し、動作状態保存領域１７に記録された全動作状態を参照し、ユニットの各ブロック及び自身のデータ領域上にパラメータを反映し、運用動作を継続させる。
【００２５】
図３は、第一の実施形態のプログラム書き換え装置の（Ａ）不揮発性メモリ内に配置されるデータの領域配置図及び（Ｂ）ランダムアクセスメモリ内に配置されるデータの領域配置図を示す。図３に示すように、不揮発性メモリ１２は、ブート処理を実行するプログラムを格納するブート処理プログラム格納領域３０と、通常処理を行うプログラムを格納する通常処理プログラム格納領域３１を有する。一方、ランダムアクセスメモリ１４は、ブート処理を行うプログラムを格納するブート処理プログラム格納領域３２と、通常処理を行うプログラムを格納する通常処理プログラム格納領域３３と、各プログラムのデータ処理を行うデータ領域３４と、プログラム分岐時にユニットの動作状態を記録、参照する動作状態保存領域３５を所有する。なお、本来であれば、割込ベクタテーブルやスタック領域等、プログラムを実行する上で必要な領域が存在するが、プログラム書き換え動作の説明上重要ではないためここでは説明しない。
【００２６】
先ず、ユニット起動時、不揮発性メモリ１２内のブート処理プログラム格納領域３０のプログラムが実行される。このブート処理プログラム格納領域３０には全プログラムデータ３６をランダムアクセスメモリ１４内の領域に転記する処理が組込まれており、全プログラムデータ３６の転記終了後、不揮発性メモリ１２内で実行中のブート処理プログラム格納領域３０のプログラムから、ランダムアクセスメモリ１４内の通常処理プログラム格納領域３３の先頭アドレスＴ２に実行領域を分岐する。これ以降はランダムアクセスメモリ１４内の通常処理プログラム格納領域３３でプログラムを実行する。
【００２７】
プログラム書き換え時は、ランダムアクセスメモリ１４内の通常処理プログラム格納領域３３で実行されているプログラムは、通信装置２０を介してユーザから受信した新たな書き換え用のプログラムデータを不揮発性メモリ１２上の領域３６に転記する。すべてのプログラムデータ転記完了後、ユニットの動作状態を動作状態保存領域３５に記録し、不揮発性メモリ１２内の通常処理プログラム格納領域３１の先頭アドレスＴ１に実行領域を分岐する。通常処理の開始直後にはリブート時とプログラム書き換え時とをフラグ等によって区別できる機能があることが望ましく、プログラム書き換え時に限って、データ領域の初期化、動作状態保存領域の参照及び設定等の処理を実行することができる。実行領域を不揮発性メモリ１２内の通常処理プログラム領域３１に移した後、プログラム変更による状態不一致を避けるため、データ領域３４の初期化を行い、動作状態保存領域３５に記録した現在の状態を参照し、各ブロックやデータ領域３４へパラメータの設定を行う。さらにプログラム実行領域をランダムアクセスメモリ１４に移したい場合は、更新された全プログラムデータ３６をランダムアクセスメモリ１４内に転記し、全プログラムデータ３６を転記した後、現在のユニット状態を動作状態保存領域３５に記録後、ランダムアクセスメモリ１４内の通常処理プログラム格納領域３３の先頭アドレスＴ２に実行領域を分岐する。実行領域をランダムアクセスメモリ１４内の通常処理プログラム格納領域３３に移した後、動作状態保存領域３５に記録した現在の状態を参照し、各ブロックやデータ領域３４へのパラメータの設定を行い、次いでランダムアクセスメモリ１４内の通常処理プログラム格納領域３３でプログラムを実行する。
【００２８】
次に、本発明の第二の実施形態のプログラム書き換え装置について説明する。図４は第二の実施形態のプログラム書き換え装置のプログラム書き換えを実施する際のデータの流れの一例を説明するシーケンス図である。図４に示すように、マンマシンインタフェースの役割を果たす通信装置２０を経由してリモート操作でプログラム書き換えデータの送信及び書き換えを行った場合を考える。現在ランダムアクセスメモリ１４上で実行中のプログラムは、通信装置２０を介してユーザからのプログラム書き換え指示Ｐ１０を受信する。これを受けたランダムアクセスメモリ１４上で実行中のプログラムＰＲ１０は、動作状態記録処理Ｊ１０を実行し、ユニット動作状態を自メモリ内に確保している動作状態保存領域上に記録する。全動作状態を記録後、ランダムアクセスメモリ１４上で実行中のプログラムＰＲ１０は、分岐処理ＢＲ１０を実行し、プログラム実行領域を不揮発性メモリ１２上に存在するプログラム書き換え処理が組込まれたプログラム領域に分岐する。
【００２９】
分岐直後の不揮発性メモリ１２上で実行中のプログラムＰＲ１２は、動作状態参照設定処理Ｊ１２を実行し、動作状態保存領域上に記録された全動作状態を参照し、ユニットの各ブロック及び自身のデータ領域上にパラメータを反映させる。次いで、通信装置２０を介してプログラム書き換え指示応答Ｒ１０を送信し、その後、プログラムデータＰＤ１０を受信した不揮発性メモリ１２上で実行されるプログラムＰＲ１２は、受信した全プログラムデータをランダムアクセスメモリ１４のプログラム格納領域上に転記ＰＤ１２する。全プログラムデータを転記し終えた不揮発性メモリ１２上で実行されるプログラムＰＲ１２は、記録処理Ｊ１４を実行し、ユニット動作状態を自メモリ内に確保している動作状態保存領域上に記録する。全動作状態を記録後、不揮発性メモリ１２上で実行されるプログラムＰ１２は、分岐処理ＢＲ１２を実行し、プログラム実行領域をランダムアクセスメモリ１４の指定されたプログラム格納領域上へ分岐する。
【００３０】
分岐直後のランダムアクセスメモリ１４上で実行されるプログラムＰＲ１４は、動作状態参照設定処理Ｊ１５を実行し、動作状態保存領域上に記録された全動作状態を参照し、ユニットの各ブロック及び自身のデータ領域上にパラメータを反映し、運用動作を継続させる。さらにリブート発生時に新しいプログラムで運用させるために、転記処理ＰＤ１２を実行し、更新された全プログラムデータを不揮発性メモリ１２内のプログラム格納領域上に転記する。
【００３１】
図５は、第二の実施形態のプログラム書き換え装置の（Ａ）不揮発性メモリ内に配置されるデータの領域配置図及び（Ｂ）ランダムアクセスメモリ内に配置されるデータの領域配置図を示す。図５に示すように、不揮発性メモリ１２は、ブート処理を行うプログラムを格納するブート処理プログラム格納領域４０と、通常処理を行うプログラムを格納する通常処理プログラム格納領域４１に加え、プログラム書き換え処理を行うプログラムを格納する書き換え処理プログラム格納領域４２を所有する。一方、ランダムアクセスメモリ１４は、ブート処理を行うプログラムを格納するブート処理プログラム格納領域４３と、通常処理を行うプログラムを格納する通常処理プログラム格納領域４４と、各プログラムのデータ処理を行うデータ領域４６と、プログラム分岐時にユニットの動作状態を記録、参照する動作状態保存領域４７に加え、プログラム書き換え処理を行うプログラムを格納する書き換え処理プログラム格納領域４５を所有する。プログラム書き換え時、ランダムアクセスメモリ１４内の通常処理プログラム格納領域４４で実行されているプログラムは、ユニットの動作状態を動作状態保存領域４７に記録し、不揮発性メモリ１２内のプログラム書き換え処理が格納された書き換え処理プログラム格納領域４２の先頭アドレスＴ１０に実行領域を分岐する。実行領域を不揮発性メモリ１２内の書き換え処理プログラム格納領域４２に移した後、動作状態保存領域４７に記録した現在の状態を参照し、各ブロックやデータ領域４６へパラメータの設定を行う。その後、通信装置２０を介して受信した新たな書き換え用のプログラムデータをランダムアクセスメモリ１４上の領域４８に転記する。すべてのプログラムデータ転記完了後、ユニットの動作状態を動作状態保存領域４７に記録し、ランダムアクセスメモリ１４内の通常処理プログラム格納領域４４の先頭アドレスＴ１２に実行領域を分岐する。実行領域をランダムアクセスメモリ１４内の通常処理プログラム格納領域４４に移した後、プログラム変更による状態不一致を避けるため、データ領域４６の初期化を行い、動作状態保存領域４７に記録した現在の状態を参照し、各ブロックやデータ領域４６へパラメータの設定を行う。次いで、ランダムアクセスメモリ１４内の通常処理領域４４でプログラムを実行し、ユニットのリブート時にも最新のプログラムで起動が行えるよう、更新された全てのプログラムデータを不揮発性メモリ１２上のプログラム格納領域４９に転記する。
【００３２】
以上説明したように、本発明のプログラム書き換え装置は、組込ファムウェアが使用されるユニットにリブートを発生させずにプログラムの書き換え及び新規プログラムでの運用を再開するという利点がある。起動処理とは別に通常処理を行うプログラムのアドレス先頭位置を常に固定しておき、ランダムアクセスメモリが新規プログラムデータを不揮発性メモリに書込み後、不揮発性メモリ上の通常処理を行うプログラムのアドレス先頭に分岐させることによって、ユニットにリブートを発生させずにプログラムの運用を継続することが可能となる。例えば、映像エンコーダ、デコーダ、等の常時映像監視を行わなければならないシステムなどでは、監視作業を行いながら組込ファムウェアの更新が可能である。また、本発明のプログラム書き換え方法は、常時運用動作している組込システムのバグフィックス、バージョンアップ、等の保守作業に適用できる。以上、本発明のプログラム書き換え装置及びプログラム書き換え方法について説明したが、本発明は上記実施形態に限定されない。
【００３３】
なお、本発明が上記実施形態に限定されず、本発明の技術思想の範囲内において、実施形態は適宜変更され得ることはあきらかである。
【産業上の利用可能性】
【００３４】
本発明のプログラム書き換え方法は、組込ファームウェアが使用されるユニットにリブートを発生させずにプログラムの書き換え及び新規プログラムでの運用を再開することが実現でき、また映像エンコーダ、デコーダ、等の常時映像監視を行わなければならないシステムなどでは、監視作業を行いながら組込ファムウェアの更新を行うことができるという効果を有し、システムのバグフィックスやバージョンアップを行う際、常時運用動作を必要とする組込システムに有用である。
【図面の簡単な説明】
【００３５】
【図１】第一の実施形態のプログラム書き換え装置の構成の一例を示すブロック図
【図２】第一の実施形態のプログラム書き換え装置においてプログラム書き換え時の各要素間を往来するデータの流れを示すシーケンス図
【図３】（Ａ）不揮発性メモリ内に配置されるデータの領域配置図、（Ｂ）ランダムアクセスメモリ内に配置されるデータの領域配置図
【図４】第二の実施形態のプログラム書き換え装置のプログラム書き換えを実施する際のデータの流れの一例を説明するシーケンス図
【図５】（Ａ）不揮発性メモリ内に配置されるデータの領域配置図、（Ｂ）ランダムアクセスメモリ内に配置されるデータの領域配置図
【図６】従来のプログラム書き換え装置の例を示す図である。
【符号の説明】
【００３６】
１０  プログラム書き換え装置
１１  マイクロプロセッサ
１２  不揮発性メモリ
１４  ランダムアクセスメモリ
【図１】
2007034692.tif 000003
【図２】
2007034692.tif 000004
【図３】
2007034692.tif 000005
【図４】
2007034692.tif 000006
【図５】
2007034692.tif 000007
【図６】
2007034692.tif 000008