当該画像形成装置で実行可能な制御プログラムを記憶する不揮発性メモリーと、前記不揮発性メモリーに記憶されている制御プログラムに対する初期処理を定めた起動モードとしての、前記不揮発性メモリーから制御プログラムを読み出して実行する通常モードと前記不揮発性メモリーに記憶されている制御プログラムを書き換える書き換えモードと前記不揮発性メモリーに記憶されている制御プログラムを実行可能に復旧する復旧モードのうち、何れか一つの起動モードを示すデータである起動フラグを前記不揮発性メモリーに記憶する起動フラグ設定部と、前記起動フラグ設定部によって前記不揮発性メモリーに記憶された起動フラグを読み出して、当該起動フラグが示す起動モードで定められた前記不揮発性メモリーに記憶されている制御プログラムに対する初期処理を実行する実行制御部と、当該画像形成装置に接続された外部記憶媒体に記憶されている制御プログラムを取得するプログラム取得部と、前記プログラム取得部によって取得された制御プログラムを用いて前記不揮発性メモリーに記憶されている制御プログラムを書き換えるプログラム書換部と、前記プログラム取得部によって取得された制御プログラムを用いて前記不揮発性メモリーに記憶されている制御プログラムを復旧するプログラム復旧部と、を備え、前記実行制御部は、前記通常モードを示す起動フラグが前記不揮発性メモリーに記憶されている場合、前記不揮発性メモリーから制御プログラムを読み出して実行し、前記書き換えモードを示す起動フラグが前記不揮発性メモリーに記憶されている場合、前記起動フラグ設定部に前記復旧モードを示す起動フラグを前記不揮発性メモリーに記憶させた後、前記プログラム書換部に制御プログラムの書き換えを実行させ、当該書き換えが成功したものと判断すると、前記起動フラグ設定部に前記通常モードを示す起動フラグを前記不揮発性メモリーに記憶させ、当該書き換えが失敗したものと判断すると、前記不揮発性メモリーに記憶されている前記復旧モードを示す起動フラグを維持し、前記復旧モードを示す起動フラグが前記不揮発性メモリーに記憶されている場合、前記プログラム復旧部に制御プログラムの復旧を実行させ、当該復旧が成功したものと判断すると、前記起動フラグ設定部に前記通常モードを示す起動フラグを前記不揮発性メモリーに記憶させ、当該復旧が失敗したものと判断すると、前記不揮発性メモリーに記憶されている前記復旧モードを示す起動フラグを維持する画像形成装置。前記実行制御部は、前記書き換えモードを示す起動フラグが前記不揮発性メモリーに記憶されている場合、前記起動フラグ設定部に前記復旧モードを示す起動フラグを前記不揮発性メモリーに記憶させる前に、前記プログラム取得部に制御プログラムを取得させて、当該制御プログラムが不正であるか否かを判断し、不正と判断すると、前記プログラム書換部に制御プログラムの書き換えを実行させずに、前記起動フラグ設定部に前記通常モードを示す起動フラグを前記不揮発性メモリーに記憶させる請求項1に記載の画像形成装置。前記実行制御部は、前記復旧モードを示す起動フラグが前記不揮発性メモリーに記憶されている場合、前記プログラム復旧部に制御プログラムの復旧を実行させる前に、前記プログラム取得部に制御プログラムを取得させて、当該制御プログラムが不正であるか否かを判断し、不正と判断すると、前記プログラム復旧部に制御プログラムの復旧を実行させずに、前記不揮発性メモリーに記憶されている前記復旧モードを示す起動フラグを維持する請求項1又は2に記載の画像形成装置。しかしながら、不揮発性メモリーの容量によっては、上記の従来技術を適用するに当たって、制御プログラムの書き換えが失敗したときに当該制御プログラムを復旧するための制御プログラムを記憶するための記憶領域を不揮発性メモリーに確保できない場合があり、このような場合に制御プログラムの書き換えが失敗すると、不揮発性メモリーに不十分に記憶されている新たな制御プログラムを読み出して実行することによって、画像形成装置の動作が不安定になる虞があった。そこで、本発明は、このような事情に鑑みてなされたものであり、不揮発性メモリーに制御プログラムを復旧させるための制御プログラムが記憶されていない場合であっても、当該不揮発性メモリーに記憶されている制御プログラムの書き換えに失敗したときに、当該不揮発性メモリーに不十分に記憶されたままの制御プログラムを読み出して実行することによって画像形成装置の動作が不安定になる虞を解消することができる画像形成装置を提供することを目的とする。請求項1に記載の発明は、当該画像形成装置で実行可能な制御プログラムを記憶する不揮発性メモリーと、前記不揮発性メモリーに記憶されている制御プログラムに対する初期処理を定めた起動モードとしての、前記不揮発性メモリーから制御プログラムを読み出して実行する通常モードと前記不揮発性メモリーに記憶されている制御プログラムを書き換える書き換えモードと前記不揮発性メモリーに記憶されている制御プログラムを実行可能に復旧する復旧モードのうち、何れか一つの起動モードを示すデータである起動フラグを前記不揮発性メモリーに記憶する起動フラグ設定部と、前記起動フラグ設定部によって前記不揮発性メモリーに記憶された起動フラグを読み出して、当該起動フラグが示す起動モードで定められた前記不揮発性メモリーに記憶されている制御プログラムに対する初期処理を実行する実行制御部と、当該画像形成装置に接続された外部記憶媒体に記憶されている制御プログラムを取得するプログラム取得部と、前記プログラム取得部によって取得された制御プログラムを用いて前記不揮発性メモリーに記憶されている制御プログラムを書き換えるプログラム書換部と、前記プログラム取得部によって取得された制御プログラムを用いて前記不揮発性メモリーに記憶されている制御プログラムを復旧するプログラム復旧部と、を備え、前記実行制御部は、前記通常モードを示す起動フラグが前記不揮発性メモリーに記憶されている場合、前記不揮発性メモリーから制御プログラムを読み出して実行し、前記書き換えモードを示す起動フラグが前記不揮発性メモリーに記憶されている場合、前記起動フラグ設定部に前記復旧モードを示す起動フラグを前記不揮発性メモリーに記憶させた後、前記プログラム書換部に制御プログラムの書き換えを実行させ、当該書き換えが成功したものと判断すると、前記起動フラグ設定部に前記通常モードを示す起動フラグを前記不揮発性メモリーに記憶させ、当該書き換えが失敗したものと判断すると、前記不揮発性メモリーに記憶されている前記復旧モードを示す起動フラグを維持し、前記復旧モードを示す起動フラグが前記不揮発性メモリーに記憶されている場合、前記プログラム復旧部に制御プログラムの復旧を実行させ、当該復旧が成功したものと判断すると、前記起動フラグ設定部に前記通常モードを示す起動フラグを前記不揮発性メモリーに記憶させ、当該復旧が失敗したものと判断すると、前記不揮発性メモリーに記憶されている前記復旧モードを示す起動フラグを維持する画像形成装置である。この発明によれば、書き換えモードを示す起動フラグが不揮発性メモリーに記憶されている場合、プログラム書換部による制御プログラムの書き換えが成功しない限り、通常モードを示す起動フラグが不揮発性メモリーに記憶されず、復旧モードを示す起動フラグが不揮発性メモリーに記憶されている場合も、プログラム復旧部による制御プログラムの復旧が成功しない限り、通常モードを示す起動フラグが不揮発性メモリーに記憶されない。つまり、制御プログラムの書き換え又は復旧に失敗したときに通常モードを示す起動フラグが不揮発性メモリーに記憶されることがないため、当該書き換え又は復旧の失敗によって不揮発性メモリーに不十分に記憶されたままの制御プログラムを読み出して実行することを回避することができ、当該不揮発性メモリーに不十分に記憶されたままの制御プログラムを読み出して実行することによって画像形成装置の動作が不安定になる虞を解消することができる。また、請求項2に記載の発明は、請求項1に記載の画像形成装置であって、前記実行制御部は、前記書き換えモードを示す起動フラグが前記不揮発性メモリーに記憶されている場合、前記起動フラグ設定部に前記復旧モードを示す起動フラグを前記不揮発性メモリーに記憶させる前に、前記プログラム取得部に制御プログラムを取得させて、当該制御プログラムが不正であるか否かを判断し、不正と判断すると、前記プログラム書換部に制御プログラムの書き換えを実行させずに、前記起動フラグ設定部に前記通常モードを示す起動フラグを前記不揮発性メモリーに記憶させる。この発明によれば、記憶媒体に記憶されていた不正な制御プログラムを用いて不揮発性メモリーに記憶されている制御プログラムを書き換えることを回避することができ、また、通常モードを示す起動フラグを不揮発性メモリーに記憶して、書き換え前の制御プログラムを読み出して実行することができる。このため、制御プログラムが不正な制御プログラムに書き換えられて画像形成装置の動作が不安定になる虞を解消することができる。請求項3に記載の発明は、請求項1又は2に記載の画像形成装置であって、前記実行制御部は、前記復旧モードを示す起動フラグが前記不揮発性メモリーに記憶されている場合、前記プログラム復旧部に制御プログラムの復旧を実行させる前に、前記プログラム取得部に制御プログラムを取得させて、当該制御プログラムが不正であるか否かを判断し、不正と判断すると、前記プログラム復旧部に制御プログラムの復旧を実行させずに、前記不揮発性メモリーに記憶されている前記復旧モードを示す起動フラグを維持する。この発明によれば、記憶媒体に記憶されていた不正な制御プログラムを用いて不揮発性メモリーに記憶されている制御プログラムを復旧することを回避することができる。このため、制御プログラムが不正な制御プログラムで復旧されて画像形成装置の動作が不安定になる虞を解消することができる。本発明によれば、不揮発性メモリーに制御プログラムを復旧させるための制御プログラムが記憶されていない場合であっても、当該不揮発性メモリーに記憶されている制御プログラムの書き換えに失敗したときに、当該不揮発性メモリーに不十分に記憶されたままの制御プログラムを読み出して実行することによって画像形成装置の動作が不安定になる虞を解消することができる画像形成装置を提供することが可能になる。以下、図面に基づいて本発明の実施形態を詳細に説明する。図1は本発明の一実施形態に係る画像形成装置1の内部構造の概略を示す図である。画像形成装置1は、例えば、コピー、プリンター、スキャナー及びファクシミリの機能を有する複合機に適用することができる。画像形成装置1は本体部100、本体部100の上に配置された原稿読取部200、原稿読取部200の上に配置された原稿給送部300、本体部100の上部前面に配置された操作部400、及び本体部100の用紙搬出側、例えば左側に配置された用紙後処理部500を備える。原稿給送部300は原稿載置部301、給紙ローラー303、原稿搬送部305及び原稿排出部307を備える。給紙ローラー303は原稿載置部301にセットされた原稿を1枚ずつ繰り出す。原稿搬送部305は繰り出された原稿を原稿読取部200に搬送する。原稿は原稿読取部200で読み取られて原稿排出部307に排出される。原稿読取部200はCCDChargeCoupledDeviceセンサー及び露光ランプ等を搭載したキャリッジ201、ガラス等の透明部材により構成された原稿台203、及び原稿読取スリット205を備える。原稿台203に載置された原稿を読み取る場合、キャリッジ201を原稿台203の長手方向に移動させながらCCDセンサーにより原稿を読み取る。これに対して、原稿給送部300から給送された原稿を読み取る場合、キャリッジ201を原稿読取スリット205と対向する位置に移動させて、原稿給送部300から送られてきた原稿を、原稿読取スリット205を通してCCDセンサーにより読み取る。CCDセンサーは読み取った原稿を画像データとして出力する。本体部100は用紙貯留部101、画像形成部103及び定着部105を備える。用紙貯留部101は本体部100の最下部に配置されており、用紙の束を貯留することができる用紙トレイ107を備える。用紙トレイ107に貯留された用紙の束において、最上位の用紙がピックアップローラー109の駆動により、用紙搬送部111へ向けて繰り出される。用紙は用紙搬送部111を通って、画像形成部103へ搬送される。画像形成部103は搬送されてきた用紙に画像データを基にしてトナー画像を形成する。画像形成部103は感光体ドラム113、露光部115、現像部117及び転写部119を備える。露光部115は画像データ原稿読取部200から出力された画像データ、パソコンから送信された画像データ、ファクシミリ受信の画像データ等に対応する光を生成し、一様に帯電された感光体ドラム113の周面に照射する。これにより、感光体ドラム113の周面には画像データに対応する静電潜像が形成される。この状態で感光体ドラム113の周面に現像部117からトナーを供給することにより、周面には画像データに対応するトナー画像が形成される。このトナー画像は転写部119によって先ほど説明した用紙貯留部101から搬送されてきた用紙に転写される。トナー画像が転写された用紙は定着部105に送られる。定着部105において、トナー画像と用紙に熱と圧力が加えられて、トナー画像を用紙に定着させる。これにより、用紙への画像の印刷が完了する。この印刷済用紙に対して後処理がされる場合、印刷済用紙は本体部100の用紙排出口121から用紙後処理部500へ送られる。これに対して後処理がされない場合、印刷済用紙は排紙トレイ123に排紙される。用紙後処理部500では印刷済用紙に対して、ソート、ステープル、パンチ、中綴じ等の後処理がされる。用紙後処理部500は用紙搬入口501、用紙搬送部503、用紙搬出口505及びスタックトレイ507等を備える。用紙搬送部503は用紙排出口121から用紙搬入口501に搬入された印刷済用紙を順次搬送し、後処理がされた印刷済用紙を用紙搬出口505からスタックトレイ507へ搬出する。スタックトレイ507は用紙搬出口505から搬出された上記用紙の集積枚数に応じて矢印方向に上下動可能な構成を有する。操作部400は、操作キー部401と表示部403を備える。表示部403はタッチパネル機能を有しており、ソフトキーを含む画面が表示される。ユーザーは画面を見ながらソフトキーを操作することによって、コピー等の機能の実行に必要な設定等をする。操作キー部401はハードキーからなる操作キーを備えており、具体的にはヘルプキー405、スタートキー407、テンキー409及び機能切換キー411等を備える。ヘルプキー405はヘルプ画面を表示部403に表示させるキーである。ヘルプ画面とはスキャナー、ファクシミリ、プリンター、コピー等の機能に関する操作方法が表示された画面である。スタートキー407はコピー、ファクシミリ送信等の動作を開始させるキーである。テンキー409はコピー部数、ファクシミリ番号等の数字を入力するキーである。機能切換キー411はコピーキー及び送信キー等を備えており、コピー機能、送信機能等を相互に切り替えるキーである。コピーキーを操作すれば、コピーの初期画面が表示部403に表示される。送信キーを操作すれば、ファクシミリ送信及びメール送信の初期画面が表示部403に表示される。図2は図1に示す画像形成装置1の電気的な構成を示すブロック図である。画像形成装置1は、上記の本体部100、上記の原稿読取部200、上記の原稿給送部300、上記の操作部400、上記の用紙後処理部500、USBメモリー等の記憶媒体5を画像形成装置1に接続するための外部インターフェイス700、制御部600、及び通信部800がバスによって相互に接続された構成を有する。制御部600は、CPUCentralProcessingUnit、画像形成装置1の制御プログラムを記憶する本発明に係る不揮発性メモリーの一例としてのフラッシュメモリー、及び、制御プログラムの実行時に一時的にデータを保管するRAMRandomAccessMemoryを備え、CPUによって制御プログラムをフラッシュメモリーから読み出して実行することによって、装置各部の動作に必要な制御を行う。具体的には、制御部600は、起動フラグ設定部601、プログラム取得部602、プログラム書換部603、プログラム復旧部604、及び実行制御部605として機能する。起動フラグ設定部601は、フラッシュメモリーに記憶されている制御プログラムに対する初期処理を定めた起動モードとしての、フラッシュメモリーから制御プログラムを読み出してCPUによって実行する通常モードと、フラッシュメモリーに記憶されている制御プログラムを書き換える書き換えモードと、フラッシュメモリーに記憶されている制御プログラムを実行可能に復旧する復旧モードとの間で起動モードを切り替える。具体的には、起動フラグ設定部601は、通常モードを示すデータ例えば、0、書き換えモードを示すデータ例えば、1、及び復旧モードを示すデータ例えば、2の何れか一つを起動フラグとしてフラッシュメモリーの予め定められた記憶領域に記憶することによって、起動モードの切り替えを実現する。尚、起動フラグがフラッシュメモリーの予め定められた記憶領域に記憶されていない場合や、各起動モードを示すデータ以外のデータが起動フラグとして記憶されている場合は、不正な状態にあるものとして、起動モードは、復旧モードを示しているものとして扱う。ただし、各起動モードを示すデータを、上記の例に限定する趣旨ではない。プログラム取得部602は、書き換え用の制御プログラム又は復旧用の制御プログラム等を記憶しているUSBメモリー等の記憶媒体5が外部インターフェイス700を介して画像形成装置1に接続された状態で、当該記憶媒体5に記憶されている書き換え用の制御プログラム又は復旧用の制御プログラムを取得する。プログラム書換部603は、プログラム取得部602によって取得された書き換え用の制御プログラムを用いてフラッシュメモリーに記憶されている制御プログラムを書き換える。尚、書き換え用の制御プログラムとは、フラッシュメモリーに記憶されている制御プログラムに実装されている機能を拡張する、又は、フラッシュメモリーに記憶されている制御プログラムに実装されている機能の問題点を修正する等、制御プログラムをバージョンアップするための制御プログラムを示す。プログラム復旧部604は、プログラム取得部602によって取得された復旧用の制御プログラムを用いてフラッシュメモリーに記憶されている制御プログラムを復旧する。尚、復旧用の制御プログラムとは、フラッシュメモリーに記憶されている制御プログラムと同一の制御プログラムであり、フラッシュメモリーに記憶されている制御プログラムを記憶媒体5にバックアップした制御プログラムを示す。また、制御プログラムを復旧するとは、記憶媒体5にバックアップした制御プログラムを読み出して、フラッシュメモリーに記憶されている制御プログラムを書き換えて制御プログラムを元の状態に戻すことを示す。実行制御部605は、起動フラグ設定部601によってフラッシュメモリーに記憶された起動フラグを読み出して、当該起動フラグが示す起動モードで定められたフラッシュメモリーに記憶されている制御プログラムに対する初期処理を実行する。尚、実行制御部605による制御プログラムに対する初期処理の実行制御については後述する。また、起動フラグ設定部601、プログラム取得部602、プログラム書換部603、プログラム復旧部604、及び実行制御部605を実装した各制御プログラムは、フラッシュメモリーにおける書き換え不可能な領域に記憶されている。通信部800は、ファクシミリ通信部801及びネットワークI/F部803を備える。ファクシミリ通信部801は、相手先ファクシミリとの電話回線の接続を制御するNCUNetworkControlUnit及びファクシミリ通信用の信号を変復調する変復調回路を備える。ファクシミリ通信部801は、電話回線805に接続される。ネットワークI/F部803は、LANLocalAreaNetwork807に接続される。ネットワークI/F部803は、LAN807に接続されたパソコン等の端末装置との間で通信を実行するための通信インターフェイス回路である。次に、実行制御部605による制御プログラムに対する初期処理の実行制御のうち、起動モードが通常モード又は書き換えモードの場合に、実行制御部605によって制御プログラムが読み出されて実行される又は書き換えられる制御の一例について、図3に示すフローチャートを用いて説明する。画像形成装置1の電源が投入されると、実行制御部605は、フラッシュメモリーの予め定められた記憶領域に記憶されている起動フラグを読み出して、起動モードの判定を行うS1。実行制御部605は、通常モードを示す起動フラグを読み出すと、起動モードが通常モードであると判定するS1;通常モード。そして、ユーザーによる操作キー部401の操作によって起動モードを書き換えモードに切り替える指示が入力されることなくS2;NO、ユーザーによる操作キー部401の操作によって制御プログラムの実行指示が入力されると、実行制御部605は、フラッシュメモリーに記憶されている当該実行指示に対応する制御プログラムを読み出してCPUに実行させるS3。一方、実行制御部605は、通常モードを示す起動フラグを読み出すと、起動モードが通常モードであると判定するS1;通常モード。そして、ユーザーによる操作キー部401の操作によって起動モードを書き換えモードに切り替える指示が入力されるとS2;YES、実行制御部605は、当該入力された指示を受け付け、起動フラグ設定部601に起動モードを書き換えモードに切り替える指示を送出し、起動フラグ設定部601は当該指示に応じて、書き換えモードを示す起動フラグをフラッシュメモリーに記憶して、起動モードを書き換えモードに切り替えるS4。そして、実行制御部605は、画像形成装置1の再起動を行うS5。また、ステップS1において、実行制御部605は、書き換えモードを示す起動フラグを読み出すと、起動モードが書き換えモードであると判定しS1;書き換えモード、書き換え用の制御プログラムを取得する指示をプログラム取得部602に送出し、プログラム取得部602は、当該指示の下、外部インターフェイス700を介して画像形成装置1に接続された記憶媒体5から書き換え用の制御プログラムを取得するS6。そして、実行制御部605は、ステップS6でプログラム取得部602に取得させた書き換え用の制御プログラムの正当性を判断するS7。例えば、実行制御部605は、当該取得した書き換え用の制御プログラムが画像形成装置1で実行可能な形式で実装され、また、当該書き換え対象の制御プログラムに対して予め定められた最大データサイズよりも小さいデータサイズであること等を以って、当該取得した書き換え用の制御プログラムに不正はないものと判断するとS7;NO、起動フラグ設定部601に起動モードを復旧モードに切り替える指示を送出し、起動フラグ設定部601は、当該指示に応じて、復旧モードを示す起動フラグをフラッシュメモリーに記憶して、起動モードを復旧モードに切り替えるS8。次に、実行制御部605は、プログラム書換部603に制御プログラムの書き換えを実行させる指示を送出し、プログラム書換部603は、当該指示に応じて、ステップS6でプログラム取得部602によって取得された書き換え用の制御プログラムを用いて、フラッシュメモリーに記憶されている制御プログラムを書き換えるS9。そして、実行制御部605は、例えば、ステップS6でプログラム取得部602によって取得された書き換え用の制御プログラムと、ステップS9でプログラム書換部603によって制御プログラムの書き換えが終了した後にフラッシュメモリーに記憶されている制御プログラムと、のデータサイズが一致すること等を以って、プログラム書換部603による制御プログラムの書き換えが成功したものと判断するとS10;YES、起動フラグ設定部601に起動モードを通常モードに切り替える指示を送出し、起動フラグ設定部601は、当該指示に応じて、通常モードを示す起動フラグをフラッシュメモリーに記憶して、起動モードを通常モードに切り替えるS11。そして、通常モードを示す起動フラグがフラッシュメモリーに記憶されている状態で、実行制御部605は、表示部403に制御プログラムの書き換えに成功して終了したことを示すメッセージを表示してS12、再びステップS1の処理に移行する。尚、ステップS10において、実行制御部605は、例えば、ステップS9でプログラム書換部603による制御プログラムの書き換えが開始されてから、予め定められた想定処理時間を経過しても当該書き換えの処理が終了しない、又は、ステップS6でプログラム取得部602によって取得された書き換え用の制御プログラムと、ステップS9でプログラム書換部603によって制御プログラムの書き換えが終了した後にフラッシュメモリーに記憶されている制御プログラムとのデータサイズが一致しない等を以って、プログラム書換部603による制御プログラムの書き換えが失敗したものと判断するとS10;NO、起動フラグ設定部601に起動モードを切り替える指示を送出することなく、復旧モードを示す起動フラグがフラッシュメモリーに記憶されている状態を維持したまま、表示部403に制御プログラムの書き換えに失敗して終了したことを示すメッセージを表示しS14、再びステップS1の処理に移行する。一方、実行制御部605は、ステップS6でプログラム取得部602に書き換え用の制御プログラムを取得する指示を送出したが、例えば、書き換え用の制御プログラムを記憶している記憶媒体5が画像形成装置1に接続されていない、若しくは、外部インターフェイス700を介して接続された記憶媒体5に書き換え用の制御プログラムが記憶されていない等を以ってプログラム取得部602によって書き換え用の制御プログラムが取得できない、プログラム取得部602によって書き換え用の制御プログラムは取得されたが、当該取得された書き換え用の制御プログラムが画像形成装置1で実行可能な形式で実装されていない、又は、当該書き換え対象の制御プログラムに対して予め定められた最大データサイズよりも大きいデータサイズである等を以って、当該取得された書き換え用の制御プログラムが不正であるものと判断するとS7;YES、プログラム書換部603に制御プログラムの書き換えを実行させることなく、起動フラグ設定部601に起動モードを通常モードに切り替える指示を送出し、起動フラグ設定部601は、当該指示に応じて通常モードを示す起動フラグをフラッシュメモリーに記憶して、起動モードを通常モードに切り換えるS13。そして、通常モードを示す起動フラグがフラッシュメモリーに記憶されている状態で、実行制御部605は、表示部403に制御プログラムの書き換えに失敗して終了したことを示すメッセージを表示してS14、再びステップS1の処理に移行する。次に、実行制御部605による制御プログラムに対する初期処理の実行制御のうち、起動モードが復旧モードの場合に、実行制御部605によって、制御プログラムが復旧される制御の一例について、図3及び図4に示すフローチャートを用いて説明する。実行制御部605は、上記のように、ステップS8で起動フラグ設定部601に起動モードを復旧モードに切り替える指示を送出した後、ステップS9でプログラム書換部603に制御プログラムの書き換えを実行させる指示を送出し、ステップS10で当該指示に応じてプログラム書換部603による制御プログラムの書き換えが失敗したものと判断した後、ステップS1の処理に移行すると、フラッシュメモリーから復旧モードを示す起動フラグを読み出して、起動モードが復旧モードであると判定するS1;復旧モード。そして、実行制御部605は、復旧用の制御プログラムを取得する指示をプログラム取得部602に送出し、プログラム取得部602は、当該指示の下、外部インターフェイス700を介して画像形成装置1に接続された記憶媒体5から復旧用の制御プログラムを取得するS21。次に、実行制御部605は、ステップS21でプログラム取得部602に取得させた復旧用の制御プログラムの正当性を判断するS22。例えば、実行制御部605は、当該取得した復旧用の制御プログラムが画像形成装置1で実行可能な形式で実装され、また、当該復旧対象の制御プログラムに対して予め定められた最大データサイズよりも小さいデータサイズであること等を以って、当該取得した復旧用の制御プログラムに不正はないものと判断するとS22;NO、プログラム復旧部604に制御プログラムの復旧を実行させる指示を送出し、プログラム復旧部604は、当該指示に応じて、ステップS22でプログラム取得部602によって取得された復旧用の制御プログラムを用いて、フラッシュメモリーに記憶されている制御プログラムを書き換えることによって制御プログラムの復旧を行うS23。実行制御部605は、例えば、ステップS21でプログラム取得部602によって取得された復旧用の制御プログラムと、ステップS23でプログラム復旧部604によって制御プログラムの復旧が終了した後にフラッシュメモリーに記憶されている制御プログラムと、のデータサイズが一致すること等を以って、プログラム復旧部604による制御プログラムの復旧が成功したものと判断するとS24;YES、表示部403に制御プログラムの復旧に成功して終了したことを示すメッセージを表示した後S25、起動フラグ設定部601に起動モードを通常モードに切り替える指示を送出し、起動フラグ設定部601は、当該指示に応じて通常モードを示す起動フラグをフラッシュメモリーに記憶して、起動モードを通常モードに切り替えるS26。そして、通常モードを示す起動フラグがフラッシュメモリーに記憶されている状態で、実行制御部605は、再びステップS1の処理に移行する。尚、ステップS24において、実行制御部605は、例えば、ステップS23でプログラム復旧部604による制御プログラムの復旧が開始されてから、予め定められた想定処理時間を経過しても当該復旧の処理が終了しない、又は、ステップS21でプログラム取得部602によって取得された復旧用の制御プログラムと、ステップS23でプログラム復旧部604によって制御プログラムの復旧が終了した後にフラッシュメモリーに記憶されている制御プログラムとのデータサイズが一致しない等を以って、プログラム復旧部604による制御プログラムの復旧が失敗したものと判断するとS24;NO、起動フラグ設定部601に起動モードを切り替える指示を送出することなく、復旧モードを示す起動フラグがフラッシュメモリーに記憶されている状態を維持したまま、表示部403に制御プログラムの復旧に失敗して終了したことを示すメッセージを表示しS27、再びステップS1の処理に移行する。一方、実行制御部605は、ステップS21でプログラム取得部602に復旧用の制御プログラムを取得する指示を送出したが、例えば、復旧用の制御プログラムを記憶している記憶媒体5が画像形成装置1に接続されていない、若しくは、外部インターフェイス700を介して接続された記憶媒体5に復旧用の制御プログラムが記憶されていない等を以ってプログラム取得部602によって復旧用の制御プログラムが取得できない、プログラム取得部602によって復旧用の制御プログラムは取得されたが、当該取得された復旧用の制御プログラムが画像形成装置1で実行可能な形式で実装されていない、又は、当該復旧対象の制御プログラムに対して予め定められた最大データサイズよりも大きいデータサイズである等を以って、当該取得された復旧用の制御プログラムが不正であるものと判断するとS22;YES、プログラム復旧部604に制御プログラムの復旧を実行させることなく、復旧モードを示す起動フラグがフラッシュメモリーに記憶されている状態を維持したまま、表示部403に復旧用の制御プログラムが不正のため復旧不可能であることを示すメッセージを表示しS28、再びステップS1の処理に移行する。このように、本構成によれば、実行制御部605によって起動モードが書き換えモードであると判定された場合、プログラム書換部603による制御プログラムの書き換えが成功しない限り、通常モードを示す起動フラグが不揮発性メモリーに記憶されず、起動モードが復旧モードであると判定された場合も、プログラム復旧部604による制御プログラムの復旧が成功しない限り、通常モードを示す起動フラグが不揮発性メモリーに記憶されない。つまり、制御プログラムの書き換え又は復旧に失敗したときに通常モードを示す起動フラグが不揮発性メモリーに記憶されることがないため、当該書き換え又は復旧の失敗によって不揮発性メモリーに不十分に記憶されたままの制御プログラムを読み出して実行することを回避することができ、当該不揮発性メモリーに不十分に記憶されたままの制御プログラムを読み出して実行することによって画像形成装置1の動作が不安定になる虞を解消することができる。また、ステップS7における判断が実行されることによって、記憶媒体5に記憶されていた不正な制御プログラムを用いてフラッシュメモリーに記憶されている制御プログラムを書き換えることを回避することができ、また、ステップS11で通常モードを示す起動フラグをフラッシュメモリーに記憶することによって、ステップS1において起動モードが通常モードであると判定され、書き換え前の制御プログラムをフラッシュメモリーから読み出して実行することができる。このため、制御プログラムが不正な制御プログラムに書き換えられて画像形成装置1の動作が不安定になる虞を解消することができる。また、ステップS22における判断が実行されることによって、記憶媒体5に記憶されていた不正な制御プログラムを用いてフラッシュメモリーに記憶されている制御プログラムを復旧することを回避することができる。このため、制御プログラムが不正な制御プログラムで復旧されて画像形成装置の動作が不安定になる虞を解消することができる。尚、例えば、書き換え用の制御プログラムを記憶媒体5に記憶する機構によって当該制御プログラムが不正でないことが一度確認されている場合等、実行制御部605をステップS7及びステップS13を実行しない簡易的な構成にしてもよい。また、例えば、復旧用の制御プログラムを記憶媒体5に記憶する機構によって当該制御プログラムが不正でないことが一度確認されている場合等、実行制御部605をステップS22及びステップS28を実行しない簡易的な構成にしてもよい。尚、上記図1乃至図4に示した実施形態に係る構成及び処理は、本発明に係る画像形成装置の構成及び処理の一例に過ぎず、本発明に係る画像形成装置の構成及び処理を上記に示した内容に限定するものではない。