(57)【特許請求の範囲】
【請求項１】
電子機器本体の起動を制御する制御手段と、
前記制御手段により実行される同一内容のブートプログラムを、所定のアドレスを起点とした連続する複数のメモリ領域内の夫々に格納した不揮発性の記憶手段と、
前記制御手段が前記ブートプログラムを正常に実行したか否かを判定する起動判定手段と、
前記起動判定手段により、前記ブートプログラムが正常に実行されていないと判定された場合、前記制御手段及び記憶手段を再起動させる再起動手段と、
前記制御手段の再起動により、当該制御手段からブートプログラムの読み出しが要求される毎に、前記メモリ領域の各々に格納されたブートプログラムが順次読み出されるよう制御するアドレス変換手段と、
を備え、
前記再起動手段は、前記起動判定手段で前記ブートプログラムが正常に実行されていないと判定される毎にその回数を計数し、
前記アドレス変換手段は、前記制御手段からリセットベクタが入力される毎に、当該リセットベクタが指示するアドレス値に、前記ブートプログラムのプログラムサイズに応じたアドレス値を、前記再起動手段が計数するカウンタ値に応じた分加算することで、前記メモリ領域の各々に格納されたブートプログラムを、最下位側のアドレスに対応するブートプログラムから順次読み出されるよう制御することを特徴とする電子機器。
【請求項２】
前記ブートプログラムは、自装置を初期化するための初期化プログラムと、誤り訂正機能を実現させるための誤り訂正プログラムと、ブート完了信号を出力させるためのブート完了信号制御プログラムと、当該ブートプログラム以外の他のプログラムへのジャンプコードとを少なくとも含み、
前記制御手段は、前記ブートプログラムを、前記初期化プログラム、前記誤り訂正プログラム、前記ブート完了信号制御プログラム、前記ジャンプコードの順に実行することを特徴とする請求項１に記載の電子機器。
【請求項３】
前記起動判定手段は、前記制御手段が前記ブート完了信号制御プログラムを実行することで出力される前記ブート完了信号に基づいて、前記ブートプログラムが正常に実行されたことを判定することを特徴する請求項２に記載の電子機器。
【請求項４】
時間の測定を行うタイマー手段を更に備え、
前記起動判定手段は、前記再起動手段により前記制御手段が再起動されてから、前記タイマー手段により計測される所定の時間以内に前記ブート完了信号の出力が確認できない場合、前記ブートプログラムの実行に失敗したと判定することを特徴とする請求項３に記載の電子機器。
【請求項５】
前記起動判定手段は、前記ブートプログラムの実行に失敗したと判定すると、前記再起動手段にブートプログラムの実行に失敗したことを指示するブート失敗信号を前記再起動手段に出力し、
前記再起動手段は、前記ブート失敗信号の入力をトリガとして、前記制御手段及び記憶手段を再起動させることを特徴とする請求項４に記載の電子機器。
【請求項６】
前記再起動手段は、前記ブート失敗信号の入力をトリガとして、前記タイマー手段が測定する時間をリセットすることを特徴とする請求項５に記載の電子機器。
【請求項７】
報知手段を更に備え、
前記再起動手段は、前記ブート失敗信号が入力された場合に、前記報知手段に前記ブートプログラムの実行が失敗した旨を報知させることを特徴とする請求項５又は６に記載の電子機器。
【請求項８】
前記再起動手段は、前記起動判定手段から前記ブート失敗信号が入力される毎にその回数を計数することを特徴とする請求項５〜７の何れか一項に記載の電子機器。
【請求項９】
前記制御手段は、前記誤り訂正プログラムを実行することで前記誤り訂正機能を実現し、前記ブートプログラム以後に実行される前記他のプログラムに対し、前記誤り訂正機能を適用することを特徴とする請求項２に記載の電子機器。
【請求項１０】
前記記憶手段は、ＮＡＮＤ型フラッシュメモリであることを特徴とする請求項１〜９の何れか一項に記載の電子機器。
【請求項１１】
前記アドレス変換手段は、前記制御手段から複数のサイクルで指定される前記記憶手段の上位のアドレスに基づき、前記メモリ領域の各々に格納されたブートプログラムの読み出しを制御することを特徴とする請求項１〜１０の何れか一項に記載の電子機器。
【請求項１２】
電子機器本体を制御する制御手段が、同一内容のブートプログラムを所定のアドレスを起点とした連続する複数のメモリ領域内の夫々に格納した不揮発性の記憶手段からブートプログラムを読み出し、当該ブートプログラムを実行する実行工程と、
起動判定手段が、前記実行工程で前記ブートプログラムが正常に実行されたか否かを判定する起動判定工程と、
再起動手段が、前記起動判定工程で前記ブートプログラムが正常に実行されていないと判定された場合、前記制御手段及び記憶手段を再起動させる再起動工程と、
アドレス変換手段が、前記再起動工程での再起動により、前記制御手段からブートプログラムの読み出しが要求される毎に、前記メモリ領域の各々に格納されたブートプログラムが順次読み出されるよう制御するアドレス変換工程と、
を含み、
前記再起動手段は、前記再起動工程において、前記起動判定工程で前記ブートプログラムが正常に実行されていないと判定される毎にその回数を計数し、
前記アドレス変換手段は、前記アドレス変換工程において、前記制御手段からリセットベクタが入力される毎に、当該リセットベクタが指示するアドレス値に、前記ブートプログラムのプログラムサイズに応じたアドレス値を、前記再起動手段が計数するカウンタ値に応じた分加算することで、前記メモリ領域の各々に格納されたブートプログラムを、最下位側のアドレスに対応するブートプログラムから順次読み出されるよう制御することを特徴とする起動制御方法。
【請求項１３】
前記ブートプログラムは、自装置を初期化するための初期化プログラムと、誤り訂正機能を実現させるための誤り訂正プログラムと、ブート完了信号を出力させるためのブート完了信号制御プログラムと、当該ブートプログラム以外の他のプログラムへのジャンプコードとを少なくとも含み、
前記制御手段は、前記実行工程において、前記ブートプログラムを、前記初期化プログラム、前記誤り訂正プログラム、前記ブート完了信号制御プログラム、前記ジャンプコードの順に実行することを特徴とする請求項１２に記載の起動制御方法。
【請求項１４】
前記起動判定手段は、前記起動判定工程において、前記制御手段が前記ブート完了信号制御プログラムを実行することで出力される前記ブート完了信号に基づいて、前記ブートプログラムが正常に実行されたことを判定することを特徴する請求項１３に記載の起動制御方法。
【請求項１５】
前記起動判定手段は、前記起動判定工程において、前記再起動工程で前記制御手段が再起動されてから、所定の時間以内に前記ブート完了信号の出力が確認できない場合、前記ブートプログラムの実行に失敗したと判定することを特徴とする請求項１４に記載の起動制御方法。
【請求項１６】
前記起動判定手段は、前記起動判定工程において、前記ブートプログラムの実行に失敗したと判定すると、前記再起動手段にブートプログラムの実行に失敗したことを指示するブート失敗信号を前記再起動手段に出力し、
前記再起動手段は、前記再起動工程において、前記ブート失敗信号の入力をトリガとして、前記制御手段及び記憶手段を再起動させることを特徴とする請求項１５に記載の起動制御方法。
【請求項１７】
前記再起動手段は、前記再起動工程において、前記ブート失敗信号の入力をトリガとして、前記タイマー手段が測定する時間をリセットすることを特徴とする請求項１６に記載の起動制御方法。
【請求項１８】
前記再起動手段は、前記再起動工程において、前記ブート失敗信号が入力された場合に、報知手段に前記ブートプログラムの実行が失敗した旨を報知させることを特徴とする請求項１６又は１７に記載の起動制御方法。
【請求項１９】
前記再起動手段は、前記再起動工程において、前記起動判定手段から前記ブート失敗信号が入力される毎にその回数を計数することを特徴とする請求項１６〜１８の何れか一項に記載の起動制御方法。
【請求項２０】
前記制御手段は、前記実行工程において、前記誤り訂正プログラムを実行することで前記誤り訂正機能を実現し、前記ブートプログラム以後に実行される前記他のプログラムに対し、前記誤り訂正機能を適用することを特徴とする請求項１３に記載の起動制御方法。
【請求項２１】
前記記憶手段は、ＮＡＮＤ型フラッシュメモリであることを特徴とする請求項１２〜２０の何れか一項に記載の起動制御方法。
【請求項２２】
前記アドレス変換手段は、前記アドレス変換工程において、前記制御手段から複数のサイクルで指定されるアドレスに基づき、前記メモリ領域の各々に格納されたブートプログラムの読み出しを制御することを特徴とする請求項１２〜２１の何れか一項に記載の起動制御方法。
【請求項２３】
画像形成装置本体の起動を制御する制御手段と、
前記制御手段により実行される同一内容のブートプログラムを、所定のアドレスを起点とした連続する複数のメモリ領域内の夫々に格納した不揮発性の記憶手段と、
前記制御手段が前記ブートプログラムを正常に実行したか否かを判定する起動判定手段と、
前記起動判定手段により、前記ブートプログラムが正常に実行されていないと判定された場合、前記制御手段及び記憶手段を再起動させる再起動手段と、
前記制御手段の再起動により、当該制御手段からブートプログラムの読み出しが要求される毎に、前記メモリ領域の各々に格納されたブートプログラムが順次読み出されるよう制御するアドレス変換手段と、
を備え、
前記再起動手段は、前記起動判定手段で前記ブートプログラムが正常に実行されていないと判定される毎にその回数を計数し、
前記アドレス変換手段は、前記制御手段からリセットベクタが入力される毎に、当該リセットベクタが指示するアドレス値に、前記ブートプログラムのプログラムサイズに応じたアドレス値を、前記再起動手段が計数するカウンタ値に応じた分加算することで、前記メモリ領域の各々に格納されたブートプログラムを、最下位側のアドレスに対応するブートプログラムから順次読み出されるよう制御することを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器、電子機器の起動方法及び画像形成装置に関し、特に、記憶媒体に記憶されたブートプログラムを読み出して実行するＣＰＵを備えた電子機器、電子機器の起動制御方法及び画像形成装置に関する。
【背景技術】
【０００２】
近年、低価格、大容量のＮＡＮＤ型フラッシュメモリ（ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ）が各種電子機器に搭載されるようになってきている。しかし、ＮＡＮＤ型フラッシュメモリは、ＮＯＲ型フラッシュメモリ（ＮＯＲ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ）等の比較的信頼度の高い不揮発性メモリと比較し、記憶セル中に不良（不良セル）が発生する確率が高いという特性を有している。そのため、ＮＡＮＤ型フラッシュメモリにプログラムが格納されている場合には、プログラムの読み出し時に記憶されていたデータ値が誤った値で読み出されることがある。
【０００３】
データ値の誤りを訂正するため、通常、誤り訂正機能を実現させる誤り訂正プログラムが合わせて用意されているが、ブートプログラム部分は誤り訂正プログラム自体をも含んでいるため、誤り訂正機能により誤り訂正を行うことができないという実情がある。このような理由から、各種電子機器でＣＰＵが最初に実行するブートプログラム部分については、上述したＮＯＲ型フラッシュメモリ等の比較的信頼度の高い不揮発性メモリに格納することが行われている。
【０００４】
しかしながら、ＮＯＲ型フラッシュメモリは、記憶容量の割に価格が高額であるため、ＮＯＲ型フラッシュメモリだけで動作する電子機器を実現するには、コストが嵩むという問題がある。そのため、ＮＡＮＤ型フラッシュメモリの冗長性を高めることで、この問題を解決する方策が提案されている。例えば、特許文献１には、ブートプログラムを複数のブートＲＯＭに格納しておき、第１のブートＲＯＭからのＣＰＵの起動時間を計測し、所定の時間内にＣＰＵとの通信が成立しなかった場合には、そのＣＰＵは正常に起動しなかったという判断のもと、第２のブートＲＯＭに切り替えてＣＰＵを再起動させる技術が開示されている。また、特許文献１には、ブートＲＯＭ内の二つのメモリ領域に同一のブートプログラムを夫々記憶させておき、制御信号のハイレベル／ローレベルに応じて何れか一方のブートプログラムを読み出す技術が開示されている。
【０００５】
【特許文献１】特開２００１−１０９６２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術では、複数のブートＲＯＭにブートプログラムを夫々格納する必要があるため、ブートＲＯＭの個数に応じてコストが嵩むとともに、装置面積が増大するという問題がある。また、ブートＲＯＭ内の二つのメモリ領域に同一のブートプログラムを夫々記憶させた場合には、制御信号のハイレベル／ローレベルにより２つのブートプログラムしか読み出すことができないため、冗長構成としては十分であるとは言い難い。また、引用文献１では、正常に起動できないときにＣＰＵのみリセットすることとなっているが、フラッシュメモリ等の不揮発性メモリでは、ＣＰＵのリセットに合わせてリセットを行う必要があるため、ブートプログラムを切り替えて読み出す際に正常に動作しない可能性がある。
【０００７】
本発明は、上記に鑑みてなされたものであって、ブートプログラムの正常な実行をより確実に行うことが可能な電子機器、電子機器の起動制御方法及び画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、請求項１に係る発明は、電子機器本体の起動を制御する制御手段と、前記制御手段により実行される同一内容のブートプログラムを、所定のアドレスを起点とした連続する複数のメモリ領域内の夫々に格納した不揮発性の記憶手段と、前記制御手段が前記ブートプログラムを正常に実行したか否かを判定する起動判定手段と、前記起動判定手段により、前記ブートプログラムが正常に実行されていないと判定された場合、前記制御手段及び記憶手段を再起動させる再起動手段と、前記制御手段の再起動により、当該制御手段からブートプログラムの読み出しが要求される毎に、前記メモリ領域の各々に格納されたブートプログラムが順次読み出されるよう制御するアドレス変換手段と、を備え、前記再起動手段は、前記起動判定手段で前記ブートプログラムが正常に実行されていないと判定される毎にその回数を計数し、前記アドレス変換手段は、前記制御手段からリセットベクタが入力される毎に、当該リセットベクタが指示するアドレス値に、前記ブートプログラムのプログラムサイズに応じたアドレス値を、前記再起動手段が計数するカウンタ値に応じた分加算することで、前記メモリ領域の各々に格納されたブートプログラムを、最下位側のアドレスに対応するブートプログラムから順次読み出されるよう制御することを特徴とする。
【０００９】
また、請求項２に係る発明は、請求項１に係る発明において、前記ブートプログラムは、自装置を初期化するための初期化プログラムと、誤り訂正機能を実現させるための誤り訂正プログラムと、ブート完了信号を出力させるためのブート完了信号制御プログラムと、当該ブートプログラム以外の他のプログラムへのジャンプコードとを少なくとも含み、前記制御手段は、前記ブートプログラムを、前記初期化プログラム、前記誤り訂正プログラム、前記ブート完了信号制御プログラム、前記ジャンプコードの順に実行することを特徴とする。
【００１０】
また、請求項３に係る発明は、請求項２に係る発明において、前記起動判定手段は、前記制御手段が前記ブート完了信号制御プログラムを実行することで出力される前記ブート完了信号に基づいて、前記ブートプログラムが正常に実行されたことを判定することを特徴する。
【００１１】
また、請求項４に係る発明は、請求項３に係る発明において、時間の測定を行うタイマー手段を更に備え、前記起動判定手段は、前記再起動手段により前記制御手段が再起動されてから、前記タイマー手段により計測される所定の時間以内に前記ブート完了信号の出力が確認できない場合、前記ブートプログラムの実行に失敗したと判定することを特徴とする。
【００１２】
また、請求項５に係る発明は、請求項４に係る発明において、前記起動判定手段は、前記ブートプログラムの実行に失敗したと判定すると、前記再起動手段にブートプログラムの実行に失敗したことを指示するブート失敗信号を前記再起動手段に出力し、前記再起動手段は、前記ブート失敗信号の入力をトリガとして、前記制御手段及び記憶手段を再起動させることを特徴とする。
【００１３】
また、請求項６に係る発明は、請求項５に係る発明において、前記再起動手段は、前記ブート失敗信号の入力をトリガとして、前記タイマー手段が測定する時間をリセットすることを特徴とする。
【００１４】
また、請求項７に係る発明は、請求項５又は６に係る発明において、報知手段を更に備え、前記再起動手段は、前記ブート失敗信号が入力された場合に、前記報知手段に前記ブートプログラムの実行が失敗した旨を報知させることを特徴とする。
【００１５】
また、請求項８に係る発明は、請求項５〜７の何れか一項に係る発明において、前記再起動手段は、前記起動判定手段から前記ブート失敗信号が入力される毎にその回数を計数することを特徴とする。
【００１６】
また、請求項９に係る発明は、請求項２に係る発明において、前記制御手段は、前記誤り訂正プログラムを実行することで前記誤り訂正機能を実現し、前記ブートプログラム以後に実行される前記他のプログラムに対し、前記誤り訂正機能を適用することを特徴とする。
【００１７】
また、請求項１０に係る発明は、請求項１〜９の何れか一項に係る発明において、前記記憶手段は、ＮＡＮＤ型フラッシュメモリであることを特徴とする。また、請求項１１に係る発明は、請求項１〜１０の何れか一項に係る発明において、前記アドレス変換手段は、前記制御手段から複数のサイクルで指定される前記記憶手段の上位のアドレスに基づき、前記メモリ領域の各々に格納されたブートプログラムの読み出しを制御することを特徴とする。
【００１８】
また、請求項１２に係る発明は、電子機器本体を制御する制御手段が、同一内容のブートプログラムを所定のアドレスを起点とした連続する複数のメモリ領域内の夫々に格納した不揮発性の記憶手段からブートプログラムを読み出し、当該ブートプログラムを実行する実行工程と、起動判定手段が、前記実行工程で前記ブートプログラムが正常に実行されたか否かを判定する起動判定工程と、再起動手段が、前記起動判定工程で前記ブートプログラムが正常に実行されていないと判定された場合、前記制御手段及び記憶手段を再起動させる再起動工程と、アドレス変換手段が、前記再起動工程での再起動により、前記制御手段からブートプログラムの読み出しが要求される毎に、前記メモリ領域の各々に格納されたブートプログラムが順次読み出されるよう制御するアドレス変換工程と、を含み、前記再起動手段は、前記再起動工程において、前記起動判定工程で前記ブートプログラムが正常に実行されていないと判定される毎にその回数を計数し、前記アドレス変換手段は、前記アドレス変換工程において、前記制御手段からリセットベクタが入力される毎に、当該リセットベクタが指示するアドレス値に、前記ブートプログラムのプログラムサイズに応じたアドレス値を、前記再起動手段が計数するカウンタ値に応じた分加算することで、前記メモリ領域の各々に格納されたブートプログラムを、最下位側のアドレスに対応するブートプログラムから順次読み出されるよう制御することを特徴とする。
【００１９】
また、請求項１３に係る発明は、請求項１２に係る発明において、前記ブートプログラムは、自装置を初期化するための初期化プログラムと、誤り訂正機能を実現させるための誤り訂正プログラムと、ブート完了信号を出力させるためのブート完了信号制御プログラムと、当該ブートプログラム以外の他のプログラムへのジャンプコードとを少なくとも含み、前記制御手段は、前記実行工程において、前記ブートプログラムを、前記初期化プログラム、前記誤り訂正プログラム、前記ブート完了信号制御プログラム、前記ジャンプコードの順に実行することを特徴とする。
【００２０】
また、請求項１４に係る発明は、請求項１３に係る発明において、前記起動判定手段は、前記起動判定工程において、前記制御手段が前記ブート完了信号制御プログラムを実行することで出力される前記ブート完了信号に基づいて、前記ブートプログラムが正常に実行されたことを判定することを特徴する。
【００２１】
また、請求項１５に係る発明は、請求項１４に係る発明において、前記起動判定手段は、前記起動判定工程において、前記再起動工程で前記制御手段が再起動されてから、所定の時間以内に前記ブート完了信号の出力が確認できない場合、前記ブートプログラムの実行に失敗したと判定することを特徴とする。
【００２２】
また、請求項１６に係る発明は、請求項１５に係る発明において、前記起動判定手段は、前記起動判定工程において、前記ブートプログラムの実行に失敗したと判定すると、前記再起動手段にブートプログラムの実行に失敗したことを指示するブート失敗信号を前記再起動手段に出力し、前記再起動手段は、前記再起動工程において、前記ブート失敗信号の入力をトリガとして、前記制御手段及び記憶手段を再起動させることを特徴とする。
【００２３】
また、請求項１７に係る発明は、請求項１６に係る発明において、前記再起動手段は、前記再起動工程において、前記ブート失敗信号の入力をトリガとして、前記タイマー手段が測定する時間をリセットすることを特徴とする。
【００２４】
また、請求項１８に係る発明は、請求項１６又は１７に係る発明において、前記再起動手段は、前記再起動工程において、前記ブート失敗信号が入力された場合に、報知手段に前記ブートプログラムの実行が失敗した旨を報知させることを特徴とする。
【００２５】
また、請求項１９に係る発明は、請求項１６〜１８の何れか一項に係る発明において、前記再起動手段は、前記再起動工程において、前記起動判定手段から前記ブート失敗信号が入力される毎にその回数を計数することを特徴とする。
【００２６】
また、請求項２０に係る発明は、請求項１３に係る発明において、前記制御手段は、前記実行工程において、前記誤り訂正プログラムを実行することで前記誤り訂正機能を実現し、前記ブートプログラム以後に実行される前記他のプログラムに対し、前記誤り訂正機能を適用することを特徴とする。
【００２７】
また、請求項２１に係る発明は、請求項１２〜２０の何れか一項に係る発明において、前記記憶手段は、ＮＡＮＤ型フラッシュメモリであることを特徴とする。また、請求項２２に係る発明は、請求項１２〜２１の何れか一項に係る発明において、前記アドレス変換手段は、前記アドレス変換工程において、前記制御手段から複数のサイクルで指定されるアドレスに基づき、前記メモリ領域の各々に格納されたブートプログラムの読み出しを制御することを特徴とする。
【００２８】
また、請求項２３に係る発明は、画像形成装置本体の起動を制御する制御手段と、前記制御手段により実行される同一内容のブートプログラムを、所定のアドレスを起点とした連続する複数のメモリ領域内の夫々に格納した不揮発性の記憶手段と、前記制御手段が前記ブートプログラムを正常に実行したか否かを判定する起動判定手段と、前記起動判定手段により、前記ブートプログラムが正常に実行されていないと判定された場合、前記制御手段及び記憶手段を再起動させる再起動手段と、前記制御手段の再起動により、当該制御手段からブートプログラムの読み出しが要求される毎に、前記メモリ領域の各々に格納されたブートプログラムが順次読み出されるよう制御するアドレス変換手段と、を備え、前記再起動手段は、前記起動判定手段で前記ブートプログラムが正常に実行されていないと判定される毎にその回数を計数し、前記アドレス変換手段は、前記制御手段からリセットベクタが入力される毎に、当該リセットベクタが指示するアドレス値に、前記ブートプログラムのプログラムサイズに応じたアドレス値を、前記再起動手段が計数するカウンタ値に応じた分加算することで、前記メモリ領域の各々に格納されたブートプログラムを、最下位側のアドレスに対応するブートプログラムから順次読み出されるよう制御することを特徴とする。
【発明の効果】
【００２９】
請求項１、１２、２３によれば、制御手段がブートプログラムを正常に実行できなかった場合に、制御手段及び記憶手段の再起動を行い、この再起動に伴って制御手段からブートプログラムの読み出しが要求される毎に、記憶手段内の複数のメモリ領域に夫々格納したブートプログラムを順次読み出すよう制御する。これにより、ブートプログラムの実行が失敗する毎に、制御手段及び記憶手段を再起動し、異なるメモリ領域に夫々格納された同一内容のブートプログラムを順次実行することが可能となるため、ＮＡＮＤ型フラッシュメモリ等の比較的信頼性の低い不揮発性メモリにブートプログラムを記憶した場合であっても、ブートプログラムの正常な実行をより確実に行うことができる。
【００３０】
また、請求項３、１４によれば、ブートプログラムに含まれたブート完了信号制御プログラムの実行により出力されるブート完了信号に基づいて、ブートプログラムが正常に実行されたことを判定することができるため、ブートプログラムが正常に実行されたか否かをより正確に判断することができる。
【００３１】
また、請求項４、１５によれば、制御手段が再起動されてから、所定の時間以内にブート完了信号の出力が確認できない場合、ブートプログラムの実行に失敗したと判定することで、ブートプログラムが正常に実行されたか否かをより正確に判断することができる。
【００３２】
また、請求項５、１６によれば、ブート失敗信号をトリガに、制御手段及び記憶手段の再起動を行うため、ブートプログラムを切り替えて読み出す際の安定性を向上させることができる。
【００３３】
また、請求項６、１７によれば、ブート失敗信号をトリガに、タイマー手段が測定する時間のリセットを行うことで、ブートプログラムの正常実行を判定する際の指標を画一化することができる。
【００３４】
また、請求項７、１８によれば、ブートプログラムの実行が失敗した旨を報知することができるため、ユーザに本装置が異常状態であることを把握させることができる。
【００３７】
また、請求項９、２０によれば、誤り訂正機能により、ブートプログラム以後に実行される他のプログラムの誤りを訂正することができる。
【発明を実施するための最良の形態】
【００３８】
以下に添付図面を参照して、本発明に係る電子機器、電子機器の起動制御方法及び画像形成装置の最良な実施の形態を詳細に説明する。
【００３９】
［第１の実施形態］
図１は、本実施形態に係る電子機器１００のハードウェア構成を示したブロック図である。図１に示したように、電子機器１００は、リセット回路１１と、不揮発性メモリ１２と、アドレス変換回路１３と、ＣＰＵ１４と、ＣＰＵ起動判断部１５と、ＣＰＵ再起動部１６と、表示部１７とを備えている。
【００４０】
リセット回路１１は、電源オン時又はリセット時に電子機器１００全体の初期化、即ちハードウェアリセットを指示するリセット信号を、不揮発性メモリ１２、アドレス変換回路１３、ＣＰＵ１４、ＣＰＵ再起動部１６及び表示部１７に出力する。
【００４１】
不揮発性メモリ１２は、ＮＡＮＤ型フラッシュメモリ等の不揮発性メモリであって、電子機器１００の起動に係る同一のブートプログラムを複数個記憶するとともに、ＣＰＵ１４が実行する各種のプログラム（共通プログラム）を記憶している。また、不揮発性メモリ１２は、リセット回路１１から入力されるリセット信号又はＣＰＵ再起動部１６から入力される後述するＣＰＵリセット信号に応じて、自己の回路のハードウェアリセットを実行する。以下、図２を参照して不揮発性メモリ１２に記憶されたブートプログラムと、共通プログラムとの関係について説明する。
【００４２】
図２は、不揮発性メモリ１２のデータ構成を概略的に示した図である。同図に示したように、不揮発性メモリ１２は、同一内容からなるｎ個（ｎは２以上の自然数）のブートプログラム（ブートプログラム０、ブートプログラム１、・・・、ブートプログラムｎ−１）と、共通プログラムと、を記憶している。ここで、ｎ個のブートプログラムは、不揮発性メモリ１２のアドレス空間において、所定の最下位アドレス（最も若いアドレス）を起点とした連続するｎ個のメモリ領域内に夫々格納されている。なお、起点となる最下位アドレスは、各ブートプログラムを実行するＣＰＵ１４の仕様に応じて配置されることが好ましく、具体的には、ＣＰＵ１４のリセットベクタに対応するアドレスを起点とすることが好ましい。また、各メモリ領域のサイズはブートプログラムのプログラムサイズに準ずるものとする。
【００４３】
各ブートプログラムには、電子機器１００の各部を初期化するための初期化プログラム、共通プログラムの実行に係る誤り訂正機能を実現するための誤り訂正プログラム、ブート完了信号を出力させるためのブート完了信号制御プログラム、共通プログラムへのジャンプコードが含まれている。
【００４４】
ここで、ブート完了信号制御プログラムは、初期化プログラム及び誤り訂正プログラムが格納される領域の後段で、且つ、共通プログラムへのジャンプコードの前段に位置する領域に格納されているものとする。つまり、ＣＰＵ１４により初期化プログラム及び誤り訂正プログラムの実行が全て完了した後に、ブート完了信号制御プログラムが実行されるようになっている。なお、誤り訂正プログラムは、電子機器１００の起動時に必ずしも実行される必要はないため、ブートプログラム実行時には、誤り訂正プログラムの読み出しのみ行い、図示しない主記憶装置上に展開する態様としてもよい。以下、誤り訂正プログラムの読み出しのみを行う場合も含め、単に「誤り訂正プログラムの実行」と称す。
【００４５】
このようなデータ配置とすることで、初期化プログラム及び誤り訂正プログラムが正常に実行された時のみ、ＣＰＵ１４からブート完了信号が出力されることになる。
【００４６】
また、共通プログラムは、不揮発性メモリ１２のアドレス空間において、ブートプログラム群が格納されるメモリ領域の後段に格納されている。具体的には、各ブートプログラムに含まれたジャンプコードのアクセス先に対応するアドレスに、共通プログラムの先頭コードが格納されている。つまり、共通プログラムは、一のブートプログラムが正常に実行された後に、実行されるよう格納されている。
【００４７】
図１に戻り、アドレス変換回路１３は、ＣＰＵ１４から入力されるリセットベクタが指示する不揮発性メモリ１２上のアドレスを、ＣＰＵ再起動部１６が計数するカウンタの値に応じて変換することで、ＣＰＵ１４が変換後のアドレス位置からブートプログラムを読み出すよう制御する。また、アドレス変換回路１３は、リセット回路１１から入力されるリセット信号に応じて、自己の回路のハードウェアリセットを実行する。
【００４８】
具体的に、アドレス変換回路１３は、ＣＰＵ１４からリセットベクタが入力される毎に、当該リセットベクタが指示するアドレス値に、ブートプログラムのプログラムサイズ（ブートプログラムサイズ）に応じたアドレス値を、ＣＰＵ再起動部１６が計数するカウンタ値（カウンタ初期値からの差分値）に応じた分だけ加算する。これにより、アドレス変換回路１３は、不揮発性メモリ１２に格納された複数のブートプログラムを、最下位側のアドレスに対応するブートプログラムから順次読み出されるよう制御する。なお、ブートプログラムサイズは、予め定められているものとする。例えば、外部の回路からブートプログラムサイズが入力される態様としてもよいし、不揮発性メモリ１２からプログラムサイズを読み取る態様としてもよい。
【００４９】
不揮発性メモリ１２をＮＡＮＤ型フラッシュメモリとした場合、ＮＯＲ型フラッシュメモリのようなメモリマップ型のアクセス方式ではなく、ＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）等のように、コマンドとアドレスとを別に発行するような形となる。図３は、ＮＡＮＤ型フラッシュメモリのアドレスシーケンスの一例を示した図である。同図のような場合には、ＣＰＵ１４からは、４つのサイクル（１ｓｔ  Ｃｙｃｌｅ〜４ｔｈ  Ｃｙｃｌｅ）を使用してＮＡＮＤ型フラッシュメモリのアドレスを指定されることになるため、この４つのサイクルにより指定される上位のアドレスをアドレス変換回路１３にて変換することになる。
【００５０】
ＣＰＵ１４は、リセット回路１１から入力されるリセット信号又はＣＰＵ再起動部１６から入力される後述するＣＰＵリセット信号に応じて、自己の回路のハードウェアリセットを行うとともに、不揮発性メモリ１２に格納されたブートプログラム及び共通プログラムを読み出し、これらを実行することで、電子機器１００本体の起動及び各部の動作を統括的に制御する。
【００５１】
具体的に、ＣＰＵ１４は、所定のリセットベクタに基づいて、不揮発性メモリ１２に格納されたブートプログラムをアドレス変換回路１３を介して読み出し、このブートプログラムに含まれた各プログラム（初期化プログラム及び誤り訂正プログラム）を順次実行していくことで、電子機器１００の各部の初期化を行うとともに、誤り訂正機能を実現する。
【００５２】
初期化プログラム及び誤り訂正プログラムの実行が正常に行われた場合には、ＣＰＵ１４は、続くブート完了信号制御プログラムを実行することで、ブート完了信号をＣＰＵ起動判断部１５に出力する。つまり、ブート完了信号制御プログラムには、ＣＰＵ１４に、ブート完了信号をＣＰＵ起動判断部１５に出力させる手続きが規定されている。
【００５３】
ここで、初期化プログラム又は誤り訂正プログラムの、読み出し又は実行が正常に行われなかった場合、即ち、初期化プログラム又は誤り訂正プログラムが記憶されたセルに不良が生じていたような場合には、初期化プログラム又は誤り訂正プログラムの実行途中でハングアップすることになる。この場合、ブート完了信号制御プログラムは実行されないため、ブート完了信号はＣＰＵ起動判断部１５に出力されないことになる。
【００５４】
また、ＣＰＵ１４は、ブートプログラムを正常に実行し終えた場合、当該ブートプログラムの末尾に含まれたジャンプコードに基づいて、アドレス変換回路１３を介して不揮発性メモリ１２から共通プログラムを読み出し、これを実行することで電子機器１００の各部（例えば、表示部１７等）の動作を制御する。なお、共通プログラムを記憶するセルに不良が発生していたような場合であっても、先に実行された誤り訂正プログラムによる誤り訂正機能により、不良箇所のデータ値は訂正されることになる。
【００５５】
図４は、ＣＰＵ１４により実行されるブートプログラム実行処理の手順を示したフローチャートである。まず、ＣＰＵ１４は、アドレス変換回路１３を介して不揮発性メモリ１２に記憶されたブートプログラムを読み出す（ステップＳ１１）。
【００５６】
次いで、ＣＰＵ１４は、ステップＳ１１で読み出したブートプログラムに含まれる、初期化プログラム及び誤り訂正プログラムを実行する（ステップＳ１２）。なお、ブートプログラムに含まれた初期化プログラム又は誤り訂正プログラムを正常に実行することができなかった場合、ＣＰＵ１４は、ステップＳ１１又はＳ１２の処理の途中で、ハングアップすることになる。
【００５７】
ステップＳ１１及びＳ１２の処理が正常に実行された場合、ＣＰＵ１４は、ブートプログラムに含まれるブート完了信号制御プログラムを実行することで、ブート完了信号をＣＰＵ起動判断部１５に出力する（ステップＳ１３）。続いて、ＣＰＵ１４は、ブートプログラムの末尾に含まれたジャンプコードに基づいて、不揮発性メモリ１２に記憶された共通プログラムを読み出し、実行した後（ステップＳ１４）、本処理を終了する。
【００５８】
図１に戻り、ＣＰＵ起動判断部１５は、時間を測定するためのタイマー１５１を有し、ＣＰＵ再起動部１６から入力される後述するＣＰＵリセット信号をトリガとして、タイマー１５１の測定値をリセットした後、当該タイマー１５１により時間の測定を開始する。このように、ブート失敗信号をトリガとして、タイマー手段が測定する時間のリセットを行うことで、ブートプログラムの正常実行を判定する際の指標を画一化することができる。
【００５９】
また、ＣＰＵ起動判断部１５は、タイマー１５１により測定される時間に基づいて、所定の時間以内にＣＰＵ１４からブート完了信号が入力されたか否かを判断する。ここで、所定の時間は任意の値を設定できるものとするが、ブートプログラムを正常に実行できた際の所要時間に基づいた値を設定することが好ましい。
【００６０】
所定の時間以内にＣＰＵ１４からブート完了信号が入力された場合、ＣＰＵ起動判断部１５は、ブートプログラムが正常に実行されたと判断し、タイマー１５１による時間の測定を停止する。一方、所定の時間以内にＣＰＵ１４からブート完了信号が入力されない場合、ＣＰＵ起動判断部１５は、ブートプログラムの実行に失敗したと判断し、その旨を指示するブート失敗信号をＣＰＵ再起動部１６に出力する。
【００６１】
ＣＰＵ再起動部１６は、ＣＰＵ起動判断部１５からブート失敗信号が入力された回数を計数するためのカウンタ１６１を有し、ＣＰＵ起動判断部１５からブート失敗信号が入力される毎にカウンタ１６１の値を１加算するとともに、このカウンタ値をアドレス変換回路１３に通知する。
【００６２】
また、ＣＰＵ再起動部１６は、ＣＰＵ起動判断部１５からブート失敗信号が入力されると、ハードウェアリセットを指示するリセット信号を、不揮発性メモリ１２、ＣＰＵ１４、ＣＰＵ再起動部１６及び表示部１７に出力する。ここで、リセット回路１１から出力されるリセット信号と区別するため、ＣＰＵ再起動部１６から出力されるリセット信号を、「ＣＰＵリセット信号」と称す。
【００６３】
また、ＣＰＵ再起動部１６は、ＣＰＵ起動判断部１５からブート失敗信号が入力されると、表示部１７にブートプログラムの実行に失敗した旨の報知する画面を表示させる。このように、ブートプログラムの実行が失敗した旨を報知することができるため、ユーザに本装置が異常状態であることを把握させることができる。なお、ブートプログラムの実行に失敗した旨の報知は、この例に限らず、例えば、図示しないインジケータ等の点灯によりその旨を報知する態様としてもよいし、ブザー等の音響発生手段による発音によりその旨を報知する態様としてもよい。
【００６４】
また、ＣＰＵ再起動部１６は、リセット回路１１から入力されるリセット信号に応じて、自己の回路のハードウェアリセットを実行するとともに、カウンタ１６１により計数するカウント値を“０”にリセットする。
【００６５】
以下、図５を参照して、不揮発性メモリ１２からブートプログラムが読み出される際の動作について説明する。図５は、アドレス変換回路１３の動作を説明するための図である。ここでは、ＣＰＵ１４のブート時のリセットベクタが“００００．００００ｈ”であるとし、ブートプログラムサイズが４００ｈである場合の例を示している。
【００６６】
主電源ＯＮ後のＣＰＵ１４のリセット解除時、即ち、リセット回路１１からリセット信号が入力時されると、ＣＰＵ１４はリセットベクタをアドレス変換回路１３に出力することで、ブートプログラムの読み出しを行う。ここで、アドレス変換回路１３は、カウンタ１６１のカウンタ値が“０”、即ち初期値であることに基づいて、リセットベクタを変更せず、ブートプログラム０に対応する“００００．００００”から“００００．０３ＦＦ”までの領域をＣＰＵ１４がアクセスできるようにする。
【００６７】
この時、ＣＰＵ１４がブートプログラムを正常に実行できないと、ＣＰＵ起動判断部１５からブート失敗信号がＣＰＵ再起動部１６に出力されるため、ＣＰＵ再起動部１６はカウンタ１６１のカウンタ値を“１”とし、ＣＰＵリセット信号を不揮発性メモリ１２、ＣＰＵ１４、ＣＰＵ再起動部１６及び表示部１７に出力する。そのため、アドレス変換回路１３では、ＣＰＵ１４からのブートプログラムの読み出し要求に応じ、カウンタ１６１のカウンタ値が“１”に基づいて、リセットベクタ“００００．００００”にブートプログラムサイズ分の“４００ｈ”を一度加算し、ブートプログラム１に対応する“００００．０４００”から“００００．０７ＦＦ”までの領域をＣＰＵ１４がアクセスできるようにする。
【００６８】
再度、ＣＰＵ１４がブートプログラムを正常に実行できないときには、ＣＰＵ起動判断部１５からブート失敗信号がＣＰＵ再起動部１６に出力されるため、ＣＰＵ再起動部１６はカウンタ１６１のカウンタ値を“２”とし、ＣＰＵリセット信号を不揮発性メモリ１２、ＣＰＵ１４、ＣＰＵ再起動部１６及び表示部１７に出力する。そのため、アドレス変換回路１３では、ＣＰＵ１４からのブートプログラムの読み出し要求に応じ、カウンタ１６１のカウンタ値が“２”に基づいて、リセットベクタ“００００．００００”にブートプログラムサイズ分の“４００ｈ”を二度加算し、ブートプログラム２に対応する“００００．０８００”から“００００．１１ＦＦ”までの領域をＣＰＵ１４がアクセスできるようにする。
【００６９】
このように、アドレス変換回路１３は、ＣＰＵ再起動部１６のカウンタ１６１が計数するカウント値に基づいて、不揮発性メモリ１２に記憶されているｎ個のブートプログラムの読み出しを順次切り替えることが可能となっている。これにより、特定のメモリ領域に不良セルが含まれていた場合でも、他のメモリ領域に格納されたブートプログラムを実行することができるため、ブートプログラムの正常な実行をより確実に行うことが可能となる。
【００７０】
なお、ＣＰＵ１４が、ｎ個目のブートプログラム（ブートプログラムｎ−１）の実行にも失敗したような場合には、起動を停止する態様としてもよいし、再度ブートプログラム０から順次読み出す態様としてもよい。また、本実施形態では、アドレス変換回路１３を個別に設けた構成としたが、不揮発性メモリ１２と一体化されていてもよいし、ＣＰＵ１４と一体化されていてもよく、ＣＰＵ１４のブートベクタと不揮発性メモリ１２の対応するアドレスを起動毎に切り替えることが可能であればよい。
【００７１】
例えば、ＣＰＵ１４内にＣＰＵ再起動部１６のカウンタ１６１を用意しておき、当該カウンタ１６１により計数されるカウント値をリセット信号によりクリアし、ＣＰＵリセット信号でクリアしないものとする。そして、ＣＰＵリセット信号の入力毎にこのカウント値を増加させ、カウント値とＣＰＵ１４がアクセスするブートプログラムの格納領域を変化させるような回路としておけば、アドレス変換回路１３を個別に用意する必要がなくなる。
【００７２】
図１に戻り、表示部１７は、ＬＣＤ（Liquid  Crystal  Display）等により構成され、ＣＰＵ１４又はＣＰＵ再起動部１６から入力される表示信号に基づいて、各種情報を表示する。また、表示部１７は、リセット回路１１から入力されるリセット信号又はＣＰＵ再起動部１６から入力される後述するＣＰＵリセット信号に応じて、自己の回路のハードウェアリセットを実行する。なお、表示部１７は、図示しない操作部と一体的にタッチパネルを構成する態様としてもよい。
【００７３】
以下、図６を参照して、電子機器１００の全体動作について説明する。図６は、電子機器１００の各部により実行される電子機器１００の起動に係る処理（起動処理）の手順を示したフローチャートである。
【００７４】
まず、リセット回路１１からリセット信号が出力されると（ステップＳ２１）、ＣＰＵ１４はアドレス変換回路１３を介して不揮発性メモリ１２に記憶されたブートプログラムを読み出すことで、ブートプログラム実行処理を実行する（ステップＳ２２）。ここで、不揮発性メモリ１２から読み出されるブートプログラムは、ＣＰＵ再起動部１６で計数されるカウンタ値に応じたものであることは上述したとおりである。なお、ステップＳ２２のブートプログラム実行処理は、上述した図３のブートプログラム実行処理と同様であるため、説明は省略する。
【００７５】
ＣＰＵ起動判断部１５では、タイマー１５１により測定される時間が、所定時間を経過したか否かを判断する。ここで、所定時間を経過したと判断した場合には（ステップＳ２３；Ｙｅｓ）、ＣＰＵ起動判断部１５は、ブートプログラムの実行に失敗したと判断し、その旨を指示するブート失敗信号をＣＰＵ再起動部１６に出力する（ステップＳ２４）。
【００７６】
ＣＰＵ再起動部１６では、ＣＰＵ起動判断部１５からブート失敗信号が入力されると、カウンタ１６１によりカウンタ値を１加算し（ステップＳ２５）、ＣＰＵリセット信号を不揮発性メモリ１２、ＣＰＵ１４、ＣＰＵ再起動部１６及び表示部１７に出力した後（ステップＳ２６）、ステップＳ２２に戻る。
【００７７】
一方、ステップＳ２３において、所定時間を経過していないと判断した場合には（ステップＳ２３；Ｎｏ）、続いてＣＰＵ１４からブート完了信号が入力されたか否かを判断する（ステップＳ２７）。
【００７８】
ステップＳ２７において、ブート完了信号が入力されていないと判断した場合（ステップＳ２７；Ｎｏ）、ステップＳ２３に再び戻る。また、ステップＳ２７において、ブート完了信号が入力されたと判断した場合（ステップＳ２７；Ｙｅｓ）、ＣＰＵ起動判断部１５は、ブートプログラムが正常に実行されたと判断し、タイマー１５１による時間の測定を停止した後、本処理を終了する。
【００７９】
以上のように、本実施形態の電子機器１００によれば、ＣＰＵ１４がブートプログラムを正常に実行できなかった場合に、ＣＰＵ１４及び不揮発性メモリ１２のハードウェアリセットを行い、このハードウェアリセットに伴ってＣＰＵ１４からブートプログラムの読み出しが要求される毎に、不揮発性メモリ１２内の複数のメモリ領域に夫々格納されたブートプログラムを順次読み出すよう制御する。これにより、ブートプログラムの実行が失敗する毎に、ＣＰＵ１４及び不揮発性メモリ１２をハードウェアリセットし、異なるメモリ領域に夫々格納された同一内容のブートプログラムを順次実行することが可能となるため、ＮＡＮＤ型フラッシュメモリ等の比較的信頼性の低い不揮発性メモリにブートプログラムを記憶した場合であっても、ブートプログラムの正常な実行をより確実に行うことができる。
【００８０】
［第２の実施形態］
第２の実施形態では、上述した電子機器１００を画像形成装置に適用した態様を説明する。なお、上述した第１の実施形態と同様の要素については、同一の符号を用いて示し、その説明は適宜省略する。
【００８１】
図７は、本実施形態に係る画像形成装置２００のハードウェア構成を示したブロック図である。図７に示したように、画像形成装置２００は、リセット回路１１と、不揮発性メモリ１２と、アドレス変換回路１３と、ＣＰＵ１４と、ＣＰＵ起動判断部１５と、ＣＰＵ再起動部１６と、各種制御ＬＳＩ２１と、揮発性メモリ２２と、エンジン２３と、操作表示部２４とを備えている。
【００８２】
ここで、ＣＰＵ１４は、リセット回路１１から入力されるリセット信号又はＣＰＵ再起動部１６から入力される後述するＣＰＵリセット信号に応じて、自己の回路のハードウェアリセットを行うとともに、不揮発性メモリ１２に格納されたブートプログラム及び共通プログラムを読み出し、これを実行することで、画像形成装置２００本体の起動及び各部の動作を統括的に制御する。
【００８３】
各種制御ＬＳＩ２１は、揮発性メモリ２２を作業エリアとし、ＣＰＵ１４の制御の下、エンジン２３の駆動制御や、操作表示部２４の表示動作等、画像形成装置２００に係る種々の動作を制御する。
【００８４】
揮発性メモリ２２は、画像形成装置２００の主記憶装置であって、ＤＤＲ−ＳＤＲＡＭ（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を用いることができる。
【００８５】
エンジン２３は、原稿を読み取る原稿読取ユニットや、画像データの画像形成を行う画像形成ユニット等を有し（何れも図示せず）、各種制御ＬＳＩ２１から入力される指示信号に従って、原稿読取ユニットや画像形成ユニットを駆動する。
【００８６】
具体的には、各種制御ＬＳＩ２１の制御に従い、原稿読取ユニットを駆動することで、図示しない読取位置にセットされた原稿のイメージをデジタルの画像データに変換する。また、各種制御ＬＳＩ２１の制御に従い、画像形成ユニットを駆動することで、図示しない画像処理部で処理された画像データに基づいて光ビームを偏向走査させ、感光体上に形成した静電潜像にトナーを使って現像し、生成されたトナー画像を転写紙に転写して、定着処理を行う。なお、画像形成ユニットの印刷方式は、電子写真方式のほか、インクジェット方式、昇華型熱転写方式、直接感熱記録方式、溶融型熱転写方式など、様々な方式を用いることができる。
【００８７】
操作表示部２４は、タッチパネル方式の入力デバイスであって、各種制御ＬＳＩ２１の制御の下、例えば、操作を促すメッセージや処理状況を示す種々の表示を行うとともに、画像形成に係る印刷条件の設定等の入力を受け付ける。
【００８８】
本実施形態の場合においても、上述した電子機器１００の構成要素（リセット回路１１、不揮発性メモリ１２、アドレス変換回路１３、ＣＰＵ１４、ＣＰＵ起動判断部１５、ＣＰＵ再起動部１６）により、起動処理が実行されることになるため、ＣＰＵ１４がブートプログラムの実行を失敗する毎に、不揮発性メモリ１２に記憶されたｎ個のブートプログラムが順次切り替えられて読み出されることになる。
【００８９】
以上のように、本実施形態の画像形成装置２００によれば、ＣＰＵ１４がブートプログラムを正常に実行できなかった場合に、ＣＰＵ１４及び不揮発性メモリ１２のハードウェアリセットを行い、このハードウェアリセットに伴ってＣＰＵ１４からブートプログラムの読み出しが要求される毎に、不揮発性メモリ１２内の複数のメモリ領域に夫々格納されたブートプログラムを順次読み出すよう制御する。これにより、ブートプログラムの実行が失敗する毎に、ＣＰＵ１４及び不揮発性メモリ１２をハードウェアリセットし、異なるメモリ領域に夫々格納された同一内容のブートプログラムを順次実行することが可能となるため、ＮＡＮＤ型フラッシュメモリ等の比較的信頼性の低い不揮発性メモリにブートプログラムを記憶した場合であっても、ブートプログラムの正常な実行をより確実に行うことができる。
【００９０】
以上、本発明を第１、第２の実施形態を用いて説明してきたが、上述した実施形態に多様な変更又は改良を加えることができる。また、上述した第１、第２の実施形態において説明した構成や機能は、自由に組み合わせることができる。
【００９１】
例えば、上記の実施形態では、画像形成装置に電子機器１００を適用した例を説明したが、これに限らず、ＰＣ（Personal  Computer）等の情報処理装置に適用する態様としてもよい。
【産業上の利用可能性】
【００９２】
本発明に係る電子機器、電子機器の起動制御方法及び画像形成装置は、記憶媒体に記憶されたブートプログラムを実行する場合に有効であり、特に、ＮＡＮＤ型フラッシュメモリ等の比較的信頼性の低い不揮発性メモリに記憶されたブートプログラムを実行する場合に適している。
【図面の簡単な説明】
【００９３】
【図１】電子機器のハードウェア構成を示したブロック図である。
【図２】不揮発性メモリのデータ構成を概略的に示した図である。
【図３】ＮＡＮＤ型フラッシュメモリのアドレスシーケンスの一例を示した図である。
【図４】ブートプログラム実行処理の手順を示したフローチャートである。
【図５】アドレス変換回路の動作を説明するための図である。
【図６】電子機器の起動処理の手順を示したフローチャートである。
【図７】画像形成装置のハードウェア構成を示したブロック図である。
【符号の説明】
【００９４】
１００  電子機器
１１  リセット回路
１２  不揮発性メモリ
１３  アドレス変換回路
１４  ＣＰＵ
１５  ＣＰＵ起動判断部
１５１  タイマー
１６  ＣＰＵ再起動部
１６１  カウンタ
１７  表示部
２００  画像形成装置
２１  各種制御ＬＳＩ
２２  揮発性メモリ
２３  エンジン
２４  操作表示部
【図１】
0005021404.tif 000002
【図２】
0005021404.tif 000003
【図３】
0005021404.tif 000004
【図４】
0005021404.tif 000005
【図５】
0005021404.tif 000006
【図６】
0005021404.tif 000007
【図７】
0005021404.tif 000008