JP2004054818A - プログラム実行装置 - Google Patents

プログラム実行装置 Download PDF

Info

Publication number
JP2004054818A
JP2004054818A JP2002214854A JP2002214854A JP2004054818A JP 2004054818 A JP2004054818 A JP 2004054818A JP 2002214854 A JP2002214854 A JP 2002214854A JP 2002214854 A JP2002214854 A JP 2002214854A JP 2004054818 A JP2004054818 A JP 2004054818A
Authority
JP
Japan
Prior art keywords
program
boot program
rewriting
rewritable
boot
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
Application number
JP2002214854A
Other languages
English (en)
Inventor
Satoshi Watanabe
渡邊 智
Seitaro Kasahara
笠原 聖太郎
Motoi Nakamichi
中道 基
Masaru Otsuka
大塚 勝
Takehiro Ogushi
小串 岳大
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.)
Konica Minolta Inc
Original Assignee
Konica Minolta Inc
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 Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2002214854A priority Critical patent/JP2004054818A/ja
Publication of JP2004054818A publication Critical patent/JP2004054818A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】ブートプログラムの書き換えに失敗した場合などにも、装置を正常に起動することが可能なプログラム実行装置を実現する。
【解決手段】プログラムの実行により装置各部を制御する制御手段101と、この制御手段によって起動時に実行されるプログラム(ブートプログラム)であって、書き換え不可能ブートプログラムと書き換え可能ブートプログラムとが記憶されている記憶手段150と、前記記憶手段に記憶されている書き換え可能ブートプログラムを書き換えるプログラム書き換え手段170と、装置の電源投入時における前記制御手段のプログラム実行開始アドレスについて、設定手段の設定に基づいて、前記書き換え不可能ブートプログラムか前記書き換え可能ブートプログラムかのいずれか一つを割り当てる選択手段160と、を備える。
【選択図】   図1

Description

【0001】
【発明の属する技術分野】
本発明は、ブートプログラムを実行するプログラム実行装置に関し、更に詳しくは、ブートプログラムを書き換える機能を備えたプログラム実行装置の制御に関する。
【0002】
【従来の技術】
各種情報処理装置などで、プログラムを格納するための記憶手段としてフラッシュメモリ等の電気的に書換え可能な不揮発性メモリを搭載したものが増えてきている。これにより、製品出荷後でもメモリ内のブートプログラムや機器制御プログラムを書換えることで、新機能追加や性能向上を実現することが可能になる。
【0003】
【発明が解決しようとする課題】
ところが、例えば書き換え可能な不揮発性メモリに格納されたブートプログラムを書き換えている途中で電源コンセント外れなどが発生して装置への電源供給が絶たれ、ブートプログラムの書き換えに失敗することがある。この場合、書き換える前のブートプログラムは既に消去されており、さらに、新たなブートプログラムは書き換え途中であるため正常に書き込まれておらず、装置が二度と立ち上がらなくなるという不具合が発生することになる(第1の問題点)。
【0004】
また、ブートプログラムの書き換え自体は正常に行えた場合であっても、装置型番の誤認識などにより、別機種用のブートプログラムに書き換えてしまうことも起こりうる。この場合、その機種用ではないブートプログラムであるので、装置が立ち上がらなくなり、この結果、正しいブートプログラムに戻すことができない状態に陥る(第2の問題点)。
【0005】
さらに、ブートプログラムの書き換えが正常に行えた場合であっても、アプリケーションプログラムと新ブートプログラムとの相性が良くなく、古いブートプログラムに戻したい場合も発生しうるが、この場合に古いブートプログラムは既に存在しておらず、古いブートプログラムに戻すことができない状態に陥る(第3の問題点)。
【0006】
そこで、上記第1の問題点を解決すべく、特開平11−119984号公報に記載の発明は、ブートプログラムが格納されたROMとは別チップのROMに復旧専用ブートプログラムを搭載するようにしている。この発明では、別チップのROMを必要とするという問題があり、さらに、書き換え成功か失敗かに応じてチップセレクト信号を変更しなければならず、制御が複雑になるという問題がある。
【0007】
また、書き換え自体が正常に実行できた場合には、チップセレクト信号が別チップ側に切り替わらないため、上記第2の問題点や第3の問題点に対しては効力を有しないという問題もある。
【0008】
本発明は上記の問題点に鑑みてなされたもので、ブートプログラムの書き換えに失敗した場合であっても、ブートプログラムの書き換え自体は成功したものの異なるブートプログラムに書き換えてしまった場合であっても、装置を正常に起動することが可能なプログラム実行装置を実現することを目的とする。
【0009】
【課題を解決するための手段】
以上の課題を解決する本発明は、以下に記載するようなものである。
(1)請求項1記載の発明は、プログラムの実行により装置各部を制御する制御手段と、この制御手段によって起動時に実行されるプログラム(ブートプログラム)であって、書き換え不可能ブートプログラムと書き換え可能ブートプログラムとが記憶されている記憶手段と、前記記憶手段に記憶されている書き換え可能ブートプログラムを書き換えるプログラム書き換え手段と、装置の電源投入時における前記制御手段のプログラム実行開始アドレスについて、設定手段の設定に基づいて、前記書き換え不可能ブートプログラムか前記書き換え可能ブートプログラムかのいずれか一つを割り当てる選択手段と、を備えたことを特徴とするプログラム実行装置である。
【0010】
この発明では、書き換え不可能ブートプログラムと書き換え可能ブートプログラムとを記憶手段に記憶しておき、プログラム書き換え手段が前記書き換え可能ブートプログラムを必要に応じて書き換える。また、装置の電源投入時における前記制御手段のプログラム実行開始アドレスについては、設定手段の設定に基づいて、選択手段が前記書き換え不可能ブートプログラムか前記書き換え可能ブートプログラムかのいずれか一つを割り当てる。
【0011】
このため、書き換え可能ブートプログラムの書き換えに失敗した場合、あるいは、異なるブートプログラムに書き換えてしまった場合、あるいは元のブートプログラムに戻したい場合は、前記設定手段の設定によって、書き換え不可能ブートプログラムを選択して起動させることで、装置が立ち上げ不能に陥ることがなくなる。また、通常動作時や書き換え成功時には、書き換えたブートプログラムによって起動すればよい。
【0012】
(2)請求項2記載の発明は、プログラムの実行により装置各部を制御する制御手段と、この制御手段によって起動時に実行される書き換え可能ブートプログラムが記憶されており、プログラムの書き換え時に前記書き換え可能ブートプログラムを待避させる待避記憶領域を有する記憶手段と、プログラムの書き換え時に前記書き換え可能ブートプログラムを前記待避記憶領域に待避させ、書き換え可能ブートプログラムを書き換えるプログラム書き換え手段と、装置の電源投入時における前記制御手段のプログラム実行開始アドレスについて、設定手段の設定に基づいて、前記書き換え可能ブートプログラムか、前記待避記憶領域に記憶されたブートプログラムかのいずれか一つを割り当てる選択手段と、を備えたことを特徴とするプログラム実行装置である。
【0013】
この発明では、書き換え可能ブートプログラムを記憶手段に記憶し、さらに待避記憶領域を記憶手段に備えておき、プログラム書き換え手段は前記書き換え可能ブートプログラムを待避記憶領域に複写した後に書き換える。また、装置の電源投入時における前記制御手段のプログラム実行開始アドレスについては、設定手段の設定に基づいて、選択手段が、前記待避記憶領域に記憶されたブートプログラムか前記書き換え可能ブートプログラムかのいずれか一つを割り当てる。
【0014】
このため、書き換え可能ブートプログラムの書き換えに失敗した場合、あるいは、異なるブートプログラムに書き換えてしまった場合、あるいは元のブートプログラムに戻したい場合は、前記設定手段の設定によって、待避記憶領域のブートプログラムを選択して起動させることで、装置が立ち上げ不能に陥ることがなくなる。また、通常動作時や書き換え成功時には、書き換えたブートプログラムによって起動すればよい。
【0015】
(3)請求項3記載の発明は、プログラムの実行により装置各部を制御する制御手段と、この制御手段によって起動時に実行されるプログラム(ブートプログラム)であって、書き換え不可能ブートプログラムと書き換え可能ブートプログラムとが記憶されており、プログラムの書き換え時に前記書き換え可能ブートプログラムを待避させる待避記憶領域を有する記憶手段と、プログラムの書き換え時に前記書き換え可能ブートプログラムを前記待避記憶領域に待避させ、書き換え可能ブートプログラムを書き換えるプログラム書き換え手段と、装置の電源投入時における前記制御手段のプログラム実行開始アドレスについて、設定手段の設定に基づいて、前記書き換え不可能ブートプログラムか、前記書き換え可能ブートプログラムか、前記待避記憶領域に記憶されたブートプログラムかのいずれか一つを割り当てる選択手段と、を備えたことを特徴とするプログラム実行装置である。
【0016】
この発明では、書き換え不可能ブートプログラムと書き換え可能ブートプログラムとを記憶手段に記憶しておき、さらに待避記憶領域を記憶手段に備えておき、プログラム書き換え手段は前記書き換え可能ブートプログラムを待避記憶領域に複写した後に書き換える。また、装置の電源投入時における前記制御手段のプログラム実行開始アドレスについては、設定手段の設定に基づいて、選択手段が、前記待避記憶領域に記憶されたブートプログラムか、前記書き換え不可能ブートプログラムか、前記書き換え可能ブートプログラムか、のいずれか一つを割り当てる。
【0017】
このため、書き換え可能ブートプログラムの書き換えに失敗した場合、あるいは、異なるブートプログラムに書き換えてしまった場合、あるいは元のブートプログラムに戻したい場合は、前記設定手段の設定によって、待避記憶領域のブートプログラムあるいは書き換え不可能ブートプログラムのいずれかを選択して起動させることで、装置が立ち上げ不能に陥ることがなくなる。また、通常動作時や書き換え成功時には、書き換えたブートプログラムによって起動すればよい。
【0018】
(4)請求項4記載の発明は、前記記憶手段は、プログラムの書き換え時に前記書き換え可能ブートプログラムを待避させる待避記憶領域を複数有し、前記選択手段は、前記複数の待避記憶領域のいずれかを選択する、ことを特徴とする請求項2または請求項3のいずれかに記載のプログラム実行装置である。
【0019】
この発明では、書き換え可能ブートプログラムを記憶手段に記憶し、さらに待避記憶領域を記憶手段に備えておき、プログラム書き換え手段は前記書き換え可能ブートプログラムを待避記憶領域に複写した後に書き換える。なお、待避記憶領域を複数有しているため、複数回の書き換え実行時に、選択手段の選択に応じてそれぞれ書き換え前のブートプログラムを待避しておくことができる。
【0020】
また、装置の電源投入時における前記制御手段のプログラム実行開始アドレスについては、設定手段の設定に基づいて、選択手段が、前記待避記憶領域に記憶されたいずれかのブートプログラムか、前記書き換え可能ブートプログラムかを割り当てる。
【0021】
このため、書き換え可能ブートプログラムの書き換えに失敗した場合だけでなく、書き換え前のいずれかの段階の状態に戻したいときは、前記設定手段の設定によって、待避記憶領域のブートプログラムを選択して起動させることで、所望の状態の装置の立ち上げが可能になる。
【0022】
(5)請求項5記載の発明は、前記記憶手段に記憶されている書き換え不可能ブートプログラムと、書き換え前の書き換え可能ブートプログラムとは、同一内容のブートプログラムである、ことを特徴とする請求項1または請求項3のいずれかに記載のプログラム実行装置である。
【0023】
このため、書き換え可能ブートプログラムの書き換えに失敗した場合、あるいは、異なるブートプログラムに書き換えてしまった場合、あるいは元のブートプログラムに戻したい場合は、前記設定手段の設定によって、書き換え不可能ブートプログラムを選択して起動させることで、装置を当初の状態と同一の状態で立ち上げることが可能になる。
【0024】
(6)請求項6記載の発明は、前記書き換え不可能ブートプログラムと、書き換え前の書き換え可能ブートプログラムとは、同一の記憶手段内の異なるアドレスの領域に記憶されている、ことを特徴とする請求項1または請求項3のいずれかに記載のプログラム実行装置である。
【0025】
このプログラム実行装置では、同一の記憶手段に書き換え不可能ブートプログラムと書き換え前のブートプログラムとを格納しているため、別の記憶手段を必要としなくなり、装置構成を簡略化することができる。
【0026】
(7)請求項7記載の発明は、前記書き換え不可能ブートプログラムと、書き換え前の書き換え可能ブートプログラムとは、別体の記憶手段にそれぞれ記憶されている、ことを特徴とする請求項1または請求項3のいずれかに記載のプログラム実行装置である。
【0027】
このプログラム実行装置では、書き換え不可能ブートプログラムと書き換え前のブートプログラムと別体の記憶手段にそれぞれ格納しているため、信頼性を向上させることができる。このため、確実な装置立ち上げを実現することができる。
【0028】
【発明の実施の形態】
以下、本発明の実施の形態例のプログラム実行装置について図面を参照しつつ詳細に説明する。なお、請求項には記載されていないが、本実施の形態例のプログラム実行装置の動作方法あるいは制御方法も本実施の形態例の一部である。
【0029】
〈第1の実施の形態例〉
図1は、本発明のプログラム実行装置の第1の実施の形態例を示す回路構成図である。なお、この図1では、この第1の実施の形態例の動作説明に必要な部分のみを記載してあり、その他の既知の部分については省略してある。なお、この図1のプログラム実行装置は、画像形成装置(複写機、プリンタ、ファクシミリ装置など)に適用した例を具体例として示している。
【0030】
この図1において、101はプログラムの実行によって装置全体を制御する制御手段であり、ブートプログラムによって装置の起動を行い、機器制御プログラムによって装置の動作制御を行う。
【0031】
110は各種データの展開や一時的記憶を行うRAM、120は装置への操作入力と装置からの状態表示とを行う操作表示部、130は機器の各部の細かな動作制御を行う機器動作制御部、140は画像形成装置としての画像形成に関するプロセス制御を行うためのプロセス制御部、150は書き換え不可能ブートプログラムと書き換え可能ブートプログラムと機器制御プログラムとが記憶されている記憶手段としてのフラッシュメモリ、160はブートプログラムの実行先頭番地を選択するメモリ選択部、170はフラッシュメモリ150の書き換えを実行するプログラム書き換え部である。なお、上記各部はアドレスバスとデータバスとによって相互に接続されているものとする。
【0032】
なお、フラッシュメモリ150においては、先頭番地から始まる領域をブートプログラムブロック151としていて、書き換え不可能ブートプログラムが格納されている。また、そのブートプログラムブロック151の直後から始まる領域をブートプログラムブロック152としていて、書き換え可能ブートプログラムが格納されている。なお、フラッシュメモリ150に格納されている書き換え不可能ブートプログラムと、書き換え前の書き換え可能ブートプログラムとは、同一内容のブートプログラムである。
【0033】
また、書き換え不可能ブートプログラムと、書き換え前の書き換え可能ブートプログラムとは、同一のフラッシュメモリ150内の異なるアドレスの領域に記憶されている例を示しているが、別チップのフラッシュメモリ(図示せず)であってもよい。
【0034】
図2はメモリ選択部160の内部構成を示すブロック図である。この図2に示すように、CPU101からのデータD0〜D15とアドレス信号A0〜A15とはフラッシュメモリ150にそのまま供給されている。
【0035】
なお、このメモリ選択部160内には、デコーダ161とスイッチ162とが選択手段として設けられており、設定手段を構成するスイッチ162の状態に応じて、デコーダ161がメモリアドレス信号(MA16,MA17)を変更している。なお、このスイッチ162はディップスイッチなどで構成されていて、装置のいずれかの位置に配置されていればよい。
【0036】
図2の場合、下段の表に示すように、CPU101からのA17/A16がH/HあるいはH/Lの場合には、スイッチ162にかかわらず、フラッシュメモリ150にて機器制御プログラムを選択するためのメモリアドレス信号(MA16,MA17)を生成する。
【0037】
一方、CPU101からのA17/A16がL/Hの場合には、スイッチ162がオフであれば、フラッシュメモリ150にて書き換え可能ブートプログラムを選択するためのメモリアドレス信号(MA16,MA17)を生成する。また、スイッチ162がオンであれば、フラッシュメモリ150にて書き換え不可ブートプログラムを選択するためのメモリアドレス信号(MA16,MA17)を生成する。
【0038】
以下、図3のフローチャートを参照して本実施の形態例の動作説明を行うことにする。
本実施の形態例のプログラム実行装置の電源スイッチが投入されると、CPU101からのアドレス信号(A16,A17)と、メモリ選択部160内のスイッチ162の状態とに応じて、デコーダ161がメモリアドレス信号(MA16,MA17)を生成してフラッシュメモリ150に印加する(図3S1)。
【0039】
ここで、電源スイッチ投入時であり、ブートプログラムの選択が必要であるため、CPU101からのアドレス信号A17がL、A16がHになっているとする。
【0040】
スイッチ162がオフ状態であれば、デコーダ161からのメモリアドレス信号(MA16,MA17)により、起動時にはブートプログラムブロック152に格納されている書き換え可能ブートプログラムの先頭番地が選択されて実行される(図3S2)。
【0041】
一方、スイッチ162がオン状態(グランド側)であれば、デコーダ161からのメモリアドレス信号(MA16,MA17)により、起動時にはブートプログラムブロック151が選択され(図3S3)、書き換え不可能ブートプログラムが実行される(図3S4)。
【0042】
なお、オペレータなどによって意図的にスイッチ162の状態がオン状態(第2状態)に設定されていない限り、スイッチ162はオフ状態が通常状態であり、書き換え可能ブートプログラムが実行される。
【0043】
なお、書き換え可能ブートプログラムの書き換えに失敗した場合、あるいは、異なるブートプログラムに書き換えてしまった場合には、スイッチ162の設定によって、書き換え不可能ブートプログラムを選択して起動させることで、装置が立ち上げ不能に陥ることがなくなる。
【0044】
そして、いずれのブートプログラムによって起動された場合でも、ブートプログラムの実行が完了した後に、機器制御プログラムブロック153に格納されている機器制御プログラムが機器動作制御部130やプロセス制御部140により実行される(図3S5)。これにより、プログラム実行装置の通常の制御が実行される。
【0045】
ここで、操作表示部120から特定の操作がなされた場合、あるいは、図示していない外部機器から特定の信号が与えられた場合、その操作あるいは信号をきっかけにしてブートプログラムの更新を開始する(図3S6でY)。
【0046】
この場合、プログラム書換部170は、まず、フラッシュメモリ150のブートプログラムブロック152に格納されている書き換え可能ブートプログラムを消去する(図3S7)。
【0047】
そして、プログラム書換部170は、プログラム実行装置に接続されている外部機器(図示せず)などからの新たなブートプログラムを、ブートプログラムブロック152に書き込むことにより書き換えを実行する(図3S8)。このプログラム書換部170による書き換えがが完了した時点(図3S9でY)で、CPU101は、ブートプログラムの更新の完了を操作表示部120に表示して動作を終了する。
【0048】
以上のような書き換え可能ブートプログラムの書き換えを実行した場合であって、停電や電源コンセント脱落などで書き換え作業に失敗した場合、あるいは、異なる機種用のブートプログラムに書き換えてしまった場合、あるいはアプリケーションプログラムとの相性の関係で元のブートプログラムに戻したい場合に、オペレータはスイッチ162の状態をオン状態(第2状態)に切り替える。
【0049】
そして、このようにスイッチ162をオン状態(第2状態)に切り替えてからプログラム実行装置の電源を投入することで、図3のS3とS4とに示したように、装置出荷時から搭載されている書き換え不可能ブートプログラムでブートされる。このようにすることで、最新のブートプログラムではない可能性があるものの、正常に起動できる状態を確保できる。
【0050】
したがって、再度停電や電源コンセント脱落に注意しつつブートプログラムの書き換えを実行したり、正しい機種のブートプログラムの書き換えを実行したり、アプリケーションプログラムとの相性に配慮されたブートプログラムへの書き換えなどを実行することができる。そして、ブートプログラムの書き換えが成功した後に、スイッチ162の状態を通常状態であるオフ状態に戻せばよい。また、スイッチ162をオン状態(第2状態)に維持することで、書き換え不可能ブートプログラムでブートし続けることも可能である。
【0051】
〈第2の実施の形態例〉
図4は、本発明のプログラム実行装置の第2の実施の形態例を示す回路構成図である。なお、この図4では、この第2の実施の形態例の動作説明に必要な部分のみを記載してあり、その他の既知の部分については省略してある。なお、この図4のプログラム実行装置は、画像形成装置(複写機、プリンタ、ファクシミリ装置など)に適用した例を具体例として示している。
【0052】
なお、この図4では、既に説明した第1の実施の形態例の図1と同一物については同一番号を付し、重複した説明を省略する。
この図4において、150は書き換え可能ブートプログラムが記憶されており、プログラムの書き換え時に前記書き換え可能ブートプログラムを待避させるブートプログラム保存ブロック(待避記憶領域)151aを有する記憶手段としてのフラッシュメモリである。
【0053】
170はフラッシュメモリ150の書き換えを実行するプログラム書き換え部であり、プログラムの書き換え時に前記書き換え可能ブートプログラムを前記待避記憶領域に待避させ、書き換え可能ブートプログラムを書き換える。
【0054】
なお、フラッシュメモリ150においては、先頭番地から始まる領域をブートプログラム保存ブロック151aとしていて、ブートプログラムの書き換え前のコピーが格納されている。
【0055】
また、そのブートプログラム保存ブロック151aの直後から始まる領域をブートプログラムブロック152としていて、書き換え可能ブートプログラムが格納されている。なお、最初にブートプログラムの書き換えを実行する前は、ブートプログラムブロック151aに格納されているブートプログラムと、ブートプログラムブロック152に格納されているブートプログラムとは、同一内容のブートプログラムである。
【0056】
また、ブートプログラムの書き換え前のコピーと、書き換え前の書き換え可能ブートプログラムとは、同一のフラッシュメモリ150内の異なるアドレスの領域に記憶されている例を示しているが、別チップのフラッシュメモリ(図示せず)であってもよい。
【0057】
以下、図5のフローチャートを参照して本実施の形態例の動作説明を行うことにする。なお、この説明では、図2のブロック図も参照する。
本実施の形態例のプログラム実行装置の電源スイッチが投入されると、CPU101からのアドレス信号(A16,A17)と、メモリ選択部160内のスイッチ162の状態とに応じて、デコーダ161がメモリアドレス信号(MA16,MA17)を生成してフラッシュメモリ150に印加する(図5S1)。
【0058】
スイッチ162がオフ状態であれば、デコーダ161からのメモリアドレス信号(MA16,MA17)により、起動時にはブートプログラムブロック152に格納されている書き換え可能ブートプログラムの先頭番地が選択されて実行される(図5S2)。
【0059】
一方、スイッチ162がオン状態(第2状態、グランド側)であれば、デコーダ161からのメモリアドレス信号(MA16,MA17)により、起動時にはブートプログラム保存ブロック151aが選択され(図5S3)、書き換え前のブートプログラムが実行される(図5S4)。
【0060】
なお、オペレータなどによって意図的にスイッチ162の状態がオン状態(第2状態)に設定されていない限り、スイッチ162はオフ状態(通常状態)であり、書き換え可能ブートプログラムが実行される。
【0061】
なお、書き換え可能ブートプログラムの書き換えに失敗した場合、あるいは、異なるブートプログラムに書き換えてしまった場合には、スイッチ162の設定によって、ブートプログラムの書き換え前のコピーを選択して起動させることで、装置が立ち上げ不能に陥ることがなくなる。
【0062】
そして、いずれのブートプログラムによって起動された場合でも、ブートプログラムの実行が完了した後に、機器制御プログラムブロック153に格納されている機器制御プログラムが機器動作制御部130やプロセス制御部140により実行される(図5S5)。これにより、プログラム実行装置の通常の制御が実行される。
【0063】
ここで、操作表示部120から特定の操作がなされた場合、あるいは、図示していない外部機器から特定の信号が与えられた場合、その操作あるいは信号をきっかけにしてブートプログラムの更新を開始する(図5S6でY)。
【0064】
この場合、プログラム書換部170は、まず、フラッシュメモリ150のブートプログラムブロック152に格納されている書き換え可能ブートプログラムを、ブートプログラム保存ブロック151aに複写(待避)する(図5S7)。この場合、既にブートプログラム保存ブロック151aに存在するブートプログラムを消去してから複写を行う。
【0065】
そして、プログラム書換部170は、フラッシュメモリ150のブートプログラムブロック152に格納されている書き換え可能ブートプログラムを消去する(図5S8)。
【0066】
そして、プログラム書換部170は、プログラム実行装置に接続されている外部機器(図示せず)などからの新たなブートプログラムを、ブートプログラムブロック152に書き込むことにより書き換えを実行する(図5S9)。このプログラム書換部170による書き換えがが完了した時点(図5S10でY)で、CPU101は、ブートプログラムの更新の完了を操作表示部120に表示して動作を終了する。
【0067】
以上のような書き換え可能ブートプログラムの書き換えを実行した場合であって、停電や電源コンセント脱落などで書き換え作業に失敗した場合、あるいは、異なる機種用のブートプログラムに書き換えてしまった場合、あるいはアプリケーションプログラムとの相性の関係で元のブートプログラムに戻したい場合に、オペレータはスイッチ162の状態をオン状態(第2状態)に切り替える。
【0068】
そして、このようにスイッチ162をオン状態(第2状態)に切り替えてからプログラム実行装置の電源を投入することで、図5のS3とS4とに示したように、ブートプログラムの書き換え前のコピー(書き換えを実行する直前の状態のブートプログラム)でブートされる。このようにすることで、最新のブートプログラムではないが、正常に起動できる状態を確保できる。
【0069】
したがって、再度停電や電源コンセント脱落に注意しつつブートプログラムの書き換えを実行したり、正しい機種のブートプログラムの書き換えを実行したり、アプリケーションプログラムとの相性に配慮されたブートプログラムへの書き換えなどを実行することができる。そして、ブートプログラムの書き換えが成功した後に、スイッチ162の状態をオフ状態(通常状態)に戻せばよい。また、スイッチ162をオン状態(第2状態)に維持することで、ブートプログラムの書き換え前のコピーでブートし続けることも可能である。
【0070】
〈第3の実施の形態例〉
図6は、本発明のプログラム実行装置の第3の実施の形態例を示す回路構成図である。なお、この図6では、この第3の実施の形態例の動作説明に必要な部分のみを記載してあり、その他の既知の部分については省略してある。なお、この図6のプログラム実行装置は、画像形成装置(複写機、プリンタ、ファクシミリ装置など)に適用した例を具体例として示している。
【0071】
なお、この図6では、既に説明した第1や第2の実施の形態例の図1や図4と同一物については同一番号を付し、重複した説明を省略する。
この図6において、150は書き換え不可能ブートプログラムと書き換え可能ブートプログラムと機器制御プログラムとが記憶されている記憶手段としてのフラッシュメモリ、プログラムの書き換え時に前記書き換え可能ブートプログラムを待避させるブートプログラム保存ブロック(待避記憶領域)151aを有する記憶手段としてのフラッシュメモリである。
【0072】
170はフラッシュメモリ150の書き換えを実行するプログラム書き換え部であり、プログラムの書き換え時に前記書き換え可能ブートプログラムを前記待避記憶領域に待避させ、書き換え可能ブートプログラムを書き換える。
【0073】
なお、フラッシュメモリ150においては、先頭番地から始まる領域をブートプログラムブロック151としていて、書き換え不可能ブートプログラムが格納されている。また、そのブートプログラムブロック151の直後から始まる領域をブートプログラム保存ブロック151aとしていて、ブートプログラムの書き換え前のコピーが格納されている。また、そのブートプログラム保存ブロック151aの直後から始まる領域をブートプログラムブロック152としていて、書き換え可能ブートプログラムが格納されている。なお、フラッシュメモリ150に格納されている書き換え不可能ブートプログラムと、書き換え前の書き換え可能ブートプログラムとは、同一内容のブートプログラムである。
【0074】
また、書き換え不可能ブートプログラムと、ブートプログラムの書き換え前のコピーと、書き換え前の書き換え可能ブートプログラムとは、同一のフラッシュメモリ150内の異なるアドレスの領域に記憶されている例を示しているが、それぞれ別チップのフラッシュメモリ(図示せず)であってもよい。
【0075】
図7はメモリ選択部160の内部構成を示すブロック図である。この図7に示すように、CPU101からのデータD0〜D15とアドレス信号A0〜A15とはフラッシュメモリ150にそのまま供給されている。そして、CPU101からのアドレス信号A16〜A18は、メモリ選択部160で処理されて、メモリアドレス信号(MA16,MA17,MA18)としてフラッシュメモリ150に供給されている。
【0076】
なお、このメモリ選択部160内には、デコーダ161と、スイッチ162およびスイッチ163とが選択手段として設けられており、設定手段を構成するスイッチ162およびスイッチ163の状態に応じてデコーダ161がメモリアドレス信号(MA16〜MA18)を変更している。なお、このスイッチ162・スイッチ163はディップスイッチなどで構成されていて、装置のいずれかの位置に配置されていればよい。
【0077】
ここでは、スイッチ162とスイッチ163との状態により合計4通りの状態(H・H、H・L、L・H、L・L)が考えられるが、どのブロックのブートプログラムでブートするかについて少なくとも3通りの状態を割り当てておくことが望ましい。
【0078】
すなわち、図2の下段の表に示したと同様にして、CPU101からのA16〜A18信号と、スイッチ162・163の状態に応じて、フラッシュメモリ150にて機器制御プログラム,書き換え不可ブートプログラム,書き換え可能ブートプログラムのいずれかを選択するためのメモリアドレス信号(MA16〜MA18)を生成すればよい。
【0079】
以下、図8のフローチャートを参照して本実施の形態例の動作説明を行うことにする。
本実施の形態例のプログラム実行装置の電源スイッチが投入されると、CPU101からのアドレス信号(A16〜A18)と、メモリ選択部160内のスイッチ162・スイッチ163の設定状態とに応じて、デコーダ161がメモリアドレス信号(MA16〜MA18)を生成してフラッシュメモリ150に印加する(図8S1)。
【0080】
スイッチ162・スイッチ163が第1状態であれば、デコーダ161からのメモリアドレス信号(MA16〜MA18)により、起動時にはブートプログラムブロック152に格納されている書き換え可能ブートプログラムの先頭番地が選択されて実行される(図8S2)。
【0081】
また、スイッチ162・スイッチ163が第3状態であれば、デコーダ161からのメモリアドレス信号(MA16〜MA18)により、起動時にはブートプログラムブロック151が選択され(図8S3)、書き換え不可能ブートプログラムが実行される(図8S4)。
【0082】
一方、スイッチ162・スイッチ163が第2状態であれば、デコーダ161からのメモリアドレス信号(MA16〜MA18)により、起動時にはブートプログラム保存ブロック151aが選択され(図8S5)、書き換え前のブートプログラムが実行される(図8S6)。
【0083】
なお、オペレータなどによって意図的にスイッチ162・スイッチ163の状態が第2状態あるいは第3状態に設定されていない限り、スイッチ162・スイッチ163は初期状態として第1状態であり、ブートプログラムブロック152の書き換え可能ブートプログラムが実行される。
【0084】
なお、書き換え可能ブートプログラムの書き換えに失敗した場合、あるいは、異なるブートプログラムに書き換えてしまった場合には、スイッチ162・スイッチ163の設定によって、書き換え不可能ブートプログラムもしくはブートプログラムの書き換え前のコピーのいずれかを選択して起動させることで、装置が立ち上げ不能に陥ることがなくなる。
【0085】
そして、いずれのブートプログラムによって起動された場合でも、ブートプログラムの実行が完了した後に、機器制御プログラムブロック153に格納されている機器制御プログラムが機器動作制御部130やプロセス制御部140により実行される(図8S7)。これにより、プログラム実行装置の通常の制御が実行される。
【0086】
ここで、操作表示部120から特定の操作がなされた場合、あるいは、図示していない外部機器から特定の信号が与えられた場合、その操作あるいは信号をきっかけにしてブートプログラムの更新を開始する(図8S8でY)。
【0087】
この場合、プログラム書換部170は、必要に応じて(図8S9でY)、フラッシュメモリ150のブートプログラムブロック152に格納されている書き換え可能ブートプログラムを、ブートプログラム保存ブロック151aに複写(待避)する(図8S10)。この場合、既にブートプログラム保存ブロック151aに存在するブートプログラムを消去してから複写を行う。
【0088】
そして、プログラム書換部170は、フラッシュメモリ150のブートプログラムブロック152に格納されている書き換え可能ブートプログラムを消去する(図8S11)。
【0089】
そして、プログラム書換部170は、プログラム実行装置に接続されている外部機器(図示せず)などからの新たなブートプログラムを、ブートプログラムブロック152に書き込むことにより書き換えを実行する(図8S12)。このプログラム書換部170による書き換えがが完了した時点(図8S13でY)で、CPU101は、ブートプログラムの更新の完了を操作表示部120に表示して動作を終了する。
【0090】
以上のような書き換え可能ブートプログラムの書き換えを実行した場合であって、停電や電源コンセント脱落などで書き換え作業に失敗した場合、あるいは、異なる機種用のブートプログラムに書き換えてしまった場合、あるいはアプリケーションプログラムとの相性の関係で元のブートプログラムに戻したい場合に、オペレータはスイッチ162・スイッチ163の状態を第2状態もしくは第3状態のいずれか所望の状態に切り替える。すなわち、初期状態のブートプログラム、あるいは、書き換え直前のブートプログラムのいずれでも好みの状態のブートプログラムを選択できる。
【0091】
そして、このようにスイッチ162・スイッチ163を第2状態あるいは第3状態に切り替えてからプログラム実行装置の電源を投入することで、図8のS3〜S4あるいはS5〜S6に示したように、装置出荷時から搭載されている書き換え不可能ブートプログラムでブートされるか、あるいは、ブートプログラムの書き換え前のコピー(書き換えを実行する直前の状態のブートプログラム)でブートされる。このようにすることで、最新のブートプログラムではない可能性があるものの、正常に起動できる状態を確保できる。
【0092】
したがって、再度停電や電源コンセント脱落に注意しつつブートプログラムの書き換えを実行したり、正しい機種のブートプログラムの書き換えを実行したり、アプリケーションプログラムとの相性に配慮されたブートプログラムへの書き換えなどを実行することができる。そして、ブートプログラムの書き換えが成功した後に、スイッチ162・スイッチ163の状態を第1状態に戻せばよい。また、スイッチ162・スイッチ163を第2状態あるいは第3状態に維持することで、ブートプログラムの書き換え前あるいは初期状態でブートし続けることも可能である。
【0093】
なお、以上の説明では、ブートプログラム保存ブロック(待避記憶領域)151aは1つのブートプログラムを保存する容量あるいは領域であったが、複数のブートプログラムを保存可能な容量あるいは領域とすることも可能である。この場合、メモリ選択部160が複数の保存ブロック(待避記憶領域)を選択するように構成すればよい。このようにすると、複数の異なるバージョンのブートプログラムを保存しておくことも可能になる。
【0094】
このため、書き換え可能ブートプログラムの書き換えに失敗した場合だけでなく、書き換え前のいずれかの段階の状態に戻したいときは、前記設定手段の設定によって、待避記憶領域のブートプログラムを選択して起動させることで、所望の状態の装置の立ち上げが可能になる。
【0095】
〈その他の実施の形態例(1)〉
以上の各実施の形態例の説明では、ブートプログラムの書き換えに失敗した場合に初期状態のブートプログラムあるいは書き換え前のブートプログラムを選択して起動するようにしていたが、これに限定されるものではない。すなわち、ブートプログラムを最新のものに書き換え成功した場合であっても、アプリケーションプログラムとの相性を診断するために、初期状態のブートプログラム、書き換え直前のブートプログラムを選択してブートすることも可能である。
【0096】
〈その他の実施の形態例(2)〉
プログラム書換部170に相当するプログラムをブートプログラム内に持ち、ブートプログラム書換時には、このプログラムをRAM上にコピーして実行することも可能である。
【0097】
【発明の効果】
以上説明したように本発明によれば、ブートプログラムの書き換えに失敗した場合であっても、ブートプログラムの書き換え自体は成功したものの異なるブートプログラムに書き換えてしまった場合であっても、装置を正常に起動することが可能になる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態例のプログラム実行装置の全体構成例を示す構成図である。
【図2】本発明の第1の実施の形態例のプログラム実行装置の主要部の構成を示す構成図である。
【図3】本発明の第1の実施の形態例のプログラム実行装置の動作状態を示すフローチャートである。
【図4】本発明の第2の実施の形態例のプログラム実行装置の全体構成例を示す構成図である。
【図5】本発明の第2の実施の形態例のプログラム実行装置の動作状態を示すフローチャートである。
【図6】本発明の第3の実施の形態例のプログラム実行装置の全体構成例を示す構成図である。
【図7】本発明の第3の実施の形態例のプログラム実行装置の主要部の構成を示す構成図である。
【図8】本発明の第3の実施の形態例のプログラム実行装置の動作状態を示すフローチャートである。
【符号の説明】
101 CPU
110 RAM
120 操作表示部
130 機器動作制御部
140 プロセス制御部
150 フラッシュメモリ
151 ブートプログラムブロック
151a ブートプログラム保存ブロック
152 ブートプログラムブロック
153 機器制御プログラムブロック
160 メモリ選択部
170 プログラム書換部

Claims (7)

  1. プログラムの実行により装置各部を制御する制御手段と、
    この制御手段によって起動時に実行されるプログラム(ブートプログラム)であって、書き換え不可能ブートプログラムと書き換え可能ブートプログラムとが記憶されている記憶手段と、
    前記記憶手段に記憶されている書き換え可能ブートプログラムを書き換えるプログラム書き換え手段と、
    装置の電源投入時における前記制御手段のプログラム実行開始アドレスについて、設定手段の設定に基づいて、前記書き換え不可能ブートプログラムか前記書き換え可能ブートプログラムかのいずれか一つを割り当てる選択手段と、
    を備えたことを特徴とするプログラム実行装置。
  2. プログラムの実行により装置各部を制御する制御手段と、
    この制御手段によって起動時に実行される書き換え可能ブートプログラムが記憶されており、プログラムの書き換え時に前記書き換え可能ブートプログラムを待避させる待避記憶領域を有する記憶手段と、
    プログラムの書き換え時に前記書き換え可能ブートプログラムを前記待避記憶領域に待避させ、書き換え可能ブートプログラムを書き換えるプログラム書き換え手段と、
    装置の電源投入時における前記制御手段のプログラム実行開始アドレスについて、設定手段の設定に基づいて、前記書き換え可能ブートプログラムか、前記待避記憶領域に記憶されたブートプログラムかのいずれか一つを割り当てる選択手段と、
    を備えたことを特徴とするプログラム実行装置。
  3. プログラムの実行により装置各部を制御する制御手段と、
    この制御手段によって起動時に実行されるプログラム(ブートプログラム)であって、書き換え不可能ブートプログラムと書き換え可能ブートプログラムとが記憶されており、プログラムの書き換え時に前記書き換え可能ブートプログラムを待避させる待避記憶領域を有する記憶手段と、
    プログラムの書き換え時に前記書き換え可能ブートプログラムを前記待避記憶領域に待避させ、書き換え可能ブートプログラムを書き換えるプログラム書き換え手段と、
    装置の電源投入時における前記制御手段のプログラム実行開始アドレスについて、設定手段の設定に基づいて、前記書き換え不可能ブートプログラムか、前記書き換え可能ブートプログラムか、前記待避記憶領域に記憶されたブートプログラムかのいずれか一つを割り当てる選択手段と、
    を備えたことを特徴とするプログラム実行装置。
  4. 前記記憶手段は、プログラムの書き換え時に前記書き換え可能ブートプログラムを待避させる待避記憶領域を複数有し、
    前記選択手段は、前記複数の待避記憶領域のいずれかを選択する、
    ことを特徴とする請求項2または請求項3のいずれかに記載のプログラム実行装置。
  5. 前記記憶手段に記憶されている書き換え不可能ブートプログラムと、書き換え前の書き換え可能ブートプログラムとは、同一内容のブートプログラムである、
    ことを特徴とする請求項1または請求項3のいずれかに記載のプログラム実行装置。
  6. 前記書き換え不可能ブートプログラムと、書き換え前の書き換え可能ブートプログラムとは、同一の記憶手段内の異なるアドレスの領域に記憶されている、
    ことを特徴とする請求項1または請求項3のいずれかに記載のプログラム実行装置。
  7. 前記書き換え不可能ブートプログラムと、書き換え前の書き換え可能ブートプログラムとは、別体の記憶手段にそれぞれ記憶されている、
    ことを特徴とする請求項1または請求項3のいずれかに記載のプログラム実行装置。
JP2002214854A 2002-07-24 2002-07-24 プログラム実行装置 Pending JP2004054818A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002214854A JP2004054818A (ja) 2002-07-24 2002-07-24 プログラム実行装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002214854A JP2004054818A (ja) 2002-07-24 2002-07-24 プログラム実行装置

Publications (1)

Publication Number Publication Date
JP2004054818A true JP2004054818A (ja) 2004-02-19

Family

ID=31937042

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002214854A Pending JP2004054818A (ja) 2002-07-24 2002-07-24 プログラム実行装置

Country Status (1)

Country Link
JP (1) JP2004054818A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100409186C (zh) * 2005-03-29 2008-08-06 松下电器产业株式会社 信息处理设备和信息处理方法
JP2009169496A (ja) * 2008-01-11 2009-07-30 Panasonic Electric Works Co Ltd 制御端末器
JP2014089497A (ja) * 2012-10-29 2014-05-15 Mitsubishi Electric Corp 情報処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100409186C (zh) * 2005-03-29 2008-08-06 松下电器产业株式会社 信息处理设备和信息处理方法
JP2009169496A (ja) * 2008-01-11 2009-07-30 Panasonic Electric Works Co Ltd 制御端末器
JP2014089497A (ja) * 2012-10-29 2014-05-15 Mitsubishi Electric Corp 情報処理装置

Similar Documents

Publication Publication Date Title
US7750676B2 (en) Embedded system and control method therefor
US20080141016A1 (en) Computer System and Related Method for Preventing Failure of Updating BIOS Programs
TWI492867B (zh) 車輛用設備
US6539474B2 (en) System and method for selectively executing different boot routines depending on whether an error is detected
WO2012079400A1 (zh) 一种嵌入式系统bootrom的升级方法和装置
JP6543122B2 (ja) 情報処理装置と、前記情報処理装置による不揮発記憶装置の初期化方法、及びプログラム
JP2001195241A (ja) コンピュータ
JP2007094766A (ja) 制御装置及びバージョンアップ方法並びにプログラム
JPH11110218A (ja) ファームウェア書き換え装置
JP2004046453A (ja) シングルチップマイクロコンピュータおよびそのブート領域切り替え方法
JP2004054818A (ja) プログラム実行装置
JP3805195B2 (ja) プログラム書き換え装置及びプログラム書き換え方法
JP2004054616A (ja) ファームウェア自動修復機能を有する情報処理装置
JP2002189609A (ja) アクシデントに適応したソフトウェア更新方式および方法
JP2000293376A (ja) ブートプログラムの切替回路及び切替方法
JP3489524B2 (ja) 車両用不揮発性メモリ書き替え装置
JP2001344156A (ja) フラッシュメモリを有する装置およびデータの書き換え方法
JP3667958B2 (ja) 情報処理装置
JP2005050079A (ja) サーバ装置、bios更新プログラム、初期起動プログラム、及びbios更新方法
JP2008027331A (ja) ファームウェア書き換え方法
JPH08161160A (ja) 光ディスク再生装置のファームウエア更新方法
JP2005128613A (ja) 画像形成装置
JP7491765B2 (ja) ファームウェア更新システムおよびファームウェア更新方法
JPH09265399A (ja) Bios書き込み方法
JP3498028B2 (ja) ブートプログラム書き換えシステム