JP2004192329A - Program rewriting method and terminal device - Google Patents
Program rewriting method and terminal device Download PDFInfo
- Publication number
- JP2004192329A JP2004192329A JP2002359408A JP2002359408A JP2004192329A JP 2004192329 A JP2004192329 A JP 2004192329A JP 2002359408 A JP2002359408 A JP 2002359408A JP 2002359408 A JP2002359408 A JP 2002359408A JP 2004192329 A JP2004192329 A JP 2004192329A
- Authority
- JP
- Japan
- Prior art keywords
- program
- control program
- rewriting
- area
- terminal device
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、制御プログラムを書換え可能な端末装置およびその制御プログラムの書換え方法に関するものである。
【0002】
【従来の技術】
プリンタや、ネットワーク機器などの装置は、内部に備えられた不揮発性メモリに記憶された制御プログラムにより実行される。この制御プログラムは、各種初期化プログラムや、必要なデータなど、装置を実行させるために必要なプログラム群(データも含む。以下同じ)から構成されるものである。装置の電源が入れられたとき、不揮発性メモリに記憶された制御プログラムは、装置に備えられた、RAMと呼ばれる揮発性メモリにコピー(ロード)され、装置を実行させる。
【0003】
不揮発性メモリとは、電源が切れても記憶した内容を保持することができるメモリのことであり、装置の制御プログラムを記憶する不揮発性メモリとしてROMが用いられている。ROMにはマスクROMとPROMに大別され、マスクROMは、LSIの製造過程で記憶内容をチップに焼き付けてなるもので、その記憶内容を書き換えることができないが、PROMはユーザが自由に記憶内容を書き換えることができるものである。
【0004】
従来、大量生産の場合にコストが安いとの利点から、装置の制御プログラムを記憶する不揮発性メモリとしてマスクROMが利用されてきた。しかし、工場出荷時にインプットされている制御プログラムは、バグの排除や、機能の増減や、仕様変更などのために、しばしば出荷後にバージョンアップされる必要がある。マスクROMの場合、制御プログラムをバージョンアップするには、このマスクROMが備えられた装置および関連装置の電源を切り、ROMを装置から外し、新しい制御プログラムのインプットされたROMと交換するようにして制御プログラムのバージョンアップを行うので、メーカ側における新しいマスクROMの製造、発送にかかるコストと煩わしさや、ユーザが交換時に接続ピンを折ってしまうなどの失敗をしてROMを壊してしまうリスクなどがあるため、ユーザによって、記憶内容の書換えが可能なPROMを装置の制御プログラムを保持する不揮発性メモリとして利用することが多くなってきた。
【0005】
PROMには、ROMライターと呼ばれる機械で記憶内容を書き換えることができるEPROMがあり、ユーザは、ROMライターさえあれば、メーカにより提供されるプログラムを何回も書き換えることができる。しかし、装置の開発部門などのユーザ以外にROMライターを有するユーザが少なく、例えば、自宅のプリンタ一台のために、プリンタよりも高価になる可能性のあるROMライターまで購入することは、ユーザにとって本末顛倒であり、抵抗を感じることである。
【0006】
EPROMのうちの特殊なものとして、EEPROMと呼ばれる不揮発性メモリがあり、このEEPROMは、フラッシュメモリとも呼ばれ、電気的に記憶内容の書換えが可能なものである。例えば、LAN、WANなどのネットワークインターフェースや、シリアルインターフェース(IEEE1394)や、パラレルインターフェース(IEEE1284)などの通信手段を利用してコンピュータと電気的に接続し、コンピュータからEEPROMの記憶内容の書換えができる。この場合、コンピュータからプログラムをダウンロードする意味において、EEPROMを装着した装置は、その種類に拘わらずコンピュータの端末装置と称することができる。コンピュータの普及率が高い背景下において、ユーザは新たに機械を購入せずに、コンピュータを用いてプリンタや、ネットワーク機器などの端末装置のEEPROMに記憶された制御プログラムをメーカから提供される新しい制御プログラムに書き換えることができるので、大変便利である。
【0007】
また、近年、開発技術の進歩に伴って、大容量のEEPROMが安価になっているので、装置の制御プログラムを記憶する不揮発メモリとしてEEPROMが利用しやすくなり、脚光を浴びるようになっている。
【0008】
しかし、装置の制御プログラムを記憶する不揮発性メモリとしてフラッシュメモリ、すなわちEEPROMを用いた場合は、制御プログラムをバージョンアップするために、ROMライターの必要もなく、ハードウェア(ROM)を交換する必要もないが、制御プログラムの書換え中に、書込みエラーが発生した場合や、書き換え時の消去処理時にエラーが生じた場合や、書換え中に装置の電源オフなどされた場合には、制御プログラムが消失するか破壊されてしまうので、制御プログラムの書換えは勿論のこと、装置本体の通常動作までもできなくなってしまう危険性がある。
【0009】
そこで、特許文献1には、制御プログラムを記憶する制御プログラム領域を複数のセクションに分割し、書換え時にセクション毎にエラーチェックする書換え方法が提案されている。
【0010】
また、特許文献2には、制御プログラムを格納した2つのフラッシュメモリを装置に装着し、装置のCPUに付属のメモリ選択回路で2つのフラッシュメモリのうちの1つに記憶された制御プログラムを選択して動作させると共に、制御プログラムの書換えの際には、動作していない片方のフラッシュメモリに記憶された制御プログラムを書き換えるようにして不慮の事故への対策を図る方法が提案されている。
【0011】
【特許文献1】
特開平6−259260号公報
【0012】
【特許文献2】
特開平7−200306号
【0013】
【発明が解決しようとする課題】
しかし、特許文献1に提案されている方法は、エラー防止および書換え失敗時に復旧時間の短縮などには効果があるものの、書換え中の電源オフなどの不慮事故の対策にはならない。
【0014】
また、特許文献2に提案された方法は、不揮発性メモリの切替え回路を必要とすると共に、膨大なサイズを有する制御プログラムを夫々格納するフラッシュメモリを複数用いるため、回路の構成が複雑で、装置が高価になるという問題がある。
【0015】
本発明は上記事情に鑑みてなされたものであり、簡単、安全かつ経済的なプログラム書換え方法およびこの方法により制御プログラム書換え可能な端末装置を提供することを目的とするものである。
【0016】
【課題を解決するための手段】
本発明のプログラム書換え方法は、端未装置に備えられたフラッシュメモリに記憶された、該端末装置を実行させるための制御プログラムを、外部処理装置からのプログラム書換え指示に応じて書き換えるプログラム書換え方法において、前記フラッシュメモリに、前記制御プログラムを記憶する制御プログラム記憶領域と異なるバックアップ領域を設け、
前記制御プログラムに含まれた、前記制御プログラムを書き換えるために必要なブートプログラムを前記バックアップ領域に記憶させてから前記制御プログラム記憶領域に記憶された前記制御プログラムの書換えを行うことを特徴とするものである。
【0017】
ここで、「フラッシュメモリ」とは、電源が切れても記憶内容を保持することができ、かつ電気的に記憶内容の消去、更新ができるメモリのことを意味し、EEPROMとすることができる。
【0018】
また、「外部処理装置」とは、本発明における端末装置と通信可能で、前記端末装置のフラッシュメモリに記憶された制御プログラムの書換え指示を与えて書換えを行わせることができる装置のことを意味し、通常コンピュータが用いられる。
【0019】
また、本発明における「端末装置」は、外部処理装置に備え付けられた記憶媒体または外部処理装置からの書換え指示により指定された場所から新しい制御プログラムを取得する意味においての端末装置であり、制御プログラムを記憶するメモリとしてフラッシュメモリが用いられた、外部処理装置と通信可能な装置であればいかなる装置であってもよく、例えばプリンタや、ネットワーク機器などを例として挙げることができる。
【0020】
また、「制御プログラム」とは、本発明における端末装置の全般的な動作を行わせるプログラム(そのためのパラメータなどのデータも含む)のことを意味し、例えば、プリンタの場合、プリンタの印刷を司る部分の動作を行わせるプログラムは勿論、ブート時の各種初期化プログラムや、外部処理装置、例えばコンピュータからの印刷指示、印刷データを受信するための通信用プログラムなども含むものである。また、本発明においては、制御プログラムは、端末装置のフラッシュメモリに記憶された制御プログラムを書き換えるための種々のプログ
ラムも含むものである。
【0021】
「ブートプログラム」とは、制御プログラムに含まれた、制御プログラムの書換えに必要なプログラムを意味し、例えば、書換え指示および新しい制御プログラムのデータを受信するための通信用プログラムや、フラッシュメモリの制御プログラム記憶領域の消去、更新をするためのプログラムなどを含むものとすることができる。なお、フラッシュメモリを節約すると共に、ブートプログラムのバックアップのスピードアップを図る視点から、本発明におけるブートプログラムは、制御プログラムの書換えに必要かつ最小限のプログラムとすることが好ましい。
【0022】
本発明の端末装置は、フラッシュメモリと、外部処理装置からのプログラム書換え指示に応じて前記フラッシュメモリに記憶された制御プログラムを書き換えることが可能なプログラム書換え手段とを備えた端末装置であって、
前記制御プログラムが、前記端末装置を実行させるためのものであり、
前記フラッシュメモリが、前記制御プログラムを記憶した制御プログラム記憶領域、バックアップ領域、および前記端末装置ブート時に前記制御プログラム記憶領域に記憶された前記制御プログラムが正常であるか否かの判断を行うと共に、前記判断の結果に基づいて前記制御プログラムを実行するか前記バックアップ領域に記憶されたプログラムを実行するかを選択する選択プログラムを記憶した選択プログラム記憶領域を備え、
前記プログラム書換え手段が、前記制御プログラムに含まれた、前記制御プログラムを書き換えるために必要なブートプログラムを前記バックアップ領域に記憶させてから前記制御プログラム記憶領域に記憶された前記制御プログラムの書換えを行うものであることを特徴とするものである。
【0023】
ここで、「プログラム書換え手段」は、前記制御プログラム記憶領域に記憶された前記制御プログラムの書換えを行うものであり、たとえば、制御プログラムを書き換えるためのプログラム(書換えプログラムという)とこのプログラムが動作するためのハードウェア(CPUなど)とすることができる。また、書換えプログラムは、前記ブートプログラムに含まれた形でフラッシュメモリに記憶されたものであってもよいし、ブートプログラムに含まれず、マスクROMなどに記憶され、前記ブートプログラムを利用して制御プログラムの書換えを行うものであってもよい。すなわち、前記ブートプログラムは、制御プログラムの書換えを実行する書換えプログラムと、この書換えプログラムが実行するために必要なプログラム(データ受信のための通信用プログラムなど)とからなるものであってもよいし、書換えプログラムが制御プログラムから独立している場合は、書換えプログラムが実行するために必要なプログラムのみであってもよい。
【0024】
【発明の効果】
本発明のプログラム書換え方法および端末装置によれば、端末装置のフラッシュメモリに記憶された、この端末装置を実行させるための制御プログラムを書き換える際に、制御プログラムに含まれた、書換えに必要なブートプログラムをバックアップしてから書換えを行うようにすることによって、書換え中にエラーや、不慮の事故などが生じて書換えが失敗しても、書換えに必要なブートプログラムがバックアップされているので、再度の書換えが可能であり、安全である。
【0025】
また、ブートプログラムのみをバックアップするので、必要なフラッシュメモリの容量も小さいので、経済的である。
【0026】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施形態について説明する。
【0027】
図1は、本発明の実施形態となるプリントシステムの構成を示すブロック図である。図示のように、本実施形態のプリントシステムは、端末装置となるプリンタ1と、プリンタ1とネットワーク(LAN)を介して接続されたコンピュータ100とからなるものであり、コンピュータ100は、プリンタ1に印刷用データを送信して印刷を行わせるためのプリンタドライバと共に、プリンタ1の制御プログラムを書き換えるためのユーティリティも実装されている。
【0028】
図2は、図1に示すプリントシステムにおけるプリンタ1の構成を示すブロック図である。図示のように、本実施形態におけるプリンタ1は、不揮発性メモリであるフラッシュメモリ20と、揮発性メモリRAM30と、コンピュータ100から送信されてきたデータを印刷する印刷実行部50と、コンピュータとの交信などを行うコントローラ10とを備えてなるものである。フラッシュメモリ20は、プリンタ1を動作させるためのプログラム群(データを含む)からなる制御プログラムを記憶した領域Bと、制御プログラムに含まれるブートプログラムをバックアップするための領域Cと、プリンタ1のブート時に領域Aに記憶された制御プログラムをRAM30にロードするか、領域Cに記憶されたブートプログラムをRAM30にロードするかを選択する選択プログラムを記憶した領域Aとからなり、ブートプログラムは、制御プログラムを記憶した領域Bの消去や、更新などを行う書換えプログラムと、書換えプログラムが動作する上に必要な通信プログラムや、初期化プログラムなどからなるものである。領域Bまたは領域Cに記憶されたプログラムは、選択プログラムにより選択されると、RAM30にロードされてプリンタ1を動作させる。
【0029】
次いで、図3、図4を参照して図2に示すプリンタ1の動作を具体的に説明する。なお、フラッシュメモリ20、RAM30上のプログラムが動作するには図1と図2に示してないCPUや、各種ハードウェア的な回路を必要とするが、本発明の主旨を分かりやすくするために、CPU、各種ハードウェア回路の説明は、ここで省略する。
【0030】
図4は、図2に示すプリンタ1の全般的な動作を示すフローチャートであり、図3は、図2に示すプリンタ1の制御プログラムを書換える時の動作を示すプロチャートである。まず、プリンタ1の制御プログラムを書換える時の動作を説明する。
【0031】
図3は、プリンタ1のRAM30上に、既にブートプログラム(ブートプログラムのみまたはブートプログラムを含んだ制御プログラム)がロードされた状態からの書換え動作を示すものである。図示のように、プリンタ1における制御プログラムの書換え動作(図示動作P)は、コントローラ10を介してコンピュータ100から書換え開始コマンドを受信した時から始まる。コンピュータ100から書換え開始コマンドを受信すると(S10)、まず、RAM30上にあるブートプログラムは、フラッシュメモリ20の領域Bから、制御プログラムに含まれたブートプログラムを領域Cにコピーしてバックアップする(S12)。バックアップ作業が終わると、ブートプログラム(ブートプログラムに含まれる書換えプログラム)は、フラッシュメモリ20の領域Bをクリアして既存の制御プログラムを削除する(S14)。次いで、ブートプログラムは、コントローラ10を介して受信したコンピュータ100から順次送信されてきた新しいプログラム内容からなるデータをフラッシュメモリ20の領域Bに書き込む(S16)。書き込む途中に、エラー(書込みエラーや、不意の電源オフなど)が生じる(S18:Yes)と、書き込み動作が中断する。このとき、フラッシュメモリ20の領域Bには、不完全な制御プログラムしか書き込まれていないが、領域Cには、ブートプログラムがバックアップされている。
【0032】
エラーが生じなければ(S18:No)、領域Bへの書込みは、コンピュータ100から書換え終了コマンドを受信するまで繰り返される(S20:No)。一方、コンピュータ100から書換え終了コマンドを受信すると(S20:Yes)、RAM30上のブートプログラムは、領域Bに書き込まれた新しい制御プログラムのSUM値を計算してコントローラ10を介してコンピュータ100に返送する(S22)。コンピュータ100における書換え用のユーティリティは、返送されてきたSUM値と予め計算しておいたSUM値と比較し、一致していれば、リブートコマンドをプリンタ1に送信する。ブートプログラムはコントローラ10により、コンピュータ100からリブートコマンドを受信すると(S24:Yes)、プリンタ1をリセットし、再起動させる(S26)ことをもって書換え動作を終了する。この場合、領域Bには新しい制御プログラムが正常に書き込まれている。
【0033】
一方、コンピュータ100側において、プリンタ1から返送されてきたSUM値と、予め計算しておいてSUM値と一致しなければ、リブートコマンドを送信しない(S24:No)ので、RAM30上のブートプログラムは、プリンタ1をリブートさせないまま、書換え動作を終了する。この場合、領域Bに書き込まれた新しい制御プログラムは正常ではないこととなる。
【0034】
書込み途中でエラーが生じた場合や、書込みが終了したものの正常ではない場合において、ユーザによるプリンタ1の電源の入れ直しを必要とする。
【0035】
図4は、プリンタ1の電源が入れられた(通常の電源オンや、図3のステップS26に示す書換え正常終了時のリブートや、書込み途中に失敗したときにユーザによる電源の入れ直しなど)時からの動作を示すフローチャートである。図示のように、プリンタ1の電源が入れられると、まず、フラッシュメモリ20の領域Aに記憶された選択プログラムは、領域Bにある制御プログラムのSUM値を計算する(S50)。制御プログラムのSUM値が正しければ(工場出荷時状態または正常に書き換えられた状態に相当する)、選択プログラムは、制御プログラムが正常であると判断し、実行するべきプログラムとして領域Bの制御プログラムを選択する(S55:Yes)。一方、制御プログラムのSUM値が正しくなければ(書換えが失敗した状態に相当する)、選択プログラムは、制御プログラムが正常ではないと判断し、実行するべきプログラムとして領域Cにバックアップされたブートプログラムを選択する(S55:No)。選択プログラムは続いて選択した領域のプログラムをRAM30にロードし、そのプログラムに該当するフラグを設定する(S60〜S74)。具体的には、領域Bの制御プログラムが選択されれば(S55:Yes)、領域Bから制御プログラムをRAM30にロードすると共に、制御プログラムのフラグ(本実施形態において、例として81FFFFFFh=0x00とする)を設定する(S60、S64)一方、領域Cのブートプログラムが選択されれば(S55:No)、領域CからブートプログラムをRAM30にロードすると共に、ブートプログラムのフラグ(本実施形態において、例として81FFFFFFh=0x01する)を設定する(S70、S74)。
【0036】
ここまでは、プリンタ1の電源が入れられた後のプログラムロード処理である。
【0037】
プログラムがRAM30ヘロードされれば、プリンタ1の起動処理が始まる。ここで、RAM30上にあるプログラムの種類によって、プリンタ1が異なるモードで起動される。すなわち、RAM30にロードされたプログラムのフラグが制御プログラムであることを示す0であれば(S80:Yes)、該プログラムが実行されることによってプリンタ1は通常モード(印刷と書換え両方可能なモード)で起動される(S82)一方、RAM30にロードされたプログラムのフラグがブートプログラムであることを示す1であれば(S80:No)、該プログラムが実行されることによってプリンタ1はブートモード(書換えのみ可能なモード)で起動される(S90)。
【0038】
通常モードで起動されたプリンタ1は、コンピュータ100からの指示があるまで待機し(S84:No)、コントローラ10を介してコンピュータ100から指示を受信する(S84:Yes)と、RAM30上の制御プログラムは、この指示が印刷指示であるか書き換え指示であるかを確認する(S86)。印刷指示であれば(S86:Yes)、制御プログラムに含まれた、印刷を担うプログラムにより印刷実行部50に印刷を行わせる(S88)が、コンピュータ100からの指示が書換え指示であれば(S86:No)、制御プログラムに含まれたブートプログラムにより図3に示す書換え動作Pを行う。
【0039】
一方、ブートモードで起動されたプリンタ1は、コンピュータ100からの書換え指示があるまで待機し(S95:No)、コンピュータ100から書換え指示を受信する(S95:Yes)と、RAM30にロードされたブートプログラム(このとき、RAM30上にブートプログラムのみロードされている)は図3に示す書換え動作Pを行う。
【0040】
このように、本実施形態のプリントシステムにおいて、プリンタ1において、フラッシュメモリ20に記憶された制御プログラムを書き換える際に、まず制御プログラムに含まれた、書き換え処理に必要最小限のブートプログラムをバックアップ領域となる領域Cにコピーしてバックアップするようにしているので、書換え処理中に何らかのはずみで失敗しても、ブートプログラムが残っているので、プリンタ1の電源を入れ直したりすれば、再度制御プログラムの書換えを行うことができるので、安全である。また、バックアップする領域Cは、制御プログラムを記憶する領域Aと同様のフラッシュメモリ20にある上に、バックアップするプログラムは書換えに必要最小限のブートプログラムであるので、膨大なサイズのフラッシュメモリも、複雑な切替え回路も必要とせず、便利かつ経済的である。
【0041】
本実施形態のプリントシステムにおけるプリンタ1は、本発明のプログラム書換え方法を用いると共に、フラッシュメモリ20の領域Aに選択プログラムを記憶し、この選択プログラムにより、プリンタ1のブート時に領域Bにある制御プログラムが正常か否かの判断を行うと共に、制御プログラムが正常であれば制御プログラムをRAM30にロードさせるようにしてプリンタ1を通常モードで起動させる一方、制御プログラムが正常ではなければ領域CにバックアップされたブートプログラムをRAM30にロードさせるようにしてプリンタ1をブートモードで起動させて制御プログラムの再度の書換えを可能にしているので、安全、便利かつ経済的に制御プログラムの書換えが可能な端末装置を実現している。
【0042】
上述において、本発明の望ましい実施形態について説明したが、本発明のプログラム書換え方法および端末装置は、上述した実施形態に限られるものではなく、本発明の主旨を変えない限り、様々な変更、増減を加えることができる。
【0043】
例えば、図2に示すプリンタ1は、書き換えられた制御プログラムのSUM値に基づいてこの制御プログラムが正常であるか否かを判断するようにしているが、制御プログラムが正常であるか否かの判断基準はSUM値に限られるものではなく、選択プログラムにより正常か否かの判断ができるものであればいかなる情報であってもよい。例えば、制御プログラムの付属情報として付与された、正常か否かを示すデータを用いてもよく、この場合、制御プログラムを書き換える際に、制御プログラムの書換えが正常に終了したときにのみ、制御プログラムに正常を示す付属情報を付与すればよい。
【0044】
また、図1に示す実施形態のプリントシステムにおけるプリンタ1は、制御プログラムを書き換える際に制御プログラム全体を書き換えるようにしているが、制御プログラムに含まれるプログラムを機能別にグループ分けして夫々の領域に記憶し、書き換える際には選択的に書き換えることを可能にしてもよい。この場合、ブートプログラムが含まれたグループを本発明に定義される制御プログラムとし、このグループが書き換えられるときにのみ、ブートプログラムのバックアップを行うようにしてもよい。
【0045】
また、ブートプログラムのバックアップを実行するタイミングも、プログラム書換え指示を受信した時に限らず、制御プログラムを書き換える前、すなわち制御プログラムを記憶した領域の消去を行う前のいかなるタイミングでもよい。
【0046】
また、プリンタ1とコンピュータ100との接続および通信形態も、ネットワークに限らず、シリアルインターフェースや、パラレルインターフェースなどを介して行ってもよい。
【0047】
また、上述した実施形態のプリントシステムにおいて、新しい制御プログラムの内容からなるデータをコンピュータ100から取得するようにしているが、データを記憶した、端末装置からそのデータを取得することができる他のコンピュータのハードディスクや、端末装置自身に備えられた補助記憶装置などから取得するようにしてもよい。
【0048】
また、本発明のプログラム書換え方法および端末装置は、プリンタに限られることがなく、フラッシュメモリに記憶された制御プログラムにより実行されるいかなる装置にも適用することができる。
【図面の簡単な説明】
【図1】本発明の実施形態のプリントシステムの構成を示すブロック図
【図2】図1に示すプリントシステムにおけるプリンタ1の構成を示す図
【図3】図2に示すプリンタ1の制御プログラム書換えの動作を示すチャート
【図4】図2に示すプリンタ1の全般的な動作を示すフローチャート
【符号の説明】
1 プリンタ
10 コントローラ
20 フラッシュメモリ
30 RAM
50 印刷実行部
100 コンピュータ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a terminal device capable of rewriting a control program and a method for rewriting the control program.
[0002]
[Prior art]
Devices such as printers and network devices are executed by a control program stored in a nonvolatile memory provided therein. This control program is composed of a group of programs (including data; the same applies hereinafter) necessary for executing the apparatus, such as various initialization programs and necessary data. When the apparatus is turned on, the control program stored in the non-volatile memory is copied (loaded) into a volatile memory called RAM provided in the apparatus, and the apparatus is executed.
[0003]
The non-volatile memory is a memory that can retain the stored contents even when the power is turned off, and a ROM is used as a non-volatile memory that stores a control program of the apparatus. The ROM is roughly divided into mask ROM and PROM. The mask ROM is obtained by burning the memory contents on the chip during the LSI manufacturing process, and the memory contents cannot be rewritten. Can be rewritten.
[0004]
Conventionally, a mask ROM has been used as a non-volatile memory for storing a control program of the apparatus because of the advantage of low cost in mass production. However, control programs that are input at the time of shipment from the factory often need to be upgraded after shipment in order to eliminate bugs, increase or decrease functions, and change specifications. In the case of a mask ROM, in order to upgrade the control program, turn off the power of the device equipped with the mask ROM and related devices, remove the ROM from the device, and replace the ROM with a new control program input ROM. Since the control program is upgraded, there are risks such as the cost and annoyance of manufacturing and shipping a new mask ROM on the manufacturer side, and the risk of breaking the ROM due to failure such as the user breaking the connection pin at the time of replacement. For this reason, a PROM that can be rewritten by a user is often used as a non-volatile memory that holds a control program for the apparatus.
[0005]
PROM includes an EPROM that can rewrite the stored contents with a machine called a ROM writer. A user can rewrite a program provided by a manufacturer many times as long as the ROM writer is available. However, there are few users who have a ROM writer other than users such as the development department of the device. For example, purchasing a ROM writer that may be more expensive than a printer for one printer at home is a problem for the user. It is an endurance and a sense of resistance.
[0006]
As a special type of EPROM, there is a non-volatile memory called EEPROM, and this EEPROM is also called flash memory, and can rewrite stored contents electrically. For example, the storage contents of the EEPROM can be rewritten from the computer by electrically connecting to the computer using a communication means such as a network interface such as LAN or WAN, a serial interface (IEEE1394), or a parallel interface (IEEE1284). In this case, in the sense of downloading a program from a computer, a device equipped with an EEPROM can be referred to as a computer terminal device regardless of its type. Under the background of the high penetration rate of computers, users do not purchase a new machine, and new control is provided by the manufacturer using a computer to store a control program stored in the EEPROM of a terminal device such as a printer or network device. It can be rewritten into a program, which is very convenient.
[0007]
In recent years, with the advancement of development technology, large-capacity EEPROMs have become cheaper, so that EEPROMs can be easily used as nonvolatile memories for storing device control programs, and have come to the spotlight.
[0008]
However, when a flash memory, that is, an EEPROM is used as the nonvolatile memory for storing the control program of the apparatus, there is no need for a ROM writer and hardware (ROM) must be replaced in order to upgrade the control program. However, if a write error occurs during rewriting of the control program, an error occurs during the erasing process during rewriting, or the device is turned off during rewriting, the control program is lost. Therefore, there is a risk that not only the control program can be rewritten, but also the normal operation of the apparatus main body cannot be performed.
[0009]
Therefore,
[0010]
In Patent Document 2, two flash memories storing control programs are mounted on the apparatus, and a control program stored in one of the two flash memories is selected by a memory selection circuit attached to the CPU of the apparatus. In addition, a method has been proposed in which when a control program is rewritten, the control program stored in one of the non-operating flash memories is rewritten to take measures against an unexpected accident.
[0011]
[Patent Document 1]
JP-A-6-259260 [0012]
[Patent Document 2]
JP-A-7-200306 [0013]
[Problems to be solved by the invention]
However, although the method proposed in
[0014]
Further, the method proposed in Patent Document 2 requires a nonvolatile memory switching circuit and uses a plurality of flash memories each storing a control program having a huge size. There is a problem that becomes expensive.
[0015]
The present invention has been made in view of the above circumstances, and an object thereof is to provide a simple, safe and economical program rewriting method and a terminal device capable of rewriting a control program by this method.
[0016]
[Means for Solving the Problems]
The program rewriting method of the present invention is a program rewriting method for rewriting a control program for executing the terminal device, stored in a flash memory provided in a terminal device, in accordance with a program rewriting instruction from an external processing device. The flash memory is provided with a backup area different from the control program storage area for storing the control program,
A boot program included in the control program, which is necessary for rewriting the control program, is stored in the backup area, and then the control program stored in the control program storage area is rewritten. It is.
[0017]
Here, the “flash memory” means a memory that can retain stored contents even when the power is turned off, and can electrically erase and update the stored contents, and can be an EEPROM.
[0018]
In addition, the “external processing device” means a device that can communicate with the terminal device in the present invention and can perform rewriting by giving a rewriting instruction of the control program stored in the flash memory of the terminal device. Usually, a computer is used.
[0019]
The “terminal device” in the present invention is a terminal device in the sense of acquiring a new control program from a storage medium provided in the external processing device or a location designated by a rewrite instruction from the external processing device. Any device may be used as long as it is a device that can communicate with an external processing device using a flash memory as a memory for storing, for example, a printer, a network device, or the like.
[0020]
Further, the “control program” means a program (including data such as parameters for that) that causes the overall operation of the terminal device according to the present invention. For example, in the case of a printer, it controls printing of the printer. As well as programs for performing the operation of the part, various initialization programs at the time of booting, a print instruction from an external processing device such as a computer, a communication program for receiving print data, and the like are included. In the present invention, the control program includes various programs for rewriting the control program stored in the flash memory of the terminal device.
[0021]
The “boot program” means a program included in the control program and necessary for rewriting the control program. For example, a communication program for receiving a rewrite instruction and new control program data, or control of the flash memory A program for erasing and updating the program storage area can be included. From the viewpoint of saving the flash memory and speeding up the backup of the boot program, the boot program according to the present invention is preferably a program that is necessary and minimum for rewriting the control program.
[0022]
The terminal device of the present invention is a terminal device comprising a flash memory and a program rewriting means capable of rewriting a control program stored in the flash memory in response to a program rewriting instruction from an external processing device,
The control program is for causing the terminal device to execute;
The flash memory determines whether the control program storage area storing the control program, the backup area, and the control program stored in the control program storage area at the time of booting the terminal device are normal, A selection program storage area storing a selection program for selecting whether to execute the control program or to execute the program stored in the backup area based on the result of the determination;
The program rewriting means rewrites the control program stored in the control program storage area after storing the boot program included in the control program necessary for rewriting the control program in the backup area. It is characterized by being.
[0023]
Here, the “program rewriting means” rewrites the control program stored in the control program storage area. For example, a program for rewriting the control program (referred to as a rewrite program) and this program operate. Hardware (such as a CPU). The rewrite program may be stored in the flash memory in the form included in the boot program, or not stored in the boot program but stored in a mask ROM or the like, and controlled using the boot program. The program may be rewritten. That is, the boot program may be composed of a rewrite program for rewriting the control program and a program (such as a communication program for data reception) necessary for the rewrite program to execute. When the rewriting program is independent of the control program, only the program necessary for the rewriting program to execute may be used.
[0024]
【The invention's effect】
According to the program rewriting method and the terminal device of the present invention, when the control program for executing the terminal device stored in the flash memory of the terminal device is rewritten, the boot included in the control program and necessary for rewriting By rewriting after the program is backed up, even if an error or an unexpected accident occurs during rewriting and the rewriting fails, the boot program necessary for rewriting is backed up. It can be rewritten and is safe.
[0025]
Further, since only the boot program is backed up, the required flash memory capacity is small, which is economical.
[0026]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0027]
FIG. 1 is a block diagram illustrating a configuration of a print system according to an embodiment of the present invention. As shown in the figure, the printing system of this embodiment includes a
[0028]
FIG. 2 is a block diagram showing the configuration of the
[0029]
Next, the operation of the
[0030]
4 is a flowchart showing the overall operation of the
[0031]
FIG. 3 shows a rewriting operation from a state in which a boot program (a boot program alone or a control program including a boot program) has already been loaded on the
[0032]
If no error occurs (S18: No), the writing to the area B is repeated until a rewrite end command is received from the computer 100 (S20: No). On the other hand, when the rewrite end command is received from the computer 100 (S20: Yes), the boot program on the
[0033]
On the other hand, if the SUM value returned from the
[0034]
When an error occurs during writing or when writing is completed but it is not normal, the user needs to turn the
[0035]
FIG. 4 shows the time from when the
[0036]
Up to this point, the program loading process is performed after the
[0037]
When the program is loaded into the
[0038]
The
[0039]
On the other hand, the
[0040]
As described above, in the printing system according to the present embodiment, when the
[0041]
The
[0042]
In the above description, the preferred embodiment of the present invention has been described. However, the program rewriting method and the terminal device of the present invention are not limited to the above-described embodiment, and various changes, increases / decreases may be made without changing the gist of the present invention. Can be added.
[0043]
For example, the
[0044]
The
[0045]
Also, the timing for executing the backup of the boot program is not limited to when the program rewrite instruction is received, but may be any timing before rewriting the control program, that is, before erasing the area storing the control program.
[0046]
Further, the connection and communication mode between the
[0047]
In the printing system according to the above-described embodiment, data including the contents of the new control program is acquired from the
[0048]
The program rewriting method and the terminal device of the present invention are not limited to a printer, and can be applied to any device that is executed by a control program stored in a flash memory.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a printing system according to an embodiment of the present invention. FIG. 2 is a diagram showing a configuration of a
1
50
Claims (2)
前記フラッシュメモリに、前記制御プログラムを記憶する制御プログラム記憶領域と異なるバックアップ領域を設け、
前記制御プログラムに含まれた、前記制御プログラムを書き換えるために必要なブートプログラムを前記バックアップ領域に記憶させてから前記制御プログラム記憶領域に記憶された前記制御プログラムの書換えを行うことを特徴とするプログラム書換え方法。In a program rewriting method for rewriting a control program for executing the terminal device stored in a flash memory provided in the terminal device in accordance with a program rewriting instruction from an external processing device,
A backup area different from the control program storage area for storing the control program is provided in the flash memory,
A program included in the control program, wherein a boot program necessary for rewriting the control program is stored in the backup area, and then the control program stored in the control program storage area is rewritten. Rewrite method.
前記制御プログラムが、前記端末装置を実行させるためのものであり、
前記フラッシュメモリが、前記制御プログラムを記憶した制御プログラム記憶領域、バックアップ領域、および前記端末装置ブート時に前記制御プログラム記憶領域に記憶された前記制御プログラムが正常であるか否かの判断を行うと共に、前記判断の結果に基づいて前記制御プログラムを実行するか前記バックアップ領域に記憶されたプログラムを実行するかを選択する選択プログラムを記憶した選択プログラム記憶領域を備え、
前記プログラム書換え手段が、前記制御プログラムに含まれた、前記制御プログラムを書き換えるために必要なブートプログラムを前記バックアップ領域に記憶させてから前記制御プログラム記憶領域に記憶された前記制御プログラムの書換えを行うものであることを特徴とする端末装置。A terminal device comprising flash memory and program rewriting means capable of rewriting a control program stored in the flash memory in response to a program rewriting instruction from an external processing device,
The control program is for causing the terminal device to execute;
The flash memory determines whether the control program storage area storing the control program, the backup area, and the control program stored in the control program storage area at the time of booting the terminal device are normal, A selection program storage area storing a selection program for selecting whether to execute the control program or to execute the program stored in the backup area based on the result of the determination;
The program rewriting means rewrites the control program stored in the control program storage area after storing the boot program included in the control program necessary for rewriting the control program in the backup area. A terminal device characterized by being a thing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002359408A JP2004192329A (en) | 2002-12-11 | 2002-12-11 | Program rewriting method and terminal device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002359408A JP2004192329A (en) | 2002-12-11 | 2002-12-11 | Program rewriting method and terminal device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004192329A true JP2004192329A (en) | 2004-07-08 |
Family
ID=32758812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002359408A Pending JP2004192329A (en) | 2002-12-11 | 2002-12-11 | Program rewriting method and terminal device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004192329A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006053848A (en) * | 2004-08-16 | 2006-02-23 | Nec Infrontia Corp | Information processor and program updating method |
JP2008117060A (en) * | 2006-11-01 | 2008-05-22 | Seiko Epson Corp | Information processor, information updating method, and program therefor |
US7634648B2 (en) | 2005-07-12 | 2009-12-15 | Seiko Epson Corporation | Data processing apparatus and control method for a data processing apparatus that temporarily provides a plurality of boot sectors in flash ROM |
JP2013545204A (en) * | 2010-12-13 | 2013-12-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Software image upgrade based on streaming technology |
WO2015098811A1 (en) * | 2013-12-27 | 2015-07-02 | 京セラドキュメントソリューションズ株式会社 | Electronic device |
WO2015136804A1 (en) * | 2014-03-11 | 2015-09-17 | 三菱電機株式会社 | Air conditioner, air conditioner system, and rewrite control program |
US9230113B2 (en) | 2010-12-09 | 2016-01-05 | International Business Machines Corporation | Encrypting and decrypting a virtual disc |
JP2017084001A (en) * | 2015-10-26 | 2017-05-18 | 日立オートモティブシステムズ株式会社 | Electronic control unit for automobile |
-
2002
- 2002-12-11 JP JP2002359408A patent/JP2004192329A/en active Pending
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006053848A (en) * | 2004-08-16 | 2006-02-23 | Nec Infrontia Corp | Information processor and program updating method |
US7634648B2 (en) | 2005-07-12 | 2009-12-15 | Seiko Epson Corporation | Data processing apparatus and control method for a data processing apparatus that temporarily provides a plurality of boot sectors in flash ROM |
JP2008117060A (en) * | 2006-11-01 | 2008-05-22 | Seiko Epson Corp | Information processor, information updating method, and program therefor |
US8756592B2 (en) | 2006-11-01 | 2014-06-17 | Seiko Epson Corporation | Information processor and information updating method |
US9626302B2 (en) | 2010-12-09 | 2017-04-18 | International Business Machines Corporation | Encrypting and decrypting a virtual disc |
US9230118B2 (en) | 2010-12-09 | 2016-01-05 | International Business Machines Corporation | Encrypting and decrypting a virtual disc |
US9230113B2 (en) | 2010-12-09 | 2016-01-05 | International Business Machines Corporation | Encrypting and decrypting a virtual disc |
US9195452B2 (en) | 2010-12-13 | 2015-11-24 | International Business Machines Corporation | Upgrade of software images based on streaming technique |
JP2013545204A (en) * | 2010-12-13 | 2013-12-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Software image upgrade based on streaming technology |
WO2015098811A1 (en) * | 2013-12-27 | 2015-07-02 | 京セラドキュメントソリューションズ株式会社 | Electronic device |
CN105814545A (en) * | 2013-12-27 | 2016-07-27 | 京瓷办公信息系统株式会社 | Electronic device |
JP6074064B2 (en) * | 2013-12-27 | 2017-02-01 | 京セラドキュメントソリューションズ株式会社 | Electronics |
CN105814545B (en) * | 2013-12-27 | 2019-08-27 | 京瓷办公信息系统株式会社 | Electronic equipment |
JP2015172443A (en) * | 2014-03-11 | 2015-10-01 | 三菱電機株式会社 | Air conditioner, air conditioner system, and rewrite control program |
WO2015136804A1 (en) * | 2014-03-11 | 2015-09-17 | 三菱電機株式会社 | Air conditioner, air conditioner system, and rewrite control program |
US10222082B2 (en) | 2014-03-11 | 2019-03-05 | Mitsubishi Electric Corporation | Air conditioner, air conditioner system, and rewrite control program with rewrite control for control data |
JP2017084001A (en) * | 2015-10-26 | 2017-05-18 | 日立オートモティブシステムズ株式会社 | Electronic control unit for automobile |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2638466B1 (en) | Software updating process for an embedded device | |
KR100506203B1 (en) | Booting and boot code update method and system thereof | |
EP1899814B1 (en) | Firmware update for consumer electronic device | |
US7206971B2 (en) | Selectable and updatable computer boot memory | |
US8136108B2 (en) | Updating firmware with multiple processors | |
CN101329632B (en) | Method and apparatus for starting CPU by BOOT | |
JP3838840B2 (en) | Computer | |
EP1873638A1 (en) | Portable apparatus supporting multiple operating systems and supporting method therefor | |
US5933595A (en) | Computer apparatus having electrically rewritable nonvolatile memory, and nonvolatile semiconductor memory | |
CN114090107A (en) | Computer and system starting method | |
JP2004192329A (en) | Program rewriting method and terminal device | |
JP2004046453A (en) | Single chip microcomputer and boot sector switching method | |
JP2005157528A (en) | Memory device | |
JP4013040B2 (en) | Download apparatus and download method | |
JP2009151386A (en) | Image processor | |
JP2005284902A (en) | Terminal device, control method and control program thereof, host device, control method and control program thereof, and method, system, and program for remote updating | |
JP3805195B2 (en) | Program rewriting apparatus and program rewriting method | |
JP4375857B2 (en) | Computer with program rewrite function | |
US10120677B2 (en) | Method of rewriting printer firmware, and printer | |
KR100422928B1 (en) | apparatus and method for booting in data processing system | |
JP2005128613A (en) | Image forming device | |
JP2001344156A (en) | Device with flash memory and data rewriting method | |
JP7582424B2 (en) | Electronics | |
TWI726436B (en) | Method for repairing basic input/output system bios and a computer system using the same | |
JP2003122575A (en) | Information processing unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050209 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20061205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070720 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070807 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071003 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071030 |