JP2003288213A - ブートプログラム記憶装置、電子機器のブートプログラム記憶方法 - Google Patents
ブートプログラム記憶装置、電子機器のブートプログラム記憶方法Info
- Publication number
- JP2003288213A JP2003288213A JP2002090390A JP2002090390A JP2003288213A JP 2003288213 A JP2003288213 A JP 2003288213A JP 2002090390 A JP2002090390 A JP 2002090390A JP 2002090390 A JP2002090390 A JP 2002090390A JP 2003288213 A JP2003288213 A JP 2003288213A
- Authority
- JP
- Japan
- Prior art keywords
- boot program
- boot
- area
- jump instruction
- storing
- 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.)
- Abandoned
Links
Landscapes
- Stored Programmes (AREA)
Abstract
(57)【要約】
【課題】本発明はブートプログラムを更新する際に、こ
の更新処理が正常に終了しなかった場合でも起動が可能
なシステムを提供することを目的とする。 【解決手段】ブートプログラムの更新処理のためにメモ
リ1にブートプログラムを領域24に記憶し、一時ブー
トプログラムを領域26に記憶し、且つ、実行される一
時ブートプログラムへのジャンプ命令を領域21に記憶
し、リセット時に領域21に記憶されたジャンプ命令に
よって一時ブートプログラムへジャンプし、ブートプロ
グラムの領域24に対する更新処理が正常に終了しなか
った場合は、一時ブートプログラムによってシステムを
起動するブートプログラム記憶装置を以って課題の解決
に当たる。
の更新処理が正常に終了しなかった場合でも起動が可能
なシステムを提供することを目的とする。 【解決手段】ブートプログラムの更新処理のためにメモ
リ1にブートプログラムを領域24に記憶し、一時ブー
トプログラムを領域26に記憶し、且つ、実行される一
時ブートプログラムへのジャンプ命令を領域21に記憶
し、リセット時に領域21に記憶されたジャンプ命令に
よって一時ブートプログラムへジャンプし、ブートプロ
グラムの領域24に対する更新処理が正常に終了しなか
った場合は、一時ブートプログラムによってシステムを
起動するブートプログラム記憶装置を以って課題の解決
に当たる。
Description
【0001】
【発明の属する技術分野】本発明は、ブートプログラム
(起動プログラム)をメモリに記憶し、このプログラム
に基づいて電子機器を起動するシステムに関する。
(起動プログラム)をメモリに記憶し、このプログラム
に基づいて電子機器を起動するシステムに関する。
【0002】
【従来の技術】本発明の従来技術を開示する文献とし
て、特許公開2001−209543号公報(公開日:
平成13年11月30日)がある。
て、特許公開2001−209543号公報(公開日:
平成13年11月30日)がある。
【0003】本公報には、パソコン等の電子機器のシス
テムに用いられるフラッシュメモリに格納したフラッシ
ュメモリ書き換えプログラム(ブートプログラム)を更
新する際に、本プログラムを所定のバックアップ領域に
格納し、正規のブートプログラムが書き込まれるまで
は、このバックアッププログラムにて起動を実行すると
いう手法が開示されている。
テムに用いられるフラッシュメモリに格納したフラッシ
ュメモリ書き換えプログラム(ブートプログラム)を更
新する際に、本プログラムを所定のバックアップ領域に
格納し、正規のブートプログラムが書き込まれるまで
は、このバックアッププログラムにて起動を実行すると
いう手法が開示されている。
【0004】しかしながら、従来の技術においては、正
規のブートプログラムの更新処理が正常に終了しなかっ
た場合に、バックアッププログラムが機能しない、よっ
て、この場合は、システムは起動しないという問題があ
る。
規のブートプログラムの更新処理が正常に終了しなかっ
た場合に、バックアッププログラムが機能しない、よっ
て、この場合は、システムは起動しないという問題があ
る。
【0005】
【発明が解決しようとする課題】従来の技術によればブ
ートプログラムを更新する際に、更新処理が正常に終了
しなかった場合は、システムが起動しないという問題点
があった。
ートプログラムを更新する際に、更新処理が正常に終了
しなかった場合は、システムが起動しないという問題点
があった。
【0006】本発明は、ブートプログラムを更新する際
に、この更新処理が正常に終了しなかった場合でも起動
が可能なシステムを提供することを目的とする。
に、この更新処理が正常に終了しなかった場合でも起動
が可能なシステムを提供することを目的とする。
【0007】
【課題を解決するための手段】上記課題を解決するため
に本発明のブートプログラム記憶装置は、メモリと、前
記メモリ内の複数の記憶領域における第1の記憶領域に
ブートプログラムを記憶する第1のブートプログラム記
憶手段と、前記メモリ内の複数領域における第2の記憶
領域に第2のブートプログラムを記憶する第2のブート
プログラム記憶手段と、前記メモリの第3の記憶領域
に、前記第2のブートプログラムに対するジャンプ命令
を記憶するジャンプ命令記憶手段と、前記第1のブート
プログラムによるブート処理が実行できなかった場合
は、前記ジャンプ命令に基づいて、前記第2のブートプ
ログラムにてブート処理を実行するブート処理実行手段
を具備したことを特徴とする。
に本発明のブートプログラム記憶装置は、メモリと、前
記メモリ内の複数の記憶領域における第1の記憶領域に
ブートプログラムを記憶する第1のブートプログラム記
憶手段と、前記メモリ内の複数領域における第2の記憶
領域に第2のブートプログラムを記憶する第2のブート
プログラム記憶手段と、前記メモリの第3の記憶領域
に、前記第2のブートプログラムに対するジャンプ命令
を記憶するジャンプ命令記憶手段と、前記第1のブート
プログラムによるブート処理が実行できなかった場合
は、前記ジャンプ命令に基づいて、前記第2のブートプ
ログラムにてブート処理を実行するブート処理実行手段
を具備したことを特徴とする。
【0008】上記課題を解決するために本発明の電子機
器のブートプログラム記憶方法は、メモリを備える電子
機器のブートプログラム記憶方法であって、前記メモリ
内の複数の記憶領域における第1の記憶領域にブートプ
ログラムを記憶する第1のブートプログラム記憶ステッ
プと、前記メモリ内の複数領域における第2の記憶領域
に第2のブートプログラムを記憶する第2のブートプロ
グラム記憶ステップと、前記メモリの第3の記憶領域
に、前記第2のブートプログラムに対するジャンプ命令
を記憶するジャンプ命令記憶ステップと、前記第1のブ
ートプログラムによるブート処理が実行できなかった場
合は、前記ジャンプ命令に基づいて、前記第2のブート
プログラムにてブート処理を実行するブート処理実行ス
テップを具備したことを特徴とする。
器のブートプログラム記憶方法は、メモリを備える電子
機器のブートプログラム記憶方法であって、前記メモリ
内の複数の記憶領域における第1の記憶領域にブートプ
ログラムを記憶する第1のブートプログラム記憶ステッ
プと、前記メモリ内の複数領域における第2の記憶領域
に第2のブートプログラムを記憶する第2のブートプロ
グラム記憶ステップと、前記メモリの第3の記憶領域
に、前記第2のブートプログラムに対するジャンプ命令
を記憶するジャンプ命令記憶ステップと、前記第1のブ
ートプログラムによるブート処理が実行できなかった場
合は、前記ジャンプ命令に基づいて、前記第2のブート
プログラムにてブート処理を実行するブート処理実行ス
テップを具備したことを特徴とする。
【0009】
【発明の実施の形態】本発明の実施の形態について説明
するために、図1〜図6を用いて説明する。
するために、図1〜図6を用いて説明する。
【0010】図1は、本発明のブートプログラム記憶装
置を採用した電子機器のブロック図である。
置を採用した電子機器のブロック図である。
【0011】この電子機器は、パーソナルコンピュータ
や、PDA(パーソナルデジタルアシスタント)等の情
報機器である。
や、PDA(パーソナルデジタルアシスタント)等の情
報機器である。
【0012】この電子機器は、ブートプログラムを格納
するフラッシュメモリ1、システム全体を制御するCP
U(中央演算処理装置)2、CPU動作時にデータやプ
ログラムを展開するためのRAMバッファ3、オペレー
タがコマンドやデータを入力する際に使用する操作部4
及び、CPU2で処理したデータを表示する表示部5と
からなる。
するフラッシュメモリ1、システム全体を制御するCP
U(中央演算処理装置)2、CPU動作時にデータやプ
ログラムを展開するためのRAMバッファ3、オペレー
タがコマンドやデータを入力する際に使用する操作部4
及び、CPU2で処理したデータを表示する表示部5と
からなる。
【0013】これらの各ブロックは、内部バス6で結ば
れており、各ブロックはこの内部バス6を介して相互に
データの交信を行っている。
れており、各ブロックはこの内部バス6を介して相互に
データの交信を行っている。
【0014】本発明では、図1のブロック図における電
子機器のフラッシュメモリ1に対して、この電子機器を
起動するブート処理のためのブートプログラムを更新す
る際に、このブートプログラムが正常に更新されなかっ
た場合に、電子機器を起動する別のブートプログラムを
起動可能な状態にすることを趣旨としている。
子機器のフラッシュメモリ1に対して、この電子機器を
起動するブート処理のためのブートプログラムを更新す
る際に、このブートプログラムが正常に更新されなかっ
た場合に、電子機器を起動する別のブートプログラムを
起動可能な状態にすることを趣旨としている。
【0015】このブートプログラムの更新方法について
図2を用いて説明する。
図2を用いて説明する。
【0016】図2は、フラッシュメモリ1のメモリマッ
プを示すものである。
プを示すものである。
【0017】図2のフラッシュメモリは下位アドレスか
ら上位アドレスに渡って、複数のブロックが設けられて
いる。
ら上位アドレスに渡って、複数のブロックが設けられて
いる。
【0018】こ複数のブロックは同じ容量に設定されて
おり、ブロック単位でアクセスを行う場合、所定のアド
レス値の整数倍にアドレスを設定することにより容易に
アクセスが可能である。
おり、ブロック単位でアクセスを行う場合、所定のアド
レス値の整数倍にアドレスを設定することにより容易に
アクセスが可能である。
【0019】先頭ブロックであるブロック23は、正規
のブートプログラムが記憶されるブートプログラム領域
24が設けられている。これに続く次のブロックはブロ
ック25である。
のブートプログラムが記憶されるブートプログラム領域
24が設けられている。これに続く次のブロックはブロ
ック25である。
【0020】このブロック25には、更新処理が正常に
終了しなかったとき、システムを起動する一時ブートプ
ログラムが記憶される一時ブートプログラム領域26が
設けられている。
終了しなかったとき、システムを起動する一時ブートプ
ログラムが記憶される一時ブートプログラム領域26が
設けられている。
【0021】また、ブロック23には、一時ブートプロ
グラムにアクセスするためのジャンプ命令が記憶される
ジャンプ命令領域21と、ブートプログラム領域23の
正規のブートプログラムが実行されたか否かを示すフラ
グを記憶するフラグ領域22が設けられている。
グラムにアクセスするためのジャンプ命令が記憶される
ジャンプ命令領域21と、ブートプログラム領域23の
正規のブートプログラムが実行されたか否かを示すフラ
グを記憶するフラグ領域22が設けられている。
【0022】ジャンプ命令領域21はCPU2がリセッ
トした直後に実行されるメモリ1内のアドレスを開始位
置としており、電源立ち上げ等で電子機器がリセットさ
れたときは先ず、このジャンプ命令領域21のデータが
読み取られジャンプ命令が実行される。
トした直後に実行されるメモリ1内のアドレスを開始位
置としており、電源立ち上げ等で電子機器がリセットさ
れたときは先ず、このジャンプ命令領域21のデータが
読み取られジャンプ命令が実行される。
【0023】ジャンプ命令が実行される場合は、ブート
プログラム領域24に対して正規のブートプログラムが
正常に記憶されなかった場合であって、このときは、ジ
ャンプ命令によって一時ブートプログラムが代わりにブ
ート処理を行う。
プログラム領域24に対して正規のブートプログラムが
正常に記憶されなかった場合であって、このときは、ジ
ャンプ命令によって一時ブートプログラムが代わりにブ
ート処理を行う。
【0024】次に、本発明の電子機器のメモリに対する
ブートプログラムの更新処理手順について詳細に説明す
る。
ブートプログラムの更新処理手順について詳細に説明す
る。
【0025】図3は、ブートプログラムの更新処理シー
ケンスを示すフローチャートである。
ケンスを示すフローチャートである。
【0026】本フローチャートはステップS1〜S4の
合計4ステップからなる。
合計4ステップからなる。
【0027】ステップS1は本フローチャートの開始ス
テップを示す。
テップを示す。
【0028】ステップS2は、予めメモリ1のブロック
23に既に記憶されたブートプログラムを含むデータを
消去するステップである。
23に既に記憶されたブートプログラムを含むデータを
消去するステップである。
【0029】メモリ1はフラッシュメモリであるのでそ
の性質上、データを書き換えるために、予め記憶する領
域をブロック単位で消去する処理を行う必要がある。消
去処理が行われたブロックの全ビットの値は”1”とな
る。
の性質上、データを書き換えるために、予め記憶する領
域をブロック単位で消去する処理を行う必要がある。消
去処理が行われたブロックの全ビットの値は”1”とな
る。
【0030】ステップ1においてブロック23の消去処
理が終了すると、ステップS3へとシーケンスは移行
し、このブロック23内のブートプログラム領域24へ
正規のブートプログラムを記憶する。
理が終了すると、ステップS3へとシーケンスは移行
し、このブロック23内のブートプログラム領域24へ
正規のブートプログラムを記憶する。
【0031】ステップS3において、ブートププログラ
ムの記憶が終了した場合は、次段の終了処理のステップ
S4へとシーケンスは移行する。
ムの記憶が終了した場合は、次段の終了処理のステップ
S4へとシーケンスは移行する。
【0032】このように、ブートプログラムの更新処理
は実行されるのだが、この更新処理の最中に電源が遮断
されたりすると、ブートプログラムの記憶は失敗する。
は実行されるのだが、この更新処理の最中に電源が遮断
されたりすると、ブートプログラムの記憶は失敗する。
【0033】また、このブートプログラムの記憶の失敗
は、プログラムカウンタを誤動作させる原因となる。
は、プログラムカウンタを誤動作させる原因となる。
【0034】本発明ではこのようにブートプログラムの
更新が失敗した場合の救済処理のために、この正規のブ
ートプログラムと同じ起動機能を有する第2のブートプ
ログラムである一時ブートプログラムと、このプログラ
ムにアクセスするためのジャンプ命令を記憶するための
シーケンスを実行する。
更新が失敗した場合の救済処理のために、この正規のブ
ートプログラムと同じ起動機能を有する第2のブートプ
ログラムである一時ブートプログラムと、このプログラ
ムにアクセスするためのジャンプ命令を記憶するための
シーケンスを実行する。
【0035】図4は、一時ブートプログラムとジャンプ
命令記憶の手順を示すフローチャートである。
命令記憶の手順を示すフローチャートである。
【0036】本フローチャートはステップS5〜ステッ
プS12の計8ステップにて構成されている。
プS12の計8ステップにて構成されている。
【0037】ステップS5は本フローチャートの開始ス
テップを示す。
テップを示す。
【0038】ステップS6は一時ブートプログラムを記
憶するための記憶領域であるブロック25の全ビットの
値を”1”に変換し、全領域を消去する処理を行うステ
ップである。
憶するための記憶領域であるブロック25の全ビットの
値を”1”に変換し、全領域を消去する処理を行うステ
ップである。
【0039】ステップS7は消去済みのブロック25の
領域における一時ブートプログラム領域26に対して、
一時ブートプログラムの記憶を行うステップである。
領域における一時ブートプログラム領域26に対して、
一時ブートプログラムの記憶を行うステップである。
【0040】ステップS8は既に記憶済みのブートプロ
グラムを更新するために、このブートプログラムを含む
ブロック23を消去するステップである。
グラムを更新するために、このブートプログラムを含む
ブロック23を消去するステップである。
【0041】ステップS9はステップS7において記憶
した一時ブートプログラムへアクセスするためのジャン
プ命令をブロック23の先頭アドレスから開始されるジ
ャンプ命令領域21へ記憶するステップである。
した一時ブートプログラムへアクセスするためのジャン
プ命令をブロック23の先頭アドレスから開始されるジ
ャンプ命令領域21へ記憶するステップである。
【0042】ステップS10は同じくブロック23内の
ブートプログラム領域24に新しいブートプログラムを
記憶するステップである。
ブートプログラム領域24に新しいブートプログラムを
記憶するステップである。
【0043】このとき、ジャンプ領域21には、ジャン
プ命令が記憶されたままの状態が維持される。また、ブ
ロック23内にはブートプログラムの記憶が正常に書き
込まれたか否かを示すフラグを書き込むフラグ領域22
が予め確保される。
プ命令が記憶されたままの状態が維持される。また、ブ
ロック23内にはブートプログラムの記憶が正常に書き
込まれたか否かを示すフラグを書き込むフラグ領域22
が予め確保される。
【0044】このように、新しいブートプログラムが正
常にブロック24に書き込まれると、処理は次段のステ
ップS11へと移行する。
常にブロック24に書き込まれると、処理は次段のステ
ップS11へと移行する。
【0045】このステップS11においては、前段のス
テップS10において新しいブートプログラムが正常に
記憶されたことにより、不要となったジャンプ命令の消
去処理を行う。
テップS10において新しいブートプログラムが正常に
記憶されたことにより、不要となったジャンプ命令の消
去処理を行う。
【0046】ステップS10において、新しいブートプ
ログラムが正常に記憶されなかった場合は、電源立ち上
げ時にメモリの先頭アドレスによって指定されるジャン
プ命令に基づいて、一時ブートプログラムにアクセスが
行われ、一時ブートプログラムによってシステムを起動
するブート処理が行われるが、新しいブートプログラム
が正常に記憶された場合は、ブート処理を一時ブートプ
ログラムにて実行する必要がないので、ジャンプ命令は
削除されることになる。
ログラムが正常に記憶されなかった場合は、電源立ち上
げ時にメモリの先頭アドレスによって指定されるジャン
プ命令に基づいて、一時ブートプログラムにアクセスが
行われ、一時ブートプログラムによってシステムを起動
するブート処理が行われるが、新しいブートプログラム
が正常に記憶された場合は、ブート処理を一時ブートプ
ログラムにて実行する必要がないので、ジャンプ命令は
削除されることになる。
【0047】このようにして、本発明の電子機器では、
ブートプログラムの更新処理が正常に終了しなかった場
合においても一時ブートプログラムによってシステムの
起動が行える。
ブートプログラムの更新処理が正常に終了しなかった場
合においても一時ブートプログラムによってシステムの
起動が行える。
【0048】図3に示されるシーケンスのステップS1
1において、ジャンプ命令が削除できるか否かは、正規
のブートプログラムが正常に記憶されたか否かを判定し
なければ決定できない。
1において、ジャンプ命令が削除できるか否かは、正規
のブートプログラムが正常に記憶されたか否かを判定し
なければ決定できない。
【0049】この判定は正規のブートプログラムが正常
に起動されたか否かによって行われる。
に起動されたか否かによって行われる。
【0050】次に、正規のブートプログラムが正常に起
動されたか否かによって判定するシーケンスについて図
5を用いて説明する。
動されたか否かによって判定するシーケンスについて図
5を用いて説明する。
【0051】図5は、ブートプログラムが正常起動を判
定しジャンプ命令の削除を自動的に実行するシーケンス
のフローチャートである。
定しジャンプ命令の削除を自動的に実行するシーケンス
のフローチャートである。
【0052】このフローチャートはステップS13〜ス
テップS21の9ステップからなる。
テップS21の9ステップからなる。
【0053】ステップS13は本フローチャートの開始
ステップである。
ステップである。
【0054】ステップS14はフラグ領域22に記憶さ
れたデータをそのまま維持するステップである。
れたデータをそのまま維持するステップである。
【0055】ステップS15は、電子機器のリセットボ
タンが押され、リセット処理が行われた後、ジャンプ命
令に従って一時ブートプログラムへジャンプするステッ
プである。
タンが押され、リセット処理が行われた後、ジャンプ命
令に従って一時ブートプログラムへジャンプするステッ
プである。
【0056】ステップS16はフラグ領域22のデータ
がFFFFFFFFhであるか否かを判定するステップ
である。
がFFFFFFFFhであるか否かを判定するステップ
である。
【0057】このとき、フラグ領域22のデータがFF
FFFFFFhである場合(Yes)の場合は、次段のス
テップS17へとシーケンスは移行する。
FFFFFFhである場合(Yes)の場合は、次段のス
テップS17へとシーケンスは移行する。
【0058】ステップS17はフラグ領域22にFFF
FFFFFh以外の値を設定して、フラグ領域22へと
記憶するステップである。
FFFFFh以外の値を設定して、フラグ領域22へと
記憶するステップである。
【0059】ステップS17にてフラグ領域22へのデ
ータの更新記憶が終了すると、ステップS18へとシー
ケンスは移行する。
ータの更新記憶が終了すると、ステップS18へとシー
ケンスは移行する。
【0060】ステップS18は、新しい正規のブートプ
ログラムに対するアクセスを行うステップである。
ログラムに対するアクセスを行うステップである。
【0061】ステップS19は、ステップS18におい
てアクセスした新しい正規のブートプログラムを実行
し、新しく記憶されたブートプログラムが正常に起動し
た場合は、不要になったジャンプ命令を削除するステッ
プである。
てアクセスした新しい正規のブートプログラムを実行
し、新しく記憶されたブートプログラムが正常に起動し
た場合は、不要になったジャンプ命令を削除するステッ
プである。
【0062】無論、新しく記憶されたブートプログラム
が正常起動しなかった場合は、ジャンプ命令を削除する
ことはない。
が正常起動しなかった場合は、ジャンプ命令を削除する
ことはない。
【0063】ステップS19におけるシーケンスの処理
の終了後は、シーケンスは終了ステップS20へと移行
する。
の終了後は、シーケンスは終了ステップS20へと移行
する。
【0064】本シーケンス初回実行時は、フラグ領域S
14のデータの値が消去処理したときに記憶されるデー
タの値と同じであるので、その値は、FFFFFFFF
hとなっているので、ステップS16〜ステップS20
の一連のシーケンス処理が必ず行われる。
14のデータの値が消去処理したときに記憶されるデー
タの値と同じであるので、その値は、FFFFFFFF
hとなっているので、ステップS16〜ステップS20
の一連のシーケンス処理が必ず行われる。
【0065】ただし、一度はステップS16〜ステップ
S20の一連のシーケンス処理が行われると、フラグ領
域22のデータ値はステップS13において必ず変更さ
れる。
S20の一連のシーケンス処理が行われると、フラグ領
域22のデータ値はステップS13において必ず変更さ
れる。
【0066】次に、2回目以降のシーケンスの処理につ
いて説明する。
いて説明する。
【0067】前述の通り、ステップS15において、リ
セット後、一時ブートプログラムへのアクセスを実行し
待機状態となるのだが、1回目のシーケンス実行のステ
ップS19において、一時ブートプログラムの正常起動
が確認された場合はジャンプ命令が存在しない。
セット後、一時ブートプログラムへのアクセスを実行し
待機状態となるのだが、1回目のシーケンス実行のステ
ップS19において、一時ブートプログラムの正常起動
が確認された場合はジャンプ命令が存在しない。
【0068】よって、一時ブートプログラムへのアクセ
スを行わず新しく更新された正規のブートプログラムに
よってシステムの起動を行うブート処理が実行される。
スを行わず新しく更新された正規のブートプログラムに
よってシステムの起動を行うブート処理が実行される。
【0069】しかしながら、ステップS19において一
時ブートプログラムの正常起動されなかった場合は、ジ
ャンプ命令に従って一時ブートプログラムへアクセスし
待機状態となる。
時ブートプログラムの正常起動されなかった場合は、ジ
ャンプ命令に従って一時ブートプログラムへアクセスし
待機状態となる。
【0070】ステップS16において、フラグ領域22
のデータはFFFFFFFFhとならないので、必ず、
次段のステップS21へとシーケンスは移行する。
のデータはFFFFFFFFhとならないので、必ず、
次段のステップS21へとシーケンスは移行する。
【0071】ステップS21は一時ブートプログラムか
らのブート処理を行うステップである。
らのブート処理を行うステップである。
【0072】ステップS21の終了後はステップS20
の終了ステップへと移行する。
の終了ステップへと移行する。
【0073】このように、2回目以降のシーケンスの実
行においては、初回のシーケンスの実行において正規の
ブートログラムが正常起動できなかった場合は、一時ブ
ートプログラムによるブート処理が行われ、初回のシー
ケンスの実行において、正規のブートログラムが正常起
動できた場合は、この正規のブートプログラムによるブ
ート処理が実行される。
行においては、初回のシーケンスの実行において正規の
ブートログラムが正常起動できなかった場合は、一時ブ
ートプログラムによるブート処理が行われ、初回のシー
ケンスの実行において、正規のブートログラムが正常起
動できた場合は、この正規のブートプログラムによるブ
ート処理が実行される。
【0074】また、図3に示されるシーケンスのステッ
プS11において、ジャンプ命令を削除するか否かにつ
いて、ユーザーの機能選択によって処理を実行しても良
い。
プS11において、ジャンプ命令を削除するか否かにつ
いて、ユーザーの機能選択によって処理を実行しても良
い。
【0075】このシーケンスについて、図6を用いて説
明する。図6は、ジャンプ命令の削除をユーザー判断に
よって行うシーケンスを示すフローチャートである。
明する。図6は、ジャンプ命令の削除をユーザー判断に
よって行うシーケンスを示すフローチャートである。
【0076】このフローチャートはステップS26〜ス
テップS33の計7ステップからなる。
テップS33の計7ステップからなる。
【0077】ステップS1はこのフローチャートの開始
ステップである。
ステップである。
【0078】ステップS27は一時ブートプログラムへ
ジャンプし待機状態にとなるステップである。
ジャンプし待機状態にとなるステップである。
【0079】ステップS28はユーザーによる機能の選
択を促す機能選択ステップである。
択を促す機能選択ステップである。
【0080】ここで、ユーザーが選択可能な機能は一時
ブートプログラムからのブート処理実行と、新しいブー
トプログラムからのブート処理実行と、一時ブートプロ
グラムへジャンプ命令削除である。
ブートプログラムからのブート処理実行と、新しいブー
トプログラムからのブート処理実行と、一時ブートプロ
グラムへジャンプ命令削除である。
【0081】このステップにおいて、ユーザーが機能を
選択すると、次段のステップS29の判定ステップへと
移行する。
選択すると、次段のステップS29の判定ステップへと
移行する。
【0082】このステップでは、判定結果に応じて次段
の選択肢となっているステップS30〜ステップS32
のうちいずれかひとつのステップにシーケンスの処理は
移行する。
の選択肢となっているステップS30〜ステップS32
のうちいずれかひとつのステップにシーケンスの処理は
移行する。
【0083】一時ブートプログラムからのブート処理実
行が選択された場合は、ステップS30へとシーケンス
は移行し、新しいブートプログラムからのブート処理実
行が選択された場合は、ステップS31へとシーケンス
は移行し、一時ブートプログラムへジャンプ命令削除が
選択された場合はステップS32へとシーケンスは移行
する。
行が選択された場合は、ステップS30へとシーケンス
は移行し、新しいブートプログラムからのブート処理実
行が選択された場合は、ステップS31へとシーケンス
は移行し、一時ブートプログラムへジャンプ命令削除が
選択された場合はステップS32へとシーケンスは移行
する。
【0084】そして、各ステップS30〜S32はそれ
ぞれ選択されたシーケンスの処理が実行される。
ぞれ選択されたシーケンスの処理が実行される。
【0085】これらの処理実行後は、終了ステップであ
るステップS33へとシーケンスの処理は移行する。
るステップS33へとシーケンスの処理は移行する。
【0086】以上、説明したように本発明では、新しい
正規のブートプログラムの実行が正しく行われた場合は
ジャンプ命令の削除を、新しい正規のブートプログラム
の実行が正しく行われなかった場合は一時ブートプログ
ラムの実行をユーザーリクエストに応じて行うことがで
きる。
正規のブートプログラムの実行が正しく行われた場合は
ジャンプ命令の削除を、新しい正規のブートプログラム
の実行が正しく行われなかった場合は一時ブートプログ
ラムの実行をユーザーリクエストに応じて行うことがで
きる。
【0087】ところで、本発明の電子機器はCPU2
が、全ビット数”0”(000000000h)のオー
ル1コードと、全ビット数”1”(FFFFFFFF
h)のオール0コードがNOP(No-Operation Instruc
tion:非実行命令)と解釈する場合を想定している。
が、全ビット数”0”(000000000h)のオー
ル1コードと、全ビット数”1”(FFFFFFFF
h)のオール0コードがNOP(No-Operation Instruc
tion:非実行命令)と解釈する場合を想定している。
【0088】しかし、本発明は、オール1コードあるい
はオール0コードのいずれか一方がNOPとして定義さ
れていないCPUを採用したシステムにも適用が可能で
ある。
はオール0コードのいずれか一方がNOPとして定義さ
れていないCPUを採用したシステムにも適用が可能で
ある。
【0089】オール1コードがNOPとして定義されて
いないCPUにおいて、ブートプログラムの記憶処理の
最中に、電源が停止するようなトラブルが発生したとし
ても、ジャンプ命令さえフェッチ可能な状態であれば一
時ブートプログラムからのブート処理が可能である。
いないCPUにおいて、ブートプログラムの記憶処理の
最中に、電源が停止するようなトラブルが発生したとし
ても、ジャンプ命令さえフェッチ可能な状態であれば一
時ブートプログラムからのブート処理が可能である。
【0090】オール0コードがNOPとして定義されて
いないCPUにおいては、ジャンプ命令を削除するので
はなく、更新後の正規のブートプログラムへのジャンプ
命令へと変更する場合は、ジャンプ命令のコードを数ビ
ットの値を1から0へと変更するだけで容易に正規のブ
ートプログラムへのジャンプ命令に変更することができ
る。
いないCPUにおいては、ジャンプ命令を削除するので
はなく、更新後の正規のブートプログラムへのジャンプ
命令へと変更する場合は、ジャンプ命令のコードを数ビ
ットの値を1から0へと変更するだけで容易に正規のブ
ートプログラムへのジャンプ命令に変更することができ
る。
【0091】ジャンプ命令の変更はビット単位で行わ
れ、且つ、正規のブートプログラムが記憶されているブ
ロック23の先頭アドレスと、一時ブートプログラムが
記憶されたブロック25の先頭アドレスと差分は通常2
のべき乗となる。
れ、且つ、正規のブートプログラムが記憶されているブ
ロック23の先頭アドレスと、一時ブートプログラムが
記憶されたブロック25の先頭アドレスと差分は通常2
のべき乗となる。
【0092】よって、正規のブートプログラムと一時ブ
ートプログラムの先頭アドレスの差分も2のべき乗とな
るように調整することが容易であることから、ジャンプ
命令のアドレス指定部分のビットを1から0へ変更する
だけで、容易に正規のブートプログラムへのジャンプ命
令に変更することができる。
ートプログラムの先頭アドレスの差分も2のべき乗とな
るように調整することが容易であることから、ジャンプ
命令のアドレス指定部分のビットを1から0へ変更する
だけで、容易に正規のブートプログラムへのジャンプ命
令に変更することができる。
【0093】このように、本発明の実施の形態において
は、電子機器における起動用ブートプログラムの更新の
際に電源停止等のトラブルが発生したとしても、一時ブ
ートプログラムによって、システムの起動が実行される
ので、トラブルの発生時もシステムが起動しなくなるこ
とのないブートプログラム記憶装置を提供することがで
きる。
は、電子機器における起動用ブートプログラムの更新の
際に電源停止等のトラブルが発生したとしても、一時ブ
ートプログラムによって、システムの起動が実行される
ので、トラブルの発生時もシステムが起動しなくなるこ
とのないブートプログラム記憶装置を提供することがで
きる。
【0094】また、とりわけ、ブート処理専用のROM
を持たないシステムに本発明は好適である。
を持たないシステムに本発明は好適である。
【0095】
【発明の効果】以上説明したように、ブートプログラム
を更新する際に、この更新処理が正常に終了しなかった
場合でも起動が可能なシステムを提供することができ
る。
を更新する際に、この更新処理が正常に終了しなかった
場合でも起動が可能なシステムを提供することができ
る。
【図1】本発明の電子機器のブロック図
【図2】フラッシュメモリ1のメモリマップ
【図3】正規のブートプログラムの更新処理を示すフロ
ーチャート
ーチャート
【図4】一時ブートプログラムとジャンプ命令記憶の手
順を示すフローチャート
順を示すフローチャート
【図5】ブートプログラムが正常起動を判定しジャンプ
命令の削除を自動的に実行するシーケンスのフローチャ
ート
命令の削除を自動的に実行するシーケンスのフローチャ
ート
【図6】ジャンプ命令の削除をユーザー判断によって行
うシーケンスを示すフローチャート
うシーケンスを示すフローチャート
1… …フラッシュメモリ
2… …CPU
21… …ジャンプ命令領域
22… …フラグ領域
23… …ブロック
24… …ブートプログラム領域
25… …ブロック
26… …一時ブートプログラム領域
Claims (9)
- 【請求項1】メモリと、前記メモリ内の複数の記憶領域
における第1の記憶領域にブートプログラムを記憶する
第1のブートプログラム記憶手段と、 前記メモリ内の複数領域における第2の記憶領域に第2
のブートプログラムを記憶する第2のブートプログラム
記憶手段と、 前記メモリの第3の記憶領域に、前記第2のブートプロ
グラムに対するジャンプ命令を記憶するジャンプ命令記
憶手段と、 前記第1のブートプログラムによるブート処理が実行で
きなかった場合は、前記ジャンプ命令に基づいて、前記
第2のブートプログラムにてブート処理を実行するブー
ト処理実行手段を具備したことを特徴とするブートプロ
グラム記憶装置。 - 【請求項2】前記第1のブートプログラムによって、ブ
ート処理が実行できた場合、前記第3の領域に記憶した
ジャンプ命令を削除するジャンプ命令削除手段を具備し
たことを特徴とする請求項1記載のブートプログラム記
憶装置。 - 【請求項3】電源がイネーブルになった場合、前記メモ
リの先頭アドレスの記憶領域からアクセスを開始する先
頭アドレスアクセス開始手段と、 前記先頭アドレスから始まる前記第3の記憶領域に前記
ジャンプ命令を記憶したことを特徴とする請求項1記載
のブートプログラム記憶装置。 - 【請求項4】前記第1の領域に第1のブートプログラム
を記憶する前に第1の領域の消去処理を行い、前記第2
の領域に第2のブートプログラムを記憶する前に第2の
領域の消去処理を行う領域消去手段を具備したことを特
徴とする請求項1記載のブートプログラム記憶装置。 - 【請求項5】前記メモリにはフラグを記憶する第4の記
憶領域を設けるフラグ領域設定手段と、 前記ブート実行手段は、前記フラグが第1の値の場合、
前記第1のブートプログラムに基づいてブート処理を行
い、前記フラグが第2の値の場合、前記第2のブートプ
ログラムに基づいて行う前記ブート実行手段と、 前記第1のブートプログラムを実行する場合は前記フラ
グの値を第2の値に変更するフラグ変更手段と、 前記第1のブートプログラムによるブート処理が実行で
きた場合、前記ジャンプ命令を削除する制御手段を具備
したことを特徴とする請求項1記載のブートプログラム
記憶装置。 - 【請求項6】前記第1のブートプログラムを実行する
か、前記第2のブートプログラムを実行するか、前記ジ
ャンプ命令を削除するか否かを決定する機能選択手段を
具備したこと特徴とする請求項1記載のブートプログラ
ム記憶装置。 - 【請求項7】前記第1の記憶領域に消去処理行った場
合、前記第1の領域に全ビットの値が”1”のオール1
コードを記憶する前記消去手段と、 前記第1の領域に記憶されたオール1コードを、制御を
変えない命令として実行するCPUとを具備したことを
特徴とする請求項5記載のブートプログラム記憶装置。 - 【請求項8】オール0コードを、制御を変えない命令と
して実行しないCPUと、 前記第2のブートプログラムに対する前記ジャンプ命令
のコードを構成するビットデータの一部を変更し、第1
のブートプログラムへのジャンプ命令に変更するジャン
プ命令変更手段とを具備したことを特徴とする請求項1
記載のブートプログラム記憶装置。 - 【請求項9】メモリを備える電子機器のブートプログラ
ム記憶方法であって、 前記メモリ内の複数の記憶領域における第1の記憶領域
にブートプログラムを記憶する第1のブートプログラム
記憶ステップと、 前記メモリ内の複数領域における第2の記憶領域に第2
のブートプログラムを記憶する第2のブートプログラム
記憶ステップと、 前記メモリの第3の記憶領域に、前記第2のブートプロ
グラムに対するジャンプ命令を記憶するジャンプ命令記
憶ステップと、 前記第1のブートプログラムによるブート処理が実行で
きなかった場合は、前記ジャンプ命令に基づいて、前記
第2のブートプログラムにてブート処理を実行するブー
ト処理実行ステップを具備したことを特徴とする電子機
器のブートプログラム記憶方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002090390A JP2003288213A (ja) | 2002-03-28 | 2002-03-28 | ブートプログラム記憶装置、電子機器のブートプログラム記憶方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002090390A JP2003288213A (ja) | 2002-03-28 | 2002-03-28 | ブートプログラム記憶装置、電子機器のブートプログラム記憶方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003288213A true JP2003288213A (ja) | 2003-10-10 |
Family
ID=29235710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002090390A Abandoned JP2003288213A (ja) | 2002-03-28 | 2002-03-28 | ブートプログラム記憶装置、電子機器のブートプログラム記憶方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003288213A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005250882A (ja) * | 2004-03-04 | 2005-09-15 | Fuji Xerox Co Ltd | 情報処理装置およびプログラムの書き換え方法 |
JP2006113656A (ja) * | 2004-10-12 | 2006-04-27 | Denso Corp | 書き換えプログラム送信方法、書き換えプログラム送信装置、書き換えプログラム送信プログラム、車両制御装置、および書き換えプログラム受信・起動プログラム |
US7418542B2 (en) | 2004-10-14 | 2008-08-26 | Sharp Kabushiki Kaisha | Rewritable, nonvolatile memory, electronic device, method of rewriting rewritable, nonvolatile memory, and storage medium having stored thereon rewrite program |
KR101174231B1 (ko) | 2010-11-23 | 2012-08-14 | 주식회사 케피코 | 임베디드 시스템의 마이크로 컨트롤러 및 임베디드 소프트웨어 리프로그래밍 방법 |
JP2014063510A (ja) * | 2013-11-19 | 2014-04-10 | Renesas Electronics Corp | データ処理装置 |
-
2002
- 2002-03-28 JP JP2002090390A patent/JP2003288213A/ja not_active Abandoned
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005250882A (ja) * | 2004-03-04 | 2005-09-15 | Fuji Xerox Co Ltd | 情報処理装置およびプログラムの書き換え方法 |
JP2006113656A (ja) * | 2004-10-12 | 2006-04-27 | Denso Corp | 書き換えプログラム送信方法、書き換えプログラム送信装置、書き換えプログラム送信プログラム、車両制御装置、および書き換えプログラム受信・起動プログラム |
JP4617816B2 (ja) * | 2004-10-12 | 2011-01-26 | 株式会社デンソー | 車両制御装置、および書き換えプログラム受信・起動プログラム |
US7418542B2 (en) | 2004-10-14 | 2008-08-26 | Sharp Kabushiki Kaisha | Rewritable, nonvolatile memory, electronic device, method of rewriting rewritable, nonvolatile memory, and storage medium having stored thereon rewrite program |
KR101174231B1 (ko) | 2010-11-23 | 2012-08-14 | 주식회사 케피코 | 임베디드 시스템의 마이크로 컨트롤러 및 임베디드 소프트웨어 리프로그래밍 방법 |
JP2014063510A (ja) * | 2013-11-19 | 2014-04-10 | Renesas Electronics Corp | データ処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3838840B2 (ja) | コンピュータ | |
US7322029B2 (en) | Method and system for recovering program code in a computer system | |
JP3372964B2 (ja) | コンピュータシステム | |
KR100283243B1 (ko) | 운영체제의 부팅방법 | |
US7421573B2 (en) | Apparatus and method for updating firmware | |
JP2001209543A (ja) | フラッシュ・マイコンにおけるプログラム書き換え方法 | |
JPH1097353A (ja) | コンピュータシステム及び同システムに適用するレジューム処理方法 | |
JP3268130B2 (ja) | フラッシュeepromを用いたデータ処理装置 | |
WO2002095556A1 (en) | Apparatus having stand-by mode, program, and control method for apparatus having stand-by mode | |
US5537531A (en) | Portable computer with a bank switch for switching between a ROM and a memory, both allocated to the same address space, by changing a port address of a keyboard controller | |
JP3830867B2 (ja) | シングルチップマイクロコンピュータおよびそのブート領域切り替え方法 | |
EP1647885A2 (en) | Rewriting a non-volatile memory | |
JP2001195237A (ja) | コンピュータ及びコンピュータの表示方法及びコンピュータの表示プログラムを記録した記録媒体 | |
JP2003288213A (ja) | ブートプログラム記憶装置、電子機器のブートプログラム記憶方法 | |
JP2000163268A (ja) | コンピュータ | |
KR100223844B1 (ko) | 옵션 자동 설정 회로 | |
JP2007148695A (ja) | 情報処理装置およびブートプログラムの書き換え方法 | |
JP2002175193A (ja) | プログラム書き換え装置及びプログラム書き換え方法 | |
JP2008009494A (ja) | 画像形成装置 | |
JP2007164392A (ja) | 計算機 | |
JP2021026603A (ja) | 情報処理装置、制御方法、及びプログラム | |
JP4031693B2 (ja) | 不揮発性メモリおよびこれを有したデータ記憶装置 | |
JPH09330216A (ja) | Bios書換システム | |
JP2005128613A (ja) | 画像形成装置 | |
JP2002073360A (ja) | 起動情報書換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041104 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050414 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050606 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20060818 |