JP2004246576A - プログラム書換方法及び半導体装置 - Google Patents
プログラム書換方法及び半導体装置 Download PDFInfo
- Publication number
- JP2004246576A JP2004246576A JP2003035102A JP2003035102A JP2004246576A JP 2004246576 A JP2004246576 A JP 2004246576A JP 2003035102 A JP2003035102 A JP 2003035102A JP 2003035102 A JP2003035102 A JP 2003035102A JP 2004246576 A JP2004246576 A JP 2004246576A
- Authority
- JP
- Japan
- Prior art keywords
- program
- area
- new
- server
- recording medium
- 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.)
- Withdrawn
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】記録媒体に記録されたプログラムを、サーバから受信した新たなプログラムで安全に書き換えることができるプログラム書換方法等を提供する。
【解決手段】第2のプログラムを実行することにより、サーバとの通信を行うステップ(a)と、新たな第1のプログラムを装置に送信するステップ(b)と、新たな第1のプログラムを記録媒体の第1の領域に記録するステップ(c)と、録媒体の第1の領域に記録された新たな第1のプログラムを実行することにより、サーバとの通信を行うステップ(d)と、新たな第2のプログラムを装置に送信するステップ(e)と、装置において、新たな第2のプログラムを記録媒体の第2の領域に記録するステップ(f)とを具備する。
【選択図】 図5
【解決手段】第2のプログラムを実行することにより、サーバとの通信を行うステップ(a)と、新たな第1のプログラムを装置に送信するステップ(b)と、新たな第1のプログラムを記録媒体の第1の領域に記録するステップ(c)と、録媒体の第1の領域に記録された新たな第1のプログラムを実行することにより、サーバとの通信を行うステップ(d)と、新たな第2のプログラムを装置に送信するステップ(e)と、装置において、新たな第2のプログラムを記録媒体の第2の領域に記録するステップ(f)とを具備する。
【選択図】 図5
Description
【0001】
【発明の属する技術分野】
本発明は、ネットワークを介してサーバに接続された装置の記録媒体に記録されたプログラムの書換方法に関する。さらに、本発明は、ネットワークを介してサーバに接続された装置に用いられる半導体装置に関する。
【0002】
【従来の技術】
従来より、通信コントローラ(通信用LSI)は、CPUコアと、CPUコアが実行するためのプログラム(ファームウェア)を記録するフラッシュROMとを有している。このフラッシュROMに記録されたプログラムには通信に必要なコードが含まれており、この通信に必要なコードが書き換えられた時点で通信が不可能となってしまうため、フラッシュROMに記録されているプログラムを書き換えることはできなかった。そのため、プログラムを書き換えるには、ROMライタ等を用いなければならなかった。
【0003】
しかしながら、通信コントローラが組み込まれた機器は、すぐに人の手の届くところに配置されているとは限らず、また、ネットワークから取り外すことが困難である場合もある。さらに、ネットワークに大量の機器が接続されている場合には、これら全ての機器内の通信コントローラのファームウェアを書き換えることが容易ではなかった。
【0004】
ところで、従来、特に運用中にブート処理プログラムを遠隔操作により書き換え可能とするコンピュータシステムがある(例えば、特許文献1参照)。
【0005】
【特許文献1】
特許第2940480号公報
【0006】
特許文献1に掲載されたコンピュータシステムは、少なくとも2面の不揮発性記憶デバイス、少なくとも2面の不揮発性記憶デバイスの切り替えを行う不揮発性記憶デバイスセレクタ、マルチタスクオペレーティングシステム、少なくとも2面の不揮発性記憶デバイスにおけるブート処理プログラムの書き換え状態を保持するラッチ付きレジスタ等を必要とし、少なくとも2面の不揮発性記憶デバイスを現用系不揮発性記憶デバイス及び予備系不揮発性記憶デバイスとして使用するものである。
【0007】
また、各装置の機能を停止することなく複数の装置がオンライン状態のまま一括して同時にソフトウェアのダウンロードの処理が可能なリモートソフトウェアダウンロード方式がある(例えば、特許文献2参照)。
【0008】
【特許文献2】
特開平5−158703号公報
【0009】
特許文献2に掲載されたリモートソフトウェアダウンロード方式は、ネットワークを構成する各装置が現用と予備用の2種類のEEPROMを必要とし、ネットワーク管理装置からのbroadcast型通信手段を使用して複数の装置の予備用のEEPROMにプログラムデータを書き込む第一の手段、point−to−point型通信手段を使用して第一の手段によって個々の装置の予備用EEPROMに書き込まれたプログラムデータが正常であることを確認する第二の手段、broadcast型通信手段を使用して複数の装置に現用か予備用かのEEPROMを指定して立ち上げを行わせる第三の手段、個々の装置に於いて第三の手段による立ち上げ後の異常検出時には自動的に予備用から現用のEEPROMに切り替えて再立ち上げを行う第四の手段、第二の手段と同様に個々の装置に現在運用中のEEPROMを確認する第五の手段を必要とする。
【0010】
また、シリアル通信ポート等を利用して不揮発性の書き換え可能なメモリにファームウェアの応用部分を書き込み、また書き換えることを可能とする制御装置がある(例えば、特許文献3参照)。
【0011】
【特許文献3】
特開2000−112765号公報
【0012】
特許文献3に掲載された制御装置は、ファームウェアの第1の部分に従って起動した場合に第2の記憶手段にファームウェアの第2の部分が記憶されているか否かを調べ、記憶されている場合はファームウェアの第2の部分を実行し、記憶されていない場合は待機状態を維持し、該待機状態の間またはファームウェアの第2の部分の実行中に書き込み命令が与えられた場合に、プログラムに従って外部通信手段を介してファームウェアの第2の部分を受信して第2の記憶手段に書き込み実行命令の受信を待機するものである。
【0013】
【発明が解決しようとする課題】
そこで、上記の点に鑑み、本発明は、ネットワークを介してサーバに接続された装置の記録媒体に記録されたプログラムを安全に書き換えることができるプログラム書換方法を提供することを第1の目的とする。また、本発明は、ネットワークを介してサーバに接続された装置に用いられる半導体装置を提供することを第2の目的とする。
【0014】
【課題を解決するための手段】
以上の課題を解決するため、本発明に係るプログラム書換方法は、ネットワークを介してサーバに接続された装置の記録媒体に記録されたプログラムの書換処理のための第1のプログラム及び装置において所定の機能を実現するための第2のプログラムを書き換える方法であって、装置において、第2のプログラムを実行することにより、サーバとの通信を行うステップ(a)と、サーバにおいて、新たな第1のプログラムを装置に送信するステップ(b)と、装置において、新たな第1のプログラムを記録媒体の第1の領域に記録するステップ(c)と、装置において、記録媒体の第1の領域に記録された新たな第1のプログラムを実行することにより、サーバとの通信を行うステップ(d)と、サーバにおいて、新たな第2のプログラムを装置に送信するステップ(e)と、装置において、新たな第2のプログラムを記録媒体の第2の領域に記録するステップ(f)とを具備する。
【0015】
これにより、プログラムを安全に書き換えることができる。
【0016】
また、新たな第1のプログラムが、新たな第1のプログラムの記録媒体の第1の領域への記録が完了したことを表す第1の情報を末尾部に有しており、装置において、ステップ(f)の後に、第1の情報を、新たな第2のプログラムの記録媒体の第2の領域への記録が完了したことを表す第2の情報に書き換えるステップ(g)を更に具備することとしても良い。また、記録媒体の第3の領域に装置のブート処理のための第3のプログラムが記録されており、ステップ(a)が、装置において、記録媒体の第3の領域に記録された第3のプログラムを実行し、記録媒体の第2の領域に第2の情報が記録されている場合に、記録媒体の第2の領域に記録されている第2のプログラムに制御を移すことにより、サーバとの通信を行い、ステップ(d)が、装置において、再起動後、記録媒体の第3の領域に記録された第3のプログラムを実行し、記録媒体の第2の領域に第1の情報が記録されている場合に、記録媒体の第1の領域に記録されている第1のプログラムに制御を移すことにより、サーバとの通信を行うこととしても良い。
【0017】
また、装置とサーバが、TFTP(Trivial File Transfer Protocol)においてエラーとして扱われるべきパケットで通信を行うこととしても良い。
これにより、情報処理装置3以外の他のTFTPクライアントのプログラム(ファームウェア)を書き換えてしまうことを防止することができる。
さらに、パケットが、第2のプログラムのバージョンに関する情報を含むこととしても良い。
【0018】
また、第2のプログラムが、バージョンに関する情報を末尾部に有することとしても良い。
これにより、第2の領域に記録されている第2のプログラムが書き換え対象であるか又は書き換え対象ではないかを容易に管理することができる。
【0019】
また、ステップ(b)が、サーバにおいて、IEEE802.3のパケットを用いて、新たな第1のプログラムを装置に送信し、ステップ(e)が、サーバにおいて、IEEE802.3のパケットを用いて、新たな第2のプログラムを装置に送信することとしても良い。
これにより、アップデート専用プログラムのプログラムサイズを小さくすることができる。
【0020】
また、ステップ(b)が、サーバにおいて、新たな第1のプログラムを所定のサイズのブロック単位で装置に送信し、ステップ(c)が、装置において、新たな第1のプログラムを所定のサイズのブロック単位で記録媒体の第1の領域に記録し、ステップ(e)が、サーバにおいて、新たな第2のプログラムを所定のサイズのブロック単位で装置に送信し、ステップ(f)が、装置において、新たな第2のプログラムを所定のサイズのブロック単位で記録媒体の第2の領域に記録することとしても良い。
【0021】
これにより、通信エラー等によってメインプログラムの途中で書き換えが中止された場合に、既に書き換え(消去及び書き込み)が行われたブロックの再書き換えを不要とすることができ、メインプログラムの書き換えを再び試みたときの書き換えに必要な時間を短くすることができるとともに、既に書き換え(消去及び書き込み)が行われたブロックの書き換え寿命が短くなることを防止することができる。
【0022】
また、本発明に係る半導体装置は、ネットワークを介してサーバに接続された装置に用いられる半導体装置であって、プログラムの書換処理のための第1のプログラムを記録する第1の領域及び所定の機能を実現するための第2のプログラムを記録する第2の領域を有するメモリと、メモリの第2の領域に記録された第2のプログラムを実行することによりサーバとの通信を行い、新たな第1のプログラムをサーバから受信し、新たな第1のプログラムをメモリの第1の領域に記録し、メモリの第1の領域に記録された新たな第1のプログラムを実行することによりサーバとの通信を行い、新たな第2のプログラムをサーバから受信し、新たな第2のプログラムをメモリの第2の領域に記録する処理部とを具備する。
これにより、メモリ内のプログラムを安全に書き換えることができる。
【0023】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態について説明する。
図1に、本発明の一実施形態に係るプログラム書換方法を実現するためのシステムの構成を示す。図1に示すように、システム1は、サーバコンピュータ2と、情報処理装置3とを具備する。サーバコンピュータ2と情報処理装置3は、ネットワークを介して接続されている。
サーバコンピュータ2は、情報処理装置3が実行するための最新バージョンのプログラムを格納しており、必要に応じて、この最新バージョンのプログラムを情報処理装置3に送信する。
【0024】
図2は、図1の情報処理装置3の内部構成を示す図である。図2に示すように、情報処理装置3は、CPU4と、RAM5と、ROM6と、通信コントローラ7と、ネットワークインタフェース8とを具備する。
CPU4は、RAM5を作業用領域として使用しながら、ROM6に格納されたプログラムを実行する。
【0025】
通信コントローラ7は、TCP/IPを用いた通信の物理層(例えば、IEEE802.3に規定される10Base−T等)を担うネットワークインタフェース8に接続されており、外部機器との間のTCP/IPを用いた通信を行う。
図3は、本発明の一実施形態に係る半導体装置として、図2の通信コントローラ7の内部構成を示す図である。図3に示すように、通信コントローラ7は、ネットワークインタフェース部11と、バスインタフェース部13と、CPUコア15と、フラッシュROM17とを具備する。
【0026】
ネットワークインタフェース部11は、外部機器から通信データを受け取ってCPUコア15に送り、CPUコア15から通信データを受け取って外部機器に送る。
バスインタフェース部13は、CPU4から通信データ等を受け取ってCPUコア15に送り、CPUコア15から通信データ等を受け取ってCPU4に送る。
【0027】
フラッシュROM17は、CPUコア15がTCP/IPを用いた通信等の機能を実現するためのプログラム(ファームウェア)を記録している。
図4は、フラッシュROM17のメモリマップを示す図である。図4に示すように、フラッシュROM17は、ブートセクタ(ブートプログラム記録領域)と、メインプログラム記録領域と、アップデート専用プログラム記録領域とを有する。
【0028】
ブートセクタは、通信コントローラ7の起動時に実行されるプログラムであるブートプログラムを記録する領域である。
メインプログラム記録領域は、通信コントローラ7が所定の機能を実現するためのプログラムであるメインプログラムを記録する領域である。なお、このメインプログラムは、後に説明するように、アップデート専用プログラム記録領域に記録されているプログラムを最新バージョンのプログラムに書き換える処理のためのコードを含んでいる。
【0029】
メインプログラム記録領域の末尾部には、メインプログラムのバージョン情報を記録するためのバージョン情報記録領域が設けられており、このバージョン情報記録領域に記録されているバージョン情報をサーバコンピュータ2(図1参照)に格納されているメインプログラムのバージョン情報と比較することにより、メインプログラム記録領域に現在記録されているメインプログラムが最新バージョンのメインプログラムであるか否かを判断することができる。
【0030】
アップデート専用プログラム記録領域は、メインプログラム記録領域に現在記録されているメインプログラムを最新バージョンのメインプログラムに書き換える処理を行うためのプログラムであるアップデート専用プログラムを記録する領域である。アップデート専用プログラム記録領域の末尾部には、アップデート専用プログラムの書換が完了した旨又はメインプログラムの書換が完了した旨を表すシグネチャを記録するためのシグネチャ記録領域が設けられている。
【0031】
なお、アップデート専用プログラムは、メインプログラム記録領域に現在記録されているメインプログラムを最新バージョンのメインプログラムに書き換える処理に特化したプログラムであるため、そのプログラムサイズは、メインプログラムのプログラムサイズより小さい。
【0032】
次に、システム1におけるプログラム書換動作について、図1〜図5を参照しながら説明する。
図5は、サーバコンピュータ2及びCPUコア15の動作を示すフローチャートである。
CPUコア15は、起動すると、ブートプログラムを実行し、さらに、ブートプログラムからメインプログラムに処理を移し、メインプログラムを実行する(ステップS101)。なお、後に説明するように、所定の条件下では、CPUコア15が、ブートプログラムの実行後、ブートプログラムからアップデート専用プログラムに処理を移し、アップデート専用プログラムを実行する場合もある。
【0033】
CPUコア15は、UDP/IP上のTFTP(Trivial File Transfer Protocol)を用いて、最新バージョンのアップデート専用プログラムをサーバコンピュータ2に要求する。サーバコンピュータ2は、TFTPを用いて、最新バージョンのアップデート専用プログラムをCPUコア15に送信する(ステップS201)。
【0034】
CPUコア15は、サーバコンピュータ2から受信した最新バージョンのアップデート専用プログラムを、フラッシュROM17のアップデート専用プログラム記録領域内に記録する(ステップS102)。このとき、アップデート専用プログラム記録領域の末尾部のシグネチャ記録領域内には、アップデート専用プログラムの書き換えが完了した旨を表すシグネチャが記録される。シグネチャ記録領域は、アップデート専用プログラム記録領域の末尾部に設けられているため、アップデート専用プログラムの書き換えが完了した旨を表すシグネチャがシグネチャ記録領域内に記録されていることは、アップデート専用プログラムの書き換えが完了したことを保証することとなる。
【0035】
なお、何らかの理由(例えば、ネットワークトラブル等)により、アップデート専用プログラムの転送が途中で中断され、アップデート専用プログラムの書き換えが途中まで行われはしたが完了されなかった場合、アップデート専用プログラム記録領域内のアップデート専用プログラムは不完全なものとなる。しかしながら、このような場合であっても、メインプログラム記録領域内のメインプログラムは元の状態のままであり、メインプログラム記録領域内のメインプログラムには何らの影響もなく、CPUコア15の動作にも何らの影響もない。
【0036】
アップデート専用プログラムの書き換えが完了すると、CPUコア15は、再起動を行い、ブートプログラムを実行する。ここで、アップデート専用プログラム記録領域の末尾部のシグネチャ記録領域内にアップデート専用プログラムの書き換えが完了した旨を表すシグネチャが記録されているため、CPU15は、ブートプログラムからアップデート専用プログラムに処理を移し、アップデート専用プログラムを実行する(ステップS103)。
次に、CPUコア15は、最新バージョンのメインプログラムをサーバコンピュータ2に要求する。サーバコンピュータ2は、最新バージョンのメインプログラムをCPUコア15に送信する(ステップS202)。
【0037】
CPUコア15は、サーバコンピュータ2から受信した最新バージョンのメインプログラムを、フラッシュROM17のメインプログラム記録領域内に記録する(ステップS104)。
なお、ネットワークトラブル等により、メインプログラムの転送が途中で中断され、メインプログラムの書き換えが途中まで行われはしたが完了されなかった場合、メインプログラム記録領域内のメインプログラムは不完全なものとなる。しかしながら、このような場合であっても、アップデート専用プログラム記録領域内のアップデート専用プログラムは完全なものである。そのため、CPUコア15は、再起動後、再度アップデート専用プログラム記録領域内のアップデート専用プログラムを実行し、メインプログラムの書き換えを再度試みることができる。
【0038】
メインプログラムの書き換えが完了すると、CPUコア15は、メインプログラムの書き換えが完了した旨を表すシグネチャを、アップデート専用プログラム記録領域の末尾部のシグネチャ記録領域内に記録する(ステップS105)。これにより、CPUコア15は、次回再起動時に、ブートプログラムを実行し、さらに、ブートプログラムから最新バージョンのメインプログラムに処理を移し、最新バージョンのメインプログラムを実行することができる。
【0039】
このように、本実施形態によれば、アップデート専用プログラムの転送が途中で中断され、アップデート専用プログラムの書き換えが途中まで行われはしたが完了されなかった場合であっても、メインプログラム記録領域内のメインプログラムには何らの影響もないため、アップデート専用プログラムの書き換えを再度試みることができる。また、メインプログラムの転送が途中で中断され、メインプログラムの書き換えが途中まで行われはしたが完了されなかった場合であっても、アップデート専用プログラム記録領域内のアップデート専用プログラムは完全なものであるため、メインプログラムの書き換えを再度試みることができる。従って、フラッシュROM17に記録されているプログラムの書き換えを安全に行うことができる。
【0040】
なお、本実施形態においては、サーバコンピュータ2からCPUコア15へのプログラムの転送にUDP/IP上のTFTPを用いることとしている。TCP/IP、UDP/IP等の汎用プロトコルは、階層構造を有しており、プロトコルに細かい取り決め(例えば、再送信のための取り決め等)があるため、TCP/IP、UDP/IP等の汎用プロトコルを実現するためのコードは複雑であり、コードサイズも大きい。そのため、アップデート専用プログラムのプログラムサイズが大きくなり、別のフラッシュROMを用意する必要が生じたり、メインプログラム記録領域のサイズが圧迫され小さくなってしまう場合も生じ得る。
そこで、TFTPを用いることなく、IEEE802.3のパケットをそのまま用いることとしても良い(生パケットの使用)。パケットをそのまま用いることとすれば、アップデート専用プログラムのプログラムサイズを小さくすることができ、別のフラッシュROMを用意する必要を無くし、メインプログラム記録領域のサイズが圧迫され小さくなってしまうことを防止することができる。
【0041】
また、サーバコンピュータ2からCPUコア15へのプログラムの転送にUDP/IP上のTFTPを用いることとすると、TFTPが汎用のプロトコルであるため、情報処理装置3以外の他のTFTPクライアントからのTFTPパケットによってサーバコンピュータ2が誤動作し、情報処理装置3以外の他のTFTPクライアントのプログラム(ファームウェア)を書き換えてしまうことが考えられる。このようなことを防止するため、TCP/IP、UDP/IP等の上に専用プロトコルを実装することとすると、アップデート専用プログラム又はメインプログラムのプログラムサイズが大きくなってしまう。そこで、サーバコンピュータ2がネットワーク上にブロードキャストするTFTPパケットとしてTFTPの規格外のパケットを用いることとしても良い。
【0042】
図6は、サーバコンピュータ2がネットワーク上にブロードキャストするTFTPパケットの例を示す図である。図6に示すTFTPパケットは、”ABCDEFGHIJKLMNOPQ”という通常あり得ないファイル名のファイル読み込み要求(RRQ:Read ReQuest)を表しており、さらに、”XYZ”というモードはTFTPにはない。そのため、情報処理装置3以外の他のTFTPクライアントは、エラーコード1(そのようなファイル名のファイルは見つからないことを表す)又はエラーコード4(モードが不正であることを表す)をサーバコンピュータ2に返送する。一方、情報処理装置3は、図7に示すようなTFTPパケットをサーバコンピュータ2に返送する。
【0043】
図7に示すTFTPパケットは、「未定義のエラー、エラーの詳細はエラーメッセージを参照」を意味する。これは、情報処理装置3以外の他のTFTPクライアントがサーバコンピュータ2に返送するTFTPパケットと異なるので、サーバコンピュータ2は、プログラム書換対象である情報処理装置3を他のTFTPクライアントと識別することができる。
これにより、情報処理装置3以外の他のTFTPクライアントのプログラム(ファームウェア)を書き換えてしまうことを防止することができる。
【0044】
なお、図6のTFTPパケットのファイル名及び図7のTFTPパケットのエラーメッセージに、メインプログラムのバージョン情報を表す文字列を含ませることとしても良い。
【0045】
また、本実施形態においては、図4に示すように、フラッシュROM17のメインプログラム格納領域の末尾部にバージョン情報格納領域を設けている。そのため、アップデート専用プログラム実行によるメインプログラムの書き換え処理中(図5中のステップS202及びS104参照)には、バージョン情報格納領域内には書き換えられる前の古いバージョン情報が格納されており、CPUコア15は、サーバコンピュータ2からの問い合わせに対し、古いバージョン情報を返信する。従って、アップデート専用プログラム実行によるメインプログラムの書き換え処理中(メインプログラムの書き換え処理完了前)には、メインプログラム格納領域内のメインプログラムは、書き換え対象となる。
【0046】
また、アップデート専用プログラム実行によるメインプログラムの書き換え処理完了後には、バージョン情報格納領域内には書き換えられた後の最新のバージョン情報が格納されており、CPUコア15は、サーバコンピュータ2からの問い合わせに対し、最新のバージョン情報を返信する。従って、アップデート専用プログラム実行によるメインプログラムの書き換え処理完了後には、メインプログラム格納領域内のメインプログラムは、書き換え対象とならない。
【0047】
このように、本実施形態によれば、メインプログラム格納領域内のメインプログラムが書き換え対象であるか(古いバージョンのメインプログラムであるか)、書き換え対象ではないか(最新バージョンのメインプログラムであるか)を容易に管理することができる。
【0048】
また、フラッシュROM17のメインプログラム格納領域内のメインプログラムを所定サイズのブロック単位で書き換え(消去及び書き込み)を行うこととすれば、通信エラー等によってメインプログラムの途中で書き換えが中止された場合に、既に書き換え(消去及び書き込み)が行われたブロックの再書き換えを不要とすることができ、メインプログラムの書き換えを再び試みたときの書き換えに必要な時間を短くすることができるとともに、既に書き換え(消去及び書き込み)が行われたブロックの書き換え寿命が短くなることを防止することができる。
【図面の簡単な説明】
【図1】プログラム書換方法を実現するためのシステムの構成を示す図。
【図2】図1の情報処理装置の内部構成を示す図。
【図3】図2の通信コントローラの内部構成を示す図。
【図4】図3のフラッシュROMのメモリマップを示す図。
【図5】図1のシステムの動作を示すフローチャート。
【図6】送受信されるパケットのフォーマットの一例を示す図。
【図7】送受信されるパケットのフォーマットの一例を示す図。
【符号の説明】
1 システム、2 サーバコンピュータ、3 情報処理装置、4 CPU、5RAM、6 ROM、7 通信コントローラ、8 ネットワークインタフェース、11 ネットワークインタフェース部、13 バスインタフェース部、15CPUコア、17 フラッシュROM
【発明の属する技術分野】
本発明は、ネットワークを介してサーバに接続された装置の記録媒体に記録されたプログラムの書換方法に関する。さらに、本発明は、ネットワークを介してサーバに接続された装置に用いられる半導体装置に関する。
【0002】
【従来の技術】
従来より、通信コントローラ(通信用LSI)は、CPUコアと、CPUコアが実行するためのプログラム(ファームウェア)を記録するフラッシュROMとを有している。このフラッシュROMに記録されたプログラムには通信に必要なコードが含まれており、この通信に必要なコードが書き換えられた時点で通信が不可能となってしまうため、フラッシュROMに記録されているプログラムを書き換えることはできなかった。そのため、プログラムを書き換えるには、ROMライタ等を用いなければならなかった。
【0003】
しかしながら、通信コントローラが組み込まれた機器は、すぐに人の手の届くところに配置されているとは限らず、また、ネットワークから取り外すことが困難である場合もある。さらに、ネットワークに大量の機器が接続されている場合には、これら全ての機器内の通信コントローラのファームウェアを書き換えることが容易ではなかった。
【0004】
ところで、従来、特に運用中にブート処理プログラムを遠隔操作により書き換え可能とするコンピュータシステムがある(例えば、特許文献1参照)。
【0005】
【特許文献1】
特許第2940480号公報
【0006】
特許文献1に掲載されたコンピュータシステムは、少なくとも2面の不揮発性記憶デバイス、少なくとも2面の不揮発性記憶デバイスの切り替えを行う不揮発性記憶デバイスセレクタ、マルチタスクオペレーティングシステム、少なくとも2面の不揮発性記憶デバイスにおけるブート処理プログラムの書き換え状態を保持するラッチ付きレジスタ等を必要とし、少なくとも2面の不揮発性記憶デバイスを現用系不揮発性記憶デバイス及び予備系不揮発性記憶デバイスとして使用するものである。
【0007】
また、各装置の機能を停止することなく複数の装置がオンライン状態のまま一括して同時にソフトウェアのダウンロードの処理が可能なリモートソフトウェアダウンロード方式がある(例えば、特許文献2参照)。
【0008】
【特許文献2】
特開平5−158703号公報
【0009】
特許文献2に掲載されたリモートソフトウェアダウンロード方式は、ネットワークを構成する各装置が現用と予備用の2種類のEEPROMを必要とし、ネットワーク管理装置からのbroadcast型通信手段を使用して複数の装置の予備用のEEPROMにプログラムデータを書き込む第一の手段、point−to−point型通信手段を使用して第一の手段によって個々の装置の予備用EEPROMに書き込まれたプログラムデータが正常であることを確認する第二の手段、broadcast型通信手段を使用して複数の装置に現用か予備用かのEEPROMを指定して立ち上げを行わせる第三の手段、個々の装置に於いて第三の手段による立ち上げ後の異常検出時には自動的に予備用から現用のEEPROMに切り替えて再立ち上げを行う第四の手段、第二の手段と同様に個々の装置に現在運用中のEEPROMを確認する第五の手段を必要とする。
【0010】
また、シリアル通信ポート等を利用して不揮発性の書き換え可能なメモリにファームウェアの応用部分を書き込み、また書き換えることを可能とする制御装置がある(例えば、特許文献3参照)。
【0011】
【特許文献3】
特開2000−112765号公報
【0012】
特許文献3に掲載された制御装置は、ファームウェアの第1の部分に従って起動した場合に第2の記憶手段にファームウェアの第2の部分が記憶されているか否かを調べ、記憶されている場合はファームウェアの第2の部分を実行し、記憶されていない場合は待機状態を維持し、該待機状態の間またはファームウェアの第2の部分の実行中に書き込み命令が与えられた場合に、プログラムに従って外部通信手段を介してファームウェアの第2の部分を受信して第2の記憶手段に書き込み実行命令の受信を待機するものである。
【0013】
【発明が解決しようとする課題】
そこで、上記の点に鑑み、本発明は、ネットワークを介してサーバに接続された装置の記録媒体に記録されたプログラムを安全に書き換えることができるプログラム書換方法を提供することを第1の目的とする。また、本発明は、ネットワークを介してサーバに接続された装置に用いられる半導体装置を提供することを第2の目的とする。
【0014】
【課題を解決するための手段】
以上の課題を解決するため、本発明に係るプログラム書換方法は、ネットワークを介してサーバに接続された装置の記録媒体に記録されたプログラムの書換処理のための第1のプログラム及び装置において所定の機能を実現するための第2のプログラムを書き換える方法であって、装置において、第2のプログラムを実行することにより、サーバとの通信を行うステップ(a)と、サーバにおいて、新たな第1のプログラムを装置に送信するステップ(b)と、装置において、新たな第1のプログラムを記録媒体の第1の領域に記録するステップ(c)と、装置において、記録媒体の第1の領域に記録された新たな第1のプログラムを実行することにより、サーバとの通信を行うステップ(d)と、サーバにおいて、新たな第2のプログラムを装置に送信するステップ(e)と、装置において、新たな第2のプログラムを記録媒体の第2の領域に記録するステップ(f)とを具備する。
【0015】
これにより、プログラムを安全に書き換えることができる。
【0016】
また、新たな第1のプログラムが、新たな第1のプログラムの記録媒体の第1の領域への記録が完了したことを表す第1の情報を末尾部に有しており、装置において、ステップ(f)の後に、第1の情報を、新たな第2のプログラムの記録媒体の第2の領域への記録が完了したことを表す第2の情報に書き換えるステップ(g)を更に具備することとしても良い。また、記録媒体の第3の領域に装置のブート処理のための第3のプログラムが記録されており、ステップ(a)が、装置において、記録媒体の第3の領域に記録された第3のプログラムを実行し、記録媒体の第2の領域に第2の情報が記録されている場合に、記録媒体の第2の領域に記録されている第2のプログラムに制御を移すことにより、サーバとの通信を行い、ステップ(d)が、装置において、再起動後、記録媒体の第3の領域に記録された第3のプログラムを実行し、記録媒体の第2の領域に第1の情報が記録されている場合に、記録媒体の第1の領域に記録されている第1のプログラムに制御を移すことにより、サーバとの通信を行うこととしても良い。
【0017】
また、装置とサーバが、TFTP(Trivial File Transfer Protocol)においてエラーとして扱われるべきパケットで通信を行うこととしても良い。
これにより、情報処理装置3以外の他のTFTPクライアントのプログラム(ファームウェア)を書き換えてしまうことを防止することができる。
さらに、パケットが、第2のプログラムのバージョンに関する情報を含むこととしても良い。
【0018】
また、第2のプログラムが、バージョンに関する情報を末尾部に有することとしても良い。
これにより、第2の領域に記録されている第2のプログラムが書き換え対象であるか又は書き換え対象ではないかを容易に管理することができる。
【0019】
また、ステップ(b)が、サーバにおいて、IEEE802.3のパケットを用いて、新たな第1のプログラムを装置に送信し、ステップ(e)が、サーバにおいて、IEEE802.3のパケットを用いて、新たな第2のプログラムを装置に送信することとしても良い。
これにより、アップデート専用プログラムのプログラムサイズを小さくすることができる。
【0020】
また、ステップ(b)が、サーバにおいて、新たな第1のプログラムを所定のサイズのブロック単位で装置に送信し、ステップ(c)が、装置において、新たな第1のプログラムを所定のサイズのブロック単位で記録媒体の第1の領域に記録し、ステップ(e)が、サーバにおいて、新たな第2のプログラムを所定のサイズのブロック単位で装置に送信し、ステップ(f)が、装置において、新たな第2のプログラムを所定のサイズのブロック単位で記録媒体の第2の領域に記録することとしても良い。
【0021】
これにより、通信エラー等によってメインプログラムの途中で書き換えが中止された場合に、既に書き換え(消去及び書き込み)が行われたブロックの再書き換えを不要とすることができ、メインプログラムの書き換えを再び試みたときの書き換えに必要な時間を短くすることができるとともに、既に書き換え(消去及び書き込み)が行われたブロックの書き換え寿命が短くなることを防止することができる。
【0022】
また、本発明に係る半導体装置は、ネットワークを介してサーバに接続された装置に用いられる半導体装置であって、プログラムの書換処理のための第1のプログラムを記録する第1の領域及び所定の機能を実現するための第2のプログラムを記録する第2の領域を有するメモリと、メモリの第2の領域に記録された第2のプログラムを実行することによりサーバとの通信を行い、新たな第1のプログラムをサーバから受信し、新たな第1のプログラムをメモリの第1の領域に記録し、メモリの第1の領域に記録された新たな第1のプログラムを実行することによりサーバとの通信を行い、新たな第2のプログラムをサーバから受信し、新たな第2のプログラムをメモリの第2の領域に記録する処理部とを具備する。
これにより、メモリ内のプログラムを安全に書き換えることができる。
【0023】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態について説明する。
図1に、本発明の一実施形態に係るプログラム書換方法を実現するためのシステムの構成を示す。図1に示すように、システム1は、サーバコンピュータ2と、情報処理装置3とを具備する。サーバコンピュータ2と情報処理装置3は、ネットワークを介して接続されている。
サーバコンピュータ2は、情報処理装置3が実行するための最新バージョンのプログラムを格納しており、必要に応じて、この最新バージョンのプログラムを情報処理装置3に送信する。
【0024】
図2は、図1の情報処理装置3の内部構成を示す図である。図2に示すように、情報処理装置3は、CPU4と、RAM5と、ROM6と、通信コントローラ7と、ネットワークインタフェース8とを具備する。
CPU4は、RAM5を作業用領域として使用しながら、ROM6に格納されたプログラムを実行する。
【0025】
通信コントローラ7は、TCP/IPを用いた通信の物理層(例えば、IEEE802.3に規定される10Base−T等)を担うネットワークインタフェース8に接続されており、外部機器との間のTCP/IPを用いた通信を行う。
図3は、本発明の一実施形態に係る半導体装置として、図2の通信コントローラ7の内部構成を示す図である。図3に示すように、通信コントローラ7は、ネットワークインタフェース部11と、バスインタフェース部13と、CPUコア15と、フラッシュROM17とを具備する。
【0026】
ネットワークインタフェース部11は、外部機器から通信データを受け取ってCPUコア15に送り、CPUコア15から通信データを受け取って外部機器に送る。
バスインタフェース部13は、CPU4から通信データ等を受け取ってCPUコア15に送り、CPUコア15から通信データ等を受け取ってCPU4に送る。
【0027】
フラッシュROM17は、CPUコア15がTCP/IPを用いた通信等の機能を実現するためのプログラム(ファームウェア)を記録している。
図4は、フラッシュROM17のメモリマップを示す図である。図4に示すように、フラッシュROM17は、ブートセクタ(ブートプログラム記録領域)と、メインプログラム記録領域と、アップデート専用プログラム記録領域とを有する。
【0028】
ブートセクタは、通信コントローラ7の起動時に実行されるプログラムであるブートプログラムを記録する領域である。
メインプログラム記録領域は、通信コントローラ7が所定の機能を実現するためのプログラムであるメインプログラムを記録する領域である。なお、このメインプログラムは、後に説明するように、アップデート専用プログラム記録領域に記録されているプログラムを最新バージョンのプログラムに書き換える処理のためのコードを含んでいる。
【0029】
メインプログラム記録領域の末尾部には、メインプログラムのバージョン情報を記録するためのバージョン情報記録領域が設けられており、このバージョン情報記録領域に記録されているバージョン情報をサーバコンピュータ2(図1参照)に格納されているメインプログラムのバージョン情報と比較することにより、メインプログラム記録領域に現在記録されているメインプログラムが最新バージョンのメインプログラムであるか否かを判断することができる。
【0030】
アップデート専用プログラム記録領域は、メインプログラム記録領域に現在記録されているメインプログラムを最新バージョンのメインプログラムに書き換える処理を行うためのプログラムであるアップデート専用プログラムを記録する領域である。アップデート専用プログラム記録領域の末尾部には、アップデート専用プログラムの書換が完了した旨又はメインプログラムの書換が完了した旨を表すシグネチャを記録するためのシグネチャ記録領域が設けられている。
【0031】
なお、アップデート専用プログラムは、メインプログラム記録領域に現在記録されているメインプログラムを最新バージョンのメインプログラムに書き換える処理に特化したプログラムであるため、そのプログラムサイズは、メインプログラムのプログラムサイズより小さい。
【0032】
次に、システム1におけるプログラム書換動作について、図1〜図5を参照しながら説明する。
図5は、サーバコンピュータ2及びCPUコア15の動作を示すフローチャートである。
CPUコア15は、起動すると、ブートプログラムを実行し、さらに、ブートプログラムからメインプログラムに処理を移し、メインプログラムを実行する(ステップS101)。なお、後に説明するように、所定の条件下では、CPUコア15が、ブートプログラムの実行後、ブートプログラムからアップデート専用プログラムに処理を移し、アップデート専用プログラムを実行する場合もある。
【0033】
CPUコア15は、UDP/IP上のTFTP(Trivial File Transfer Protocol)を用いて、最新バージョンのアップデート専用プログラムをサーバコンピュータ2に要求する。サーバコンピュータ2は、TFTPを用いて、最新バージョンのアップデート専用プログラムをCPUコア15に送信する(ステップS201)。
【0034】
CPUコア15は、サーバコンピュータ2から受信した最新バージョンのアップデート専用プログラムを、フラッシュROM17のアップデート専用プログラム記録領域内に記録する(ステップS102)。このとき、アップデート専用プログラム記録領域の末尾部のシグネチャ記録領域内には、アップデート専用プログラムの書き換えが完了した旨を表すシグネチャが記録される。シグネチャ記録領域は、アップデート専用プログラム記録領域の末尾部に設けられているため、アップデート専用プログラムの書き換えが完了した旨を表すシグネチャがシグネチャ記録領域内に記録されていることは、アップデート専用プログラムの書き換えが完了したことを保証することとなる。
【0035】
なお、何らかの理由(例えば、ネットワークトラブル等)により、アップデート専用プログラムの転送が途中で中断され、アップデート専用プログラムの書き換えが途中まで行われはしたが完了されなかった場合、アップデート専用プログラム記録領域内のアップデート専用プログラムは不完全なものとなる。しかしながら、このような場合であっても、メインプログラム記録領域内のメインプログラムは元の状態のままであり、メインプログラム記録領域内のメインプログラムには何らの影響もなく、CPUコア15の動作にも何らの影響もない。
【0036】
アップデート専用プログラムの書き換えが完了すると、CPUコア15は、再起動を行い、ブートプログラムを実行する。ここで、アップデート専用プログラム記録領域の末尾部のシグネチャ記録領域内にアップデート専用プログラムの書き換えが完了した旨を表すシグネチャが記録されているため、CPU15は、ブートプログラムからアップデート専用プログラムに処理を移し、アップデート専用プログラムを実行する(ステップS103)。
次に、CPUコア15は、最新バージョンのメインプログラムをサーバコンピュータ2に要求する。サーバコンピュータ2は、最新バージョンのメインプログラムをCPUコア15に送信する(ステップS202)。
【0037】
CPUコア15は、サーバコンピュータ2から受信した最新バージョンのメインプログラムを、フラッシュROM17のメインプログラム記録領域内に記録する(ステップS104)。
なお、ネットワークトラブル等により、メインプログラムの転送が途中で中断され、メインプログラムの書き換えが途中まで行われはしたが完了されなかった場合、メインプログラム記録領域内のメインプログラムは不完全なものとなる。しかしながら、このような場合であっても、アップデート専用プログラム記録領域内のアップデート専用プログラムは完全なものである。そのため、CPUコア15は、再起動後、再度アップデート専用プログラム記録領域内のアップデート専用プログラムを実行し、メインプログラムの書き換えを再度試みることができる。
【0038】
メインプログラムの書き換えが完了すると、CPUコア15は、メインプログラムの書き換えが完了した旨を表すシグネチャを、アップデート専用プログラム記録領域の末尾部のシグネチャ記録領域内に記録する(ステップS105)。これにより、CPUコア15は、次回再起動時に、ブートプログラムを実行し、さらに、ブートプログラムから最新バージョンのメインプログラムに処理を移し、最新バージョンのメインプログラムを実行することができる。
【0039】
このように、本実施形態によれば、アップデート専用プログラムの転送が途中で中断され、アップデート専用プログラムの書き換えが途中まで行われはしたが完了されなかった場合であっても、メインプログラム記録領域内のメインプログラムには何らの影響もないため、アップデート専用プログラムの書き換えを再度試みることができる。また、メインプログラムの転送が途中で中断され、メインプログラムの書き換えが途中まで行われはしたが完了されなかった場合であっても、アップデート専用プログラム記録領域内のアップデート専用プログラムは完全なものであるため、メインプログラムの書き換えを再度試みることができる。従って、フラッシュROM17に記録されているプログラムの書き換えを安全に行うことができる。
【0040】
なお、本実施形態においては、サーバコンピュータ2からCPUコア15へのプログラムの転送にUDP/IP上のTFTPを用いることとしている。TCP/IP、UDP/IP等の汎用プロトコルは、階層構造を有しており、プロトコルに細かい取り決め(例えば、再送信のための取り決め等)があるため、TCP/IP、UDP/IP等の汎用プロトコルを実現するためのコードは複雑であり、コードサイズも大きい。そのため、アップデート専用プログラムのプログラムサイズが大きくなり、別のフラッシュROMを用意する必要が生じたり、メインプログラム記録領域のサイズが圧迫され小さくなってしまう場合も生じ得る。
そこで、TFTPを用いることなく、IEEE802.3のパケットをそのまま用いることとしても良い(生パケットの使用)。パケットをそのまま用いることとすれば、アップデート専用プログラムのプログラムサイズを小さくすることができ、別のフラッシュROMを用意する必要を無くし、メインプログラム記録領域のサイズが圧迫され小さくなってしまうことを防止することができる。
【0041】
また、サーバコンピュータ2からCPUコア15へのプログラムの転送にUDP/IP上のTFTPを用いることとすると、TFTPが汎用のプロトコルであるため、情報処理装置3以外の他のTFTPクライアントからのTFTPパケットによってサーバコンピュータ2が誤動作し、情報処理装置3以外の他のTFTPクライアントのプログラム(ファームウェア)を書き換えてしまうことが考えられる。このようなことを防止するため、TCP/IP、UDP/IP等の上に専用プロトコルを実装することとすると、アップデート専用プログラム又はメインプログラムのプログラムサイズが大きくなってしまう。そこで、サーバコンピュータ2がネットワーク上にブロードキャストするTFTPパケットとしてTFTPの規格外のパケットを用いることとしても良い。
【0042】
図6は、サーバコンピュータ2がネットワーク上にブロードキャストするTFTPパケットの例を示す図である。図6に示すTFTPパケットは、”ABCDEFGHIJKLMNOPQ”という通常あり得ないファイル名のファイル読み込み要求(RRQ:Read ReQuest)を表しており、さらに、”XYZ”というモードはTFTPにはない。そのため、情報処理装置3以外の他のTFTPクライアントは、エラーコード1(そのようなファイル名のファイルは見つからないことを表す)又はエラーコード4(モードが不正であることを表す)をサーバコンピュータ2に返送する。一方、情報処理装置3は、図7に示すようなTFTPパケットをサーバコンピュータ2に返送する。
【0043】
図7に示すTFTPパケットは、「未定義のエラー、エラーの詳細はエラーメッセージを参照」を意味する。これは、情報処理装置3以外の他のTFTPクライアントがサーバコンピュータ2に返送するTFTPパケットと異なるので、サーバコンピュータ2は、プログラム書換対象である情報処理装置3を他のTFTPクライアントと識別することができる。
これにより、情報処理装置3以外の他のTFTPクライアントのプログラム(ファームウェア)を書き換えてしまうことを防止することができる。
【0044】
なお、図6のTFTPパケットのファイル名及び図7のTFTPパケットのエラーメッセージに、メインプログラムのバージョン情報を表す文字列を含ませることとしても良い。
【0045】
また、本実施形態においては、図4に示すように、フラッシュROM17のメインプログラム格納領域の末尾部にバージョン情報格納領域を設けている。そのため、アップデート専用プログラム実行によるメインプログラムの書き換え処理中(図5中のステップS202及びS104参照)には、バージョン情報格納領域内には書き換えられる前の古いバージョン情報が格納されており、CPUコア15は、サーバコンピュータ2からの問い合わせに対し、古いバージョン情報を返信する。従って、アップデート専用プログラム実行によるメインプログラムの書き換え処理中(メインプログラムの書き換え処理完了前)には、メインプログラム格納領域内のメインプログラムは、書き換え対象となる。
【0046】
また、アップデート専用プログラム実行によるメインプログラムの書き換え処理完了後には、バージョン情報格納領域内には書き換えられた後の最新のバージョン情報が格納されており、CPUコア15は、サーバコンピュータ2からの問い合わせに対し、最新のバージョン情報を返信する。従って、アップデート専用プログラム実行によるメインプログラムの書き換え処理完了後には、メインプログラム格納領域内のメインプログラムは、書き換え対象とならない。
【0047】
このように、本実施形態によれば、メインプログラム格納領域内のメインプログラムが書き換え対象であるか(古いバージョンのメインプログラムであるか)、書き換え対象ではないか(最新バージョンのメインプログラムであるか)を容易に管理することができる。
【0048】
また、フラッシュROM17のメインプログラム格納領域内のメインプログラムを所定サイズのブロック単位で書き換え(消去及び書き込み)を行うこととすれば、通信エラー等によってメインプログラムの途中で書き換えが中止された場合に、既に書き換え(消去及び書き込み)が行われたブロックの再書き換えを不要とすることができ、メインプログラムの書き換えを再び試みたときの書き換えに必要な時間を短くすることができるとともに、既に書き換え(消去及び書き込み)が行われたブロックの書き換え寿命が短くなることを防止することができる。
【図面の簡単な説明】
【図1】プログラム書換方法を実現するためのシステムの構成を示す図。
【図2】図1の情報処理装置の内部構成を示す図。
【図3】図2の通信コントローラの内部構成を示す図。
【図4】図3のフラッシュROMのメモリマップを示す図。
【図5】図1のシステムの動作を示すフローチャート。
【図6】送受信されるパケットのフォーマットの一例を示す図。
【図7】送受信されるパケットのフォーマットの一例を示す図。
【符号の説明】
1 システム、2 サーバコンピュータ、3 情報処理装置、4 CPU、5RAM、6 ROM、7 通信コントローラ、8 ネットワークインタフェース、11 ネットワークインタフェース部、13 バスインタフェース部、15CPUコア、17 フラッシュROM
Claims (9)
- ネットワークを介してサーバに接続された装置の記録媒体に記録されたプログラムの書換処理のための第1のプログラム及び前記装置において所定の機能を実現するための第2のプログラムを書き換える方法であって、
前記装置において、前記第2のプログラムを実行することにより、前記サーバとの通信を行うステップ(a)と、
前記サーバにおいて、新たな第1のプログラムを前記装置に送信するステップ(b)と、
前記装置において、前記新たな第1のプログラムを前記記録媒体の第1の領域に記録するステップ(c)と、
前記装置において、前記記録媒体の第1の領域に記録された前記新たな第1のプログラムを実行することにより、前記サーバとの通信を行うステップ(d)と、
前記サーバにおいて、新たな第2のプログラムを前記装置に送信するステップ(e)と、
前記装置において、前記新たな第2のプログラムを前記記録媒体の第2の領域に記録するステップ(f)と、
を具備する方法。 - 前記新たな第1のプログラムが、前記新たな第1のプログラムの前記記録媒体の第1の領域への記録が完了したことを表す第1の情報を末尾部に有しており、
前記装置において、ステップ(f)の後に、前記第1の情報を、前記新たな第2のプログラムの前記記録媒体の第2の領域への記録が完了したことを表す第2の情報に書き換えるステップ(g)を更に具備することを特徴とする請求項1記載の方法。 - 前記記録媒体の第3の領域に前記装置のブート処理のための第3のプログラムが記録されており、
ステップ(a)が、前記装置において、前記記録媒体の第3の領域に記録された前記第3のプログラムを実行し、前記記録媒体の第2の領域に前記第2の情報が記録されている場合に、前記記録媒体の第2の領域に記録されている第2のプログラムに制御を移すことにより、前記サーバとの通信を行い、
ステップ(d)が、前記装置において、再起動後、前記記録媒体の第3の領域に記録された前記第3のプログラムを実行し、前記記録媒体の第2の領域に前記第1の情報が記録されている場合に、前記記録媒体の第1の領域に記録されている第1のプログラムに制御を移すことにより、前記サーバとの通信を行うことを特徴とする請求項2記載の方法。 - 前記装置と前記サーバが、TFTP(Trivial File Transfer Protocol)においてエラーとして扱われるべきパケットで通信を行うことを特徴とする請求項1〜3のいずれか1項に記載の方法。
- 前記パケットが、前記第2のプログラムのバージョンに関する情報を含むことを特徴とする請求項4記載の方法。
- 前記第2のプログラムが、バージョンに関する情報を末尾部に有することを特徴とする請求項1〜5のいずれか1項に記載の方法。
- ステップ(b)が、前記サーバにおいて、IEEE802.3のパケットを用いて、新たな第1のプログラムを前記装置に送信し、ステップ(e)が、前記サーバにおいて、IEEE802.3のパケットを用いて、新たな第2のプログラムを前記装置に送信することを特徴とする請求項1〜3のいずれか1項に記載の方法。
- ステップ(b)が、前記サーバにおいて、新たな第1のプログラムを所定のサイズのブロック単位で前記装置に送信し、
ステップ(c)が、前記装置において、前記新たな第1のプログラムを所定のサイズのブロック単位で前記記録媒体の第1の領域に記録し、
ステップ(e)が、前記サーバにおいて、新たな第2のプログラムを所定のサイズのブロック単位で前記装置に送信し、
ステップ(f)が、前記装置において、前記新たな第2のプログラムを所定のサイズのブロック単位で前記記録媒体の第2の領域に記録することを特徴とする請求項1〜7のいずれか1項に記載の方法。 - ネットワークを介してサーバに接続された装置に用いられる半導体装置であって、
プログラムの書換処理のための第1のプログラムを記録する第1の領域及び所定の機能を実現するための第2のプログラムを記録する第2の領域を有するメモリと、
前記メモリの第2の領域に記録された前記第2のプログラムを実行することにより前記サーバとの通信を行い、新たな第1のプログラムを前記サーバから受信し、前記新たな第1のプログラムを前記メモリの第1の領域に記録し、前記メモリの第1の領域に記録された前記新たな第1のプログラムを実行することにより前記サーバとの通信を行い、新たな第2のプログラムを前記サーバから受信し、前記新たな第2のプログラムを前記メモリの第2の領域に記録する処理部と、
を具備する半導体装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003035102A JP2004246576A (ja) | 2003-02-13 | 2003-02-13 | プログラム書換方法及び半導体装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003035102A JP2004246576A (ja) | 2003-02-13 | 2003-02-13 | プログラム書換方法及び半導体装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004246576A true JP2004246576A (ja) | 2004-09-02 |
Family
ID=33020616
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003035102A Withdrawn JP2004246576A (ja) | 2003-02-13 | 2003-02-13 | プログラム書換方法及び半導体装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004246576A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006189973A (ja) * | 2004-12-28 | 2006-07-20 | Sony Corp | 電子機器及びそのプログラムアップデート方法 |
| JP2006202200A (ja) * | 2005-01-24 | 2006-08-03 | Nec Corp | 携帯端末及びマルチプロセッサシステム並びにそのプログラム |
| JP2009169496A (ja) * | 2008-01-11 | 2009-07-30 | Panasonic Electric Works Co Ltd | 制御端末器 |
-
2003
- 2003-02-13 JP JP2003035102A patent/JP2004246576A/ja not_active Withdrawn
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006189973A (ja) * | 2004-12-28 | 2006-07-20 | Sony Corp | 電子機器及びそのプログラムアップデート方法 |
| JP2006202200A (ja) * | 2005-01-24 | 2006-08-03 | Nec Corp | 携帯端末及びマルチプロセッサシステム並びにそのプログラム |
| JP2009169496A (ja) * | 2008-01-11 | 2009-07-30 | Panasonic Electric Works Co Ltd | 制御端末器 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6390644B2 (ja) | プログラム更新システム、プログラム更新方法及びコンピュータプログラム | |
| JP2001195241A (ja) | コンピュータ | |
| US7222342B2 (en) | Execution on a machine, the start of an auxiliary downloader when storage of new software memory fails during execution of a first downloader | |
| JP2001331327A (ja) | 電子機器 | |
| JP4013040B2 (ja) | ダウンロード装置及びダウンロード方法 | |
| CN116382753A (zh) | 一种基于网络的设备固件高可靠性远程升级方法 | |
| JP2004246576A (ja) | プログラム書換方法及び半導体装置 | |
| JP6565389B2 (ja) | プリンターのファームウェア書き換え方法およびプリンター | |
| JP2002189609A (ja) | アクシデントに適応したソフトウェア更新方式および方法 | |
| JP7751730B2 (ja) | 電子制御装置及び書込制御方法 | |
| CN100484038C (zh) | 网元版本切换方法及装置 | |
| JPH10187454A (ja) | Bios書き換え方式 | |
| JPH1063497A (ja) | プログラム更新方法 | |
| JP2013192092A (ja) | 車載装置 | |
| JP2006172098A (ja) | パケット通信装置、パケット通信装置におけるリブート方法、及び、プログラム | |
| JP2003122575A (ja) | 情報処理装置 | |
| WO2020195034A1 (ja) | 車載更新装置、更新処理システム、更新処理方法及び処理プログラム | |
| JP2004054421A (ja) | メモリ、情報処理装置、記憶方法および情報処理方法 | |
| JP2000040003A (ja) | ファームウェア更新システム | |
| JP7768850B2 (ja) | 電子制御装置、リプロ実施方法及びリプロ実施プログラム | |
| JP2001053891A (ja) | 携帯端末装置のプログラム更新方法およびその装置 | |
| JP7491765B2 (ja) | ファームウェア更新システムおよびファームウェア更新方法 | |
| JP7461755B2 (ja) | 情報処理装置、プログラム更新システム、及びプログラム更新方法 | |
| JPH09160783A (ja) | プログラムダウンロード方法 | |
| JP2004110220A (ja) | プログラムの更新方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060509 |