JP5158883B2 - ファームウェア更新方法及びファームウェア更新装置 - Google Patents

ファームウェア更新方法及びファームウェア更新装置 Download PDF

Info

Publication number
JP5158883B2
JP5158883B2 JP2009187222A JP2009187222A JP5158883B2 JP 5158883 B2 JP5158883 B2 JP 5158883B2 JP 2009187222 A JP2009187222 A JP 2009187222A JP 2009187222 A JP2009187222 A JP 2009187222A JP 5158883 B2 JP5158883 B2 JP 5158883B2
Authority
JP
Japan
Prior art keywords
program
firmware update
rom
control
storage area
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.)
Expired - Fee Related
Application number
JP2009187222A
Other languages
English (en)
Other versions
JP2011039825A (ja
Inventor
篤司 山本
浩之 越
信行 加木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
THE FURUKAW ELECTRIC CO., LTD.
Original Assignee
THE FURUKAW ELECTRIC 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 THE FURUKAW ELECTRIC CO., LTD. filed Critical THE FURUKAW ELECTRIC CO., LTD.
Priority to JP2009187222A priority Critical patent/JP5158883B2/ja
Publication of JP2011039825A publication Critical patent/JP2011039825A/ja
Application granted granted Critical
Publication of JP5158883B2 publication Critical patent/JP5158883B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ファームウェア更新方法及びファームウェア更新装置に関する。
マイクロプロセッサ(CPU)等を搭載した電子機器が広く利用されるようになっている。このような電子機器には、要求される機能を実現するためにファームウェアと呼ばれるハードウェアの基本機能を制御するためのプログラムが搭載されている。電子機器の機能拡張を行う場合やプログラム上の不具合が見つかった場合には、ファームウェアの更新を行う必要がある。このようなファームウェアは、フラッシュメモリなどのROM(Read Only Memory)に格納されており、ファームウェア更新を行うためには、ROM上のプログラムデータを消去したのち、外部から更新用のプログラムデータを受信し、これをROMに書き込むといった手順が必要となる(特許文献1、2)。
ファームウェアの更新が可能なCPUの従来の構成例を図6に示す。従来のCPU901は、ROM902とRAM(Random Access Memory)903、及び外部から受信したデータを一時的に保存する受信バッファ904を備えている。ROM902は、大きく4つの領域に区分されており、第1の領域に実行用のプログラムが保存され、第2の領域にバックアップ用のプログラムが保存され、第3の領域にファームウェア更新用プログラムが保存され、さらに第4の領域にブートローダが保存されている。また、RAM903は、プログラムを実行させたときに変数の値を保存するための変数保存領域903aと、実行させるプログラムをROM902からコピーして保存するためのプログラム領域903bに区分されている。
このような構成のCPU901において、ファームウェア更新を行う従来の方法を図7の流れ図を用いて説明する。まず、ステップS91で外部からファームウェア更新命令を受信すると、ステップS92でROM902の第3の領域からファームウェア更新用プログラムを読み込み、これをRAM903のプログラム領域903bにコピーし、ステップS93でこれを起動させる。次のステップS94では、バックアップ用プログラムが保存されているROM902の第2の領域のプログラムデータを消去する。そして、ステップS95で外部から受信バッファ904に新プログラムのデータが送信される毎に、ステップS97までの処理を繰り返し行う。ステップS96では、ステップS95で受信したプログラムデータをROM902の第2の領域に書き込む。ステップS97では、新プログラムのデータ受信が終了したか否かを判定し、終了していない場合には、再びステップS95からの処理を繰り返す。一方、新プログラムの全データの受信を終了したと判定した場合には、ステップS98でCPU901を再起動して新プログラムを使用可能とする。
特開2003−108396号公報 特開2004−341781号公報
ところで、通常の電子機器では、ファームウェア更新を行っている間も、制御や通信などのサービスを継続させたいといった要望がある。また、マイクロプロセッサを組み込んだシステムにおいては、許容されるリソースが限られることが多いため、可能な限り小さな構成で所望の機能を実現させたいという要望がある。
しかしながら、図6に示すような従来のCPU構成におけるファームウェア更新方法では、ファームウェア更新用プログラムの処理にCPUが占有されていた。そのため、周辺ICの制御やデジタル演算装置との通信等が行えなくなり、所定のサービスが一時的に停止して電子機器の性能を満たすことができなくなってしまうといった問題があった。
また、図8に示すように、RAM913には変数保存領域のみが設けられ、ROM912に保存されているプログラムは、RAM913にコピーされることなくROM912上で動作するように構成されている場合には、ROM912に保存されているファームウェア更新用プログラムをROM912上で動作させながら、同じROM912上のバックアップ用プログラムが保存されている領域のプログラムデータを書き換えることになる。そのため、ROM912には、プログラムの実行とプログラムデータの書き換えが並行して行えるようなROMを用いなければならないといった問題がある。
図8に示すような構成のCPU911において、プログラムの実行とプログラムデータの書き換えを並行して行えないROMを用いる場合には、図9に示すように、受信した新プログラムのデータを一時的に保存するメモリ925を追加する必要がある。そして、ROM912でファームウェア更新用プログラムを実行させ、新プログラムのデータを受信するとこれを一時的にメモリ925に保存し、プログラムデータの受信を完了した時点でメモリ925に保存したデータを一括してROM912に書き込むようにする必要がある。このような方法では、メモリ925を追加する必要があるため、コストアップ及び電子機器のサイズアップにつながるといった問題があった。
そこで、本発明はこのような問題を解決するためになされたものであり、CPUの動作に必要な最小限の構成で、周辺ICの制御・通信の主要機能を停止させることなく、ファームウェア更新を行うことが可能なファームウェア更新方法及びファームウェア更新装置を提供することを目的とする。
本発明のファームウェア更新方法の第1の態様は、ファームウェア更新用プログラムと、所定の処理を行う動作プログラムと、周辺ICの制御・通信を処理する制御・通信プログラムと、がROMに格納されており、前記動作プログラムと前記制御・通信プログラムのいずれか一方または両方を前記ファームウェア更新用プログラムを用いて新プログラムに書き換えることでファームウェア更新を行うファームウェア更新方法であって、前記制御・通信プログラムを、所定のタイミングで前記ROMからRAM(Random Access Memory)にコピーして実行、または予め前記ROMから前記RAMにコピーして常駐させて実行し、前記ファームウェア更新用プログラムが前記ROMから前記RAMの前記制御・通信プログラムとは別の領域にコピーされて実行を開始すると、前記新プログラムの受信中、前記ROMの所定の保存領域のデータ消去中、及び前記保存領域への前記新プログラムの書き込み中、のそれぞれの期間を含む前記ファームウェア更新用プログラムの処理が前記RAMで行われていない期間だけプログラムカウンタを前記制御・通信プログラムに切り替えることで、前記制御・通信プログラムと前記ファームウェア更新用プログラムとを並行して実行させることを特徴とする。
本発明のファームウェア更新方法の他の態様は、前記ROMは、前記動作プログラム及び前記制御・通信プログラムとして、それぞれ実行用とバックアップ用の2種類のプログラムを異なる保存領域に格納しており、前記ファームウェア更新用プログラムは、更新対象の前記バックアップ用動作プログラムまたは/及び前記バックアップ用制御・通信プログラムを前記新プログラムに書き換えることを特徴とする。
本発明のファームウェア更新方法の他の態様は、前記ROMは、さらにブートローダを格納しており、前記ファームウェア更新用プログラムが、前記新プログラムの保存領域の情報を含むファームウェア更新情報を前記ROMまたは前記RAMに保存しておき、前記新プログラムへの書き換え終了後の再起動時に、前記ブートローダが前記ファームウェア更新情報をもとに前記動作プログラムと前記制御・通信プログラムのそれぞれの実行用とバックアップ用のプログラムの保存領域の情報を更新することを特徴とする。
本発明のファームウェア更新方法の他の態様は、前記ファームウェア更新用プログラムは、前記ファームウェア更新中に異常が発生したことを検出するデータ異常検出手段を備え、前記データ異常検出手段により前記ROMに保存された前記新プログラムのデータ異常が検出されると、前記保存領域の情報を更新しないことを特徴とする。
本発明のファームウェア更新装置の第1の態様は、ファームウェア更新用プログラムと所定の処理を行う動作プログラムと周辺ICの制御・通信を処理する制御・通信プログラムとを格納したROMと、実行させるプログラムを前記ROMからコピーして保存するRAMと、を有するCPUのファームウェア更新を行うファームウェア更新装置であって、前記ROMの所定の保存領域のデータを消去するROMデータ消去手段と、外部から更新用の新プログラムを受信する受信手段と、前記受信手段から前記新プログラムを入力して前記ROMの所定の保存領域に書き込むROMデータ書込手段と、前記ROMデータ消去手段により前記動作プログラムまたは/及び前記制御・通信プログラムのバックアップ用プログラムを保存している保存領域のプログラムデータを消去した後に、前記受信手段と前記ROMデータ書込手段とを交互に実行して前記保存領域に前記新プログラムを書き込むファームウェア更新手段と、を備え、前記制御・通信プログラムは、所定のタイミングで前記ROMからRAMにコピーされて実行、または予め前記ROMから前記RAMにコピーされて常駐して実行され、前記ファームウェア更新用プログラムが前記ROMから前記RAMの前記制御・通信プログラムとは別の領域にコピーされて実行を開始すると、ファームウェア更新手段は、前記受信手段による前記新プログラムの受信中、前記ROMデータ消去手段による前記保存領域のデータ消去中、及び前記ROMデータ書込手段による前記保存領域への前記新プログラムの書き込み中、のそれぞれの期間を含む前記ファームウェア更新の処理が前記RAMで行われていない期間に、プログラムカウンタを前記制御・通信プログラムに切り替えることで、前記制御・通信プログラムと前記ファームウェア更新とを並行して実行させる
ことを特徴とする。
本発明によれば、1つのROMと1つのRAMというCPUの動作に必要な最小限の構成で、周辺ICの制御・通信の主要機能を停止させることなく、ファームウェア更新を行うことが可能なファームウェア更新方法及びファームウェア更新装置を提供するを提供することが可能となる。
第1の実施形態のファームウェア更新装置の構成を示すブロック図である。 第1の実施形態のファームウェア更新方法による処理手順を示す流れ図である。 ブートローダによる再起動後の処理手順を示す流れ図である。 第2の実施形態のファームウェア更新装置の構成を示すブロック図である。 第2の実施形態のファームウェア更新方法による処理手順を示す流れ図である。 従来のファームウェア更新装置の構成を示すブロック図である。 従来のファームウェア更新方法による処理手順を示す流れ図である。 従来の別のファームウェア更新装置の構成を示すブロック図である。 従来のさらに別のファームウェア更新装置の構成を示すブロック図である。
本発明の好ましい実施の形態におけるファームウェア更新方法及びファームウェア更新装置の構成について、図面を参照して以下に詳細に説明する。なお、同一機能を有する各構成部については、図示及び説明簡略化のため、同一符号を付して示す。
本発明の第1の実施の形態に係るファームウェア更新方法及びファームウェア更新装置を、図1を用いて説明する。図1は、本実施形態のファームウェア更新装置の構成を示すブロック図である。本実施形態のファームウェア更新装置は、CPU等を搭載した電子機器に適用することができ、該電子機器が有する機能を実行するための動作プログラムや、周辺ICの制御・通信等を処理するための制御・通信プログラムを更新するのに用いられる。
図1では、CPU101が不揮発メモリのROM110と揮発メモリのRAM(Random Access Memory)120を1つずつ備えており、本実施形態ではこのような構成のCPU101を対象としたファームウェア更新方法を提供する。CPU101は、外部から受信したデータを一時的に保存するために、さらに受信バッファ130を備えている。また、CPU101には所定の信号線路で周辺ICが接続されており、本実施形態で対象とするCPU101は周辺ICの制御等を行っている。図1では、周辺ICの一例として、D/Aコンバータ21、A/Dコンバータ22、及びデジタル演算装置23がCPU101に接続されているものとしている。

CPU101では、電子機器の機能を実現する動作プログラムや、周辺ICの制御・通信を処理する制御・通信プログラムが、所定の周期あるいは必要に応じて適宜実行される。これらの動作プログラムや制御・通信プログラムはROM110に保存されており、必要なときにRAM120にコピーして実行される。ROM110には、動作プログラムを保存するための第1保存領域111と第2保存領域112が設けられており、図1では第1保存領域111に実行用のプログラムが保存され、第2保存領域112にはバックアップ用のプログラムが保存されている。実行用プログラムとバックアップ用プログラムの保存領域は、動作プログラムの更新毎に第1保存領域111と第2保存領域112との間で交互に入れ替わる。同様に、制御・通信プログラムを保存するための第3保存領域113と第4保存領域114が設けられており、図1では第3保存領域113に実行用のプログラムが保存され、第4保存領域114にはバックアップ用のプログラムが保存されている。ここでも、実行用プログラムとバックアップ用プログラムの保存領域は、制御・通信プログラムの更新毎に第3保存領域111と第4保存領域112との間で交互に入れ替わる。
さらにROM110には、動作プログラムや制御・通信プログラムを更新するのに用いるファームウェア更新用プログラムを保存するための第5保存領域115と、CPU101の起動時に所定の処理を行うブートローダを保存するための第6保存領域116も設けられている。
RAM120は、各プログラムを演算処理するときに用いるメモリであり、演算に用いられる変数の値を保存するための変数保存領域121と、処理対象のプログラムを保存するためのプログラム領域122とで構成されている。
CPU101では、制御・通信プログラムが所定の周期あるいは必要に応じて適宜実行されることから、本実施形態のファームウェア更新方法では、ファームウェア更新用プログラムを実行して動作プログラムまたは/及び制御・通信プログラムの更新を行っている間も、制御・通信プログラムを継続して実行できるようにしている。すなわち、ファームウェアの更新が要求されると、ファームウェア更新用プログラムの実行と制御・通信プログラムの実行とを並行して行えるようにするために、ROM110の第5領域115に保存されているファームウェア更新用プログラムと第3領域113に保存されている制御・通信プログラム(実行用)の両方を、RAM120のプログラム領域122にコピーして保存させる。
図1では、制御・通信プログラムがプログラム領域122aにコピーして保存され、ファームウェア更新用プログラムがプログラム領域122bにコピーして保存されている。本実施形態では、ファームウェア更新用プログラムの実行アドレスと制御・通信プログラムの実行アドレスとを、プログラムカウンタに適宜入れ替えながら両方のプログラムを並行して実行させる構成としている。
ファームウェアの更新は、外部からのファームウェア更新命令を受けて開始される。図1に示す実施形態では、一例としてCPU101に上位装置10が接続されており、上位装置10から送信されたファームウェア更新命令が受信バッファ130に書き込まれると、CPU101ではファームウェア更新を開始するための準備が行われる。すなわち、ファームウェア更新用プログラムを実行可能とするために、ROM110の第5領域115からファームウェア更新用プログラムが読み出されてRAM120のプログラム領域122bにコピーされる。また、それと同時に、制御・通信プログラムが第3領域113から読み出されてプログラム領域122aにコピーされる。なお、制御・通信プログラムについては、起動時等に予め第3領域113から読み出してプログラム領域122aに保存しておくことで、これをプログラム領域122aに常駐させるようにしてもよい。
ファームウェア更新用プログラムがRAM120のプログラム領域122bに保存されると、プログラム領域122bのファームウェア更新用プログラムのアドレスがプログラムカウンタに設定される。これにより、CPU101ではプログラムカウンタに設定されたファームウェア更新用プログラムの実行が開始される。ファームウェア更新用プログラムは、ROMデータ消去手段141とROMデータ書込手段142を有しており、これらを用いてファームウェアの更新を実行する。
本実施形態のファームウェア更新方法では、外部から入力する新プログラムが、ROM110のバックアップ用プログラムが保存されている第2保存領域112または第4保存領域114に保存される。そのため、ファームウェア更新用プログラムの実行が開始されると、まず、ROM110の第2保存領域112及び第4保存領域114のうち、更新対象のプログラムが保存されている領域のバックアップ用プログラムデータを、ROMデータ消去手段141を用いて消去する。
更新対象のバックアップ用プログラムデータが消去されると、以降のファームウェア更新用プログラムの処理では、上位装置10から新プログラムのデータが送信されて受信バッファに書き込まれる毎に、ROMデータ書込手段142を用いて送信されたデータをROM110のデータ消去された領域に書き込む。新プログラムのデータを受信してROM110に書き込まれるまでの間に、何らかの異常が発生しないかを監視するデータ異常検出手段143をファームウェア更新用プログラムに設けるのが好ましい。このようなデータ異常検出手段143として、例えばチェックサムのような方法を用いることができる。
一方、RAM120のプログラム領域122aに書き込まれた制御・通信プログラムは、ファームウェア更新用プログラムの処理がCPU101で行われていない時間帯に、プログラムカウンタに制御・通信プログラムのアドレスを設定することにより、所定の周期あるいは必要に応じて適宜実行される。このような時間帯として、ROMデータ消去手段141によるROMデータの消去が行われている期間、上位装置10から新プログラムのデータを受信している期間、及びROMデータ書込手段142によりROM110の所定の領域にデータが書き込まれている期間、等がある。このような時間帯に制御・通信プログラムが実行されることにより、D/Aコンバータ21、A/Dコンバータ22、及びデジタル演算装置23などの周辺ICの制御・通信処理も並行して実行されることになる。
新プログラムのデータ受信がすべて終了してROMデータ書込手段142によるROM110への書き込みが完了すると、所定のファームウェア更新情報がROM110またはRAM120の所定の位置に記録される。ファームウェア更新情報の記録位置として、図1ではRAM120の変数保存領域121の特定の位置121aに保存させるものとしている。ファームウェア更新情報には、少なくともROM110の第1保存領域111〜第4保存領域114のうち新プログラムが書き込まれた領域の情報が含まれている。また、データ異常検出手段143による異常検出結果もファームウェア更新情報に含めるようにするのがよい。ファームウェア更新情報が特定の位置121aに保存された後、プログラムカウンタにブートローダのアドレスが設定され、これによりCPU101の再起動が行われる。
CPU101の再起動が行われると、ブートローダは、RAM120の特定の位置121aに保存されているファームウェア更新情報を入力し、これをもとに新プログラムが保存されているROM110上の領域と、ファームウェア更新前に実行用であったプログラムが保存されている領域を判定する。ここで、データ異常検出手段143による異常検出結果として異常が検出されなかった場合には、新プログラムが保存されている領域を実行用プログラム保存領域とし、ファームウェア更新前に実行用であったプログラムの保存領域をバックアップ用プログラム保存領域とする。これに対し、データ異常検出手段143による異常検出結果として異常が検出されている場合には、新プログラムが保存された領域をバックアップ用プログラム保存領域のままとし、ファームウェア更新前に実行用のプログラムを保存していた領域も実行用プログラム保存領域のままとする。
以下では、ファームウェア更新の一例として、動作プログラムが更新された場合について説明する。この場合、上位装置10から動作プログラムを対象とするファームウェア更新命令を受信すると、ROM110の第5領域115からファームウェア更新用プログラムが読み出され、RAM120のプログラム領域122bにコピーされる。そして、プログラムカウンタにファームウェア更新用プログラムのアドレスが設定されて実行が開始される。ファームウェア更新用プログラムの実行が開始されると、まずROMデータ消去手段141を用いて動作プログラムのバックアップ用プログラムが保存されている第2保存領域112のデータが消去される。
第2保存領域112のデータ消去が終了すると、上位装置10から新プログラムのデータが受信される毎に、ROMデータ書込手段142を用いて受信したデータをROM110の第2保存領域112に書き込む。この間も、制御・通信プログラムは、所定の周期または必要に応じて適宜実行される。データ異常検出手段143により異常が検出されることなく新プログラムのROM110への書き込みが完了すると、新プログラムの保存領域はROM110の第2保存領域112であることを示す情報をファームウェア更新情報としてRAM120上の特定の位置121aに保存する。これにより、ブートローダは再起動後に、新プログラムが保存されているROM110の第2保存領域112を実行用の動作プログラムが保存されている領域と判定し、第1領域111をバックアップ用プログラムの保存領域と判定する。
なお、上記では再起動後に実行用のプログラム保存領域とバックアップ用プログラム保存領域を判定するようにしているが、この判定を新プログラムのROM110への書き込み完了直後に行わせるようにすることも可能である。すなわち、新プログラムのROM110への書き込み完了後に、データ異常検出手段143により異常が検出されたかを判定する。その結果、異常が検出されなかった場合には、新プログラムの保存領域を示すファームウェア更新情報をRAM120上の特定の位置121aに保存させる。これに対し、データ異常検出手段143により異常が検出された場合には、RAM120上の特定の位置121aに保存されているファームウェア更新情報を変更せず、図1に示したROM110のプログラム保存構成を維持させる。
以下では、図2を用いて本実施形態のファームウェア更新方法を説明する。図2は、本実施形態のファームウェア更新方法による処理手順を示す流れ図である。まず、図2(a)に示すステップS1において、上位装置10からファームウェア更新命令を受信する。これにより、ステップS2ではROM110の第5領域115に保存されているファームウェア更新用プログラムが、RAM120上のプログラム領域122bにコピーされる。また、必要に応じて制御・通信プログラムも第3領域113からプログラム領域122aにコピーされる。ステップS3では、プログラム領域122bのファームウェア更新用プログラムのアドレスがプログラムカウンタに設定されることにより、ファームウェア更新用プログラムが起動される。
ファームウェア更新用プログラムが起動された後は、図2(b)に示す処理が行われる。まず、ステップS11では、更新対象のプログラムのバックアップ用プログラムが保存されているROM110上の領域(図1の第2保存領域112または第4保存領域114)のデータを、ROMデータ消去手段141を用いて消去する。ROMデータ消去手段141によるデータ消去が開始されると、ステップS12でデータ消去の終了が判定されるまでの間、ステップS21において制御・通信プログラムが実行される。制御・通信プログラムは、所定の周期あるいは必要に応じて適宜実行される。
ステップS12でデータ消去の終了が判定されると、次のステップS13で上位装置10からの新プログラムデータの受信を開始する。そして、ステップS14で新プログラムデータの受信終了が判定されるまでの間、ステップS22において制御・通信プログラムが実行される。また、ステップS14で新プログラムデータの受信終了が判定されると、ステップS15で受信データのROM110上の所定の保存領域への書き込みが開始される。そして、ステップS16で受信データのROM110への書込み完了が判定されるまでの間、ステップS23において制御・通信プログラムが実行される。また、ステップS16で受信データの書込み終了が判定されると、次のステップS17に進む。
ステップS17では、上位装置10から新プログラムのデータをすべて受信したかを判定する。これは、上位装置10から新プログラムのデータをすべて送信した後に所定の送信完了信号を送信させることにより、この送信完了信号を受信したことを確認することで行える。ステップS17で受信が完了していないと判定されると、ステップS13に戻って再び新プログラムのデータ受信を開始する。一方、ステップS17で受信完了が判定されると、ステップS18において、所定のファームウェア更新情報がRAM120上の特定の位置121aに記録される。そして、次のステップS19において、ブートローダによりCPU101の再起動が行われる。
つぎに、ブートローダによる再起動後の処理を、図3に示す流れ図を用いて説明する。ステップS31でブートローダによる再起動が行われると、ステップS32でファームウェア更新情報をRAM120上の特定の位置121aから入力する。ステップS33では、ファームウェア更新情報に含まれているデータ異常検出手段143による異常検出結果を判定する。その結果、異常が検出されなかったと判定された場合には、ファームウェア更新後のROM110の保存領域の構成に従って制御・通信プログラムをRAM120にコピーして実行させる。
すなわち、ステップS34では、制御・通信プログラムをROM110の所定の保存領域(制御・通信プログラムが更新されているときは第4保存領域114、更新されていないときは第3保存領域113)からRAM120にコピーする。その後、ステップS35で更新後の実行用動作プログラムの開始アドレスをプログラムカウンタにセットすることによりサービスを開始する。なお、RAM110上の変数保存領域121のメモリマップを固定化、すなわち変数保存領域121における各変数の保存位置を固定化することによって、更新後の新プログラムにおいても更新前のプログラムによる処理結果から継続して処理させることが可能となる。
一方、ステップS33で異常が検出されたと判定された場合には、ファームウェア更新前のROM110の保存領域の構成に従ってプログラムをRAM120にコピーして実行させる。すなわち、ステップS36では、制御・通信プログラムをROM110の第3保存領域113からRAM120にコピーして実行させる。また、ステップS37で動作プログラムを実行させる場合には、更新前の実行用動作プログラムの開始アドレスをプログラムカウンタにセットすることによりサービスを開始する。
上記説明のように、本実施形態のファームウェア更新方法及びファームウェア更新装置によれば、1つのROMと1つのRAMというCPUの動作に必要な最小限の構成で、周辺ICの制御・通信の主要機能を停止させることなく、ファームウェア更新を行うことが可能となる。
本発明の第2の実施の形態に係るファームウェア更新方法及びファームウェア更新装置を、図4を用いて説明する。図4は、本実施形態のファームウェア更新装置の構成を示すブロック図である。本実施形態のファームウェア更新装置では、RAM220のプログラム領域222が予め制御・通信プログラム保存領域222a、ファームウェア更新用プログラム保存領域222b、及び必要に応じて動作プログラムをコピーして保存させるための動作プログラム保存領域222cに区分されている。そして、制御・通信プログラム保存領域222a及びファームウェア更新用プログラム保存領域222bには、それぞれ制御・通信プログラム及びファームウェア更新用プログラムが予めROM110の第3保存領域113及び第5領域からコピーされて保存されている。このRAM220への保存は、CPU101の起動/再起動時に行われる。
ファームウェア更新用プログラムを予めRAM220のファームウェア更新用プログラム保存領域222bに保存しておくことで、本実施形態では、上位装置10からファームウェア更新命令を受信すると、ファームウェアの更新を直ちに開始することが可能となる。本実施形態のファームウェア更新方法を、図5を用いて説明する。図5は、本実施形態のファームウェア更新方法による処理手順を示す流れ図である。図5に示す本実施形態のファームウェア更新方法は、図2に示した第1の実施形態のファームウェア更新方法と比べて、ステップS2のファームウェア更新用プログラムのROM110からRAM120へコピーする処理が省略されている。このように、ファームウェア更新用プログラムをRAM120にコピーする手間を省略することで、制御・通信プログラムの実行に影響を与えることなく、ファームウェア更新を実行することが可能となる。
本発明のファームウェア更新方法及びファームウェア更新装置によれば、1つのROMと1つのRAMというCPUの動作に必要な最小限の構成で、周辺ICの制御・通信の主要機能を停止させることなく、ファームウェア更新を行うことが可能となる。また、動作させる必要のある制御・通信プログラム及びファームウェア更新用プログラムをRAM上にコピーして実行させる構成としていることから、保存しているプログラムを動作させながら別のプログラムの書き換えを行うことができないROMに対しても、実行用のプログラムをバックアップ用として残しながらファームウェアの更新を行うことが可能となる。
なお、本実施の形態における記述は、本発明に係るファームウェア更新方法及びファームウェア更新装置の一例を示すものであり、これに限定されるものではない。本実施の形態におけるファームウェア更新方法等の細部構成及び詳細な動作等に関しては、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
10 上位装置
21 D/Aコンバータ
22 A/Dコンバータ
23 デジタル演算装置
101 CPU
110 ROM
111 第1保存領域
112 第2保存領域
113 第3保存領域
114 第4保存領域
120、220 RAM
121、221 変数保存領域
122、222 プログラム領域
130 受信バッファ
141 ROMデータ消去手段
142 ROMデータ書込手段
143 データ異常検出手段

Claims (5)

  1. ファームウェア更新用プログラムと、所定の処理を行う動作プログラムと、周辺ICの制御・通信を処理する制御・通信プログラムと、がROM(Read Only Memory)に格納されており、前記動作プログラムと前記制御・通信プログラムのいずれか一方または両方を前記ファームウェア更新用プログラムを用いて新プログラムに書き換えることでファームウェア更新を行うファームウェア更新方法であって、
    前記制御・通信プログラムを、所定のタイミングで前記ROMからRAM(Random Access Memory)にコピーして実行、または予め前記ROMから前記RAMにコピーして常駐させて実行し、
    前記ファームウェア更新用プログラムが前記ROMから前記RAMの前記制御・通信プログラムとは別の領域にコピーされて実行を開始すると、前記新プログラムの受信中、前記ROMの所定の保存領域のデータ消去中、及び前記保存領域への前記新プログラムの書き込み中、のそれぞれの期間を含む前記ファームウェア更新用プログラムの処理が前記RAMで行われていない期間だけプログラムカウンタを前記制御・通信プログラムに切り替えることで、前記制御・通信プログラムと前記ファームウェア更新用プログラムとを並行して実行させる
    ことを特徴とするファームウェア更新方法。
  2. 前記ROMは、前記動作プログラム及び前記制御・通信プログラムとして、それぞれ実行用とバックアップ用の2種類のプログラムを異なる保存領域に格納しており、
    前記ファームウェア更新用プログラムは、更新対象の前記バックアップ用動作プログラムまたは/及び前記バックアップ用制御・通信プログラムを前記新プログラムに書き換える
    ことを特徴とする請求項1に記載のファームウェア更新方法。
  3. 前記ROMは、さらにブートローダを格納しており、
    前記ファームウェア更新用プログラムが、前記新プログラムの保存領域の情報を含むファームウェア更新情報を前記ROMまたは前記RAMに保存しておき、
    前記新プログラムへの書き換え終了後の再起動時に、前記ブートローダが前記ファームウェア更新情報をもとに前記動作プログラムと前記制御・通信プログラムのそれぞれの実行用とバックアップ用のプログラムの保存領域の情報を更新する
    ことを特徴とする請求項2に記載のファームウェア更新方法。
  4. 前記ファームウェア更新用プログラムは、前記ファームウェア更新中に異常が発生したことを検出するデータ異常検出手段を備え、
    前記データ異常検出手段により前記ROMに保存された前記新プログラムのデータ異常が検出されると、前記保存領域の情報を更新しない
    ことを特徴とする請求項3に記載のファームウェア更新方法。
  5. ファームウェア更新用プログラムと所定の処理を行う動作プログラムと周辺ICの制御・通信を処理する制御・通信プログラムとを格納したROMと、実行させるプログラムを前記ROMからコピーして保存するRAMと、を有するCPUのファームウェア更新を行うファームウェア更新装置であって、
    前記ROMの所定の保存領域のデータを消去するROMデータ消去手段と、
    外部から更新用の新プログラムを受信する受信手段と、
    前記受信手段から前記新プログラムを入力して前記ROMの所定の保存領域に書き込むROMデータ書込手段と、
    前記ROMデータ消去手段により前記動作プログラムまたは/及び前記制御・通信プログラムのバックアップ用プログラムを保存している保存領域のプログラムデータを消去した後に、前記受信手段と前記ROMデータ書込手段とを交互に実行して前記保存領域に前記新プログラムを書き込むファームウェア更新手段と、を備え、
    前記制御・通信プログラムは、所定のタイミングで前記ROMからRAMにコピーされて実行、または予め前記ROMから前記RAMにコピーされて常駐して実行され、
    前記ファームウェア更新用プログラムが前記ROMから前記RAMの前記制御・通信プログラムとは別の領域にコピーされて実行を開始すると、
    ファームウェア更新手段は、前記受信手段による前記新プログラムの受信中、前記ROMデータ消去手段による前記保存領域のデータ消去中、及び前記ROMデータ書込手段による前記保存領域への前記新プログラムの書き込み中、のそれぞれの期間を含む前記ファームウェア更新の処理が前記RAMで行われていない期間に、プログラムカウンタを前記制御・通信プログラムに切り替えることで、前記制御・通信プログラムと前記ファームウェア更新とを並行して実行させる
    ことを特徴とするファームウェア更新装置
JP2009187222A 2009-08-12 2009-08-12 ファームウェア更新方法及びファームウェア更新装置 Expired - Fee Related JP5158883B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009187222A JP5158883B2 (ja) 2009-08-12 2009-08-12 ファームウェア更新方法及びファームウェア更新装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009187222A JP5158883B2 (ja) 2009-08-12 2009-08-12 ファームウェア更新方法及びファームウェア更新装置

Publications (2)

Publication Number Publication Date
JP2011039825A JP2011039825A (ja) 2011-02-24
JP5158883B2 true JP5158883B2 (ja) 2013-03-06

Family

ID=43767520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009187222A Expired - Fee Related JP5158883B2 (ja) 2009-08-12 2009-08-12 ファームウェア更新方法及びファームウェア更新装置

Country Status (1)

Country Link
JP (1) JP5158883B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7042406B2 (ja) * 2020-11-16 2022-03-28 株式会社オートネットワーク技術研究所 車載装置、制御プログラム及びメモリ共有方法
CN112698857B (zh) * 2021-01-04 2023-09-19 潍柴动力股份有限公司 一种数据刷写的方法及设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2812189B2 (ja) * 1994-02-10 1998-10-22 日本電気株式会社 プログラムダウンロード方法
JP3544769B2 (ja) * 1995-12-15 2004-07-21 株式会社東芝 ボタン電話装置
JP2000132042A (ja) * 1998-10-23 2000-05-12 Ricoh Co Ltd 画像形成装置
JP2003108396A (ja) * 2001-09-27 2003-04-11 Toshiba Corp ソフトウェア更新システム及びソフトウェア更新方法
JP2004341781A (ja) * 2003-05-15 2004-12-02 Matsushita Electric Ind Co Ltd ファームウエア更新方法、ファームウエア更新装置およびフラッシュrom
JP2005011214A (ja) * 2003-06-20 2005-01-13 Denso Corp 電子システムの検査工程時におけるアプリケーションソフト書込み方法
JP4859465B2 (ja) * 2006-01-11 2012-01-25 ソニー・エリクソン・モバイルコミュニケーションズ株式会社 ソフトウェア更新方法および移動端末装置

Also Published As

Publication number Publication date
JP2011039825A (ja) 2011-02-24

Similar Documents

Publication Publication Date Title
CN101026848B (zh) 移动终端和软件更新方法
JP3838840B2 (ja) コンピュータ
JP6070360B2 (ja) 情報処理装置およびその処理方法
JP2008504628A (ja) 安全なフラッシング
WO2019123747A1 (ja) 自動車用電子制御装置及びその制御方法
JPWO2015098811A1 (ja) 電子機器
JP5158883B2 (ja) ファームウェア更新方法及びファームウェア更新装置
JP2002244877A (ja) プリンタ装置およびそのプログラム更新方法
JP5084853B2 (ja) ファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラム
JP2019008693A (ja) 自動車用制御装置
JP2011164827A (ja) フラッシュメモリを備えた電子機器およびフラッシュメモリに格納されたプログラムの更新方法
JP5133230B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
JPWO2012077604A1 (ja) 処理装置、プログラム更新方法、およびプログラム
JP2002175193A (ja) プログラム書き換え装置及びプログラム書き換え方法
KR102434126B1 (ko) Plc 프로그램 처리 장치
JP6676791B2 (ja) 情報処理装置
JP2002007152A (ja) ダウンロード方法および装置
JP6334776B1 (ja) 電子制御装置
JP4910402B2 (ja) 不揮発性メモリの書き換え装置及び書き換え方法
KR20090021695A (ko) 플래쉬 메모리 롤백 시스템 및 그 방법
JP2014112419A (ja) 携帯端末装置、ソフトウェア更新方法、動作制御方法及びプログラム
JP5981477B2 (ja) フラッシュメモリ制御装置、フラッシュメモリ内蔵機器、フラッシュメモリ制御方法、及びそのためのプログラム
JP4517607B2 (ja) 電子機器及びそのプログラム更新方法
JP2017123017A (ja) 電子機器およびプログラム更新方法
JP2007084232A (ja) エレベータ制御プログラム更新装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110701

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120824

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121022

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: 20121119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121207

R151 Written notification of patent or utility model registration

Ref document number: 5158883

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151221

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees