(57)【要約】      （修正有）【課題】ブートプログラム更新中にリセットが発生した場合に容易に回復可能なマイクロコンピュータシステムを提供する。【解決手段】マイクロコンピュータシステムは、ＣＰＵ１０と、フラッシュメモリ１５と、ＲＯＭ１４と、フラッシュメモリ１５を書き換え中のリセット発生に応答してリセット発生を記録し、記録されたリセット発生の有無を示すリセット検出信号を出力するリセット記録回路１１と、リセット記録回路１１の出力に結合されリセット発生無しを示すリセット検出信号に応答してＣＰＵ１０のリセット時のアクセス先としてフラッシュメモリ１５を選択する信号を出力し、リセット発生有りを示すリセット検出信号に応答してＣＰＵ１０のリセット時のアクセス先としてＲＯＭ１４を選択する信号を出力する切換え回路１３を含む。【選択図】図２
2006243810.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、
第１の不揮発性メモリと、
ＲＯＭと、
該第１の不揮発性メモリを書き換え中のリセット発生に応答して該リセット発生を記録し、記録された該リセット発生の有無を示すリセット検出信号を出力するリセット記録回路と、
リセット記録回路の出力に結合され該リセット発生無しを示す該リセット検出信号に応答して該ＣＰＵのリセット時のアクセス先として該第１の不揮発性メモリを選択する信号を出力し、該リセット発生有りを示す該リセット検出信号に応答して該ＣＰＵのリセット時のアクセス先として該ＲＯＭを選択する信号を出力する切換え回路
を含むことを特徴とするマイクロコンピュータシステム。
【請求項２】
該第１の不揮発性メモリにブートプログラムを書き込む動作を該ＣＰＵに実行させるプログラムを格納するよう該ＲＯＭは構成されることを特徴とする請求項１記載のマイクロコンピュータシステム。
【請求項３】
該マイクロコンピュータシステムの外部と通信する通信回路を更に含み、該ＲＯＭに格納されたプログラムを実行することにより該ＣＰＵは該通信回路を介して外部から該第１の不揮発性メモリに該ブートプログラムをダウンロードするよう構成されることを特徴とする請求項２記載のマイクロコンピュータシステム。
【請求項４】
該リセット記録回路は該リセット発生を記録する第２の不揮発性メモリを含み、該第２の不揮発性メモリの該リセット発生の記録を消去する動作を該ＣＰＵに実行させるプログラムを格納するよう該ＲＯＭは構成されることを特徴とする請求項２記載のマイクロコンピュータシステム。
【請求項５】
該リセット記録回路は、該第１の不揮発性メモリのイレーズ動作中又は該第１の不揮発性メモリの書き込み動作中のリセット発生に応答して該リセット発生を記録するよう構成されることを特徴とする請求項１記載のマイクロコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にマイクロコンピュータシステムに関し、詳しくはフラッシュメモリからブートプログラムを読込み起動するマイクロコンピュータシステムに関する。
【背景技術】
【０００２】
マイクロコンピュータシステムに搭載されるＣＰＵ（Central Processing Unit）は、電源が投入されると、リセットベクタ（リセット時のアクセス先アドレス）からブートプログラム命令を読み出して実行する。このブートプログラムを格納する記憶装置としては、電源が遮断されても記憶内容を保持しておく必要があり、例えばＲＯＭ（Read Only Memory）を用いればよい。
【０００３】
しかしながらＲＯＭを使用した場合、ブートプログラムを更新することは容易ではない。ブートプログラムを更新するためには、ＲＯＭを回路基板から外し、ＲＯＭライタ等を用いて新しいブートプログラムを書込んだり、或いは新しいブートプログラムを格納したＲＯＭで置き換えたりする必要がある。このようなブートプログラムの更新処理にはかなりの手間と時間とがかかってしまう。
【０００４】
ブートプログラムを格納する記憶装置として、ＲＯＭの代わりにフラッシュメモリ等の不揮発性メモリを用いれば、ブートプログラムの更新が容易になる。フラッシュメモリは電気的に再書込みが可能であり、システム搭載のＣＰＵにより実行するソフトウェア的な処理により、フラッシュメモリ内のブートプログラムを更新することが可能となる。
【０００５】
特許文献１に記載の発明では、書き込み用プログラムを実行して、読み出し専用メモリとアドレスを共有しているフラッシュメモリの記憶領域にブートプログラムを書き込むようにすることで、ブートプログラムを容易且つ確実にフラッシュメモリに書き込むことができる。また特許文献２の発明では、主領域とバックアップ領域に割り当てられた不揮発性メモリにそれぞれプログラムを格納する多重化の構造によって、一つの不揮発性メモリを用いたシステム起動が不能であっても他の不揮発性メモリのプログラムを用いたシステム起動が行えるようになる。
【特許文献１】特開２００３−３２３３１３号公報
【特許文献２】特開２００４−０１３７１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
フラッシュメモリに格納されるブートプログラムを更新するためには、まずフラッシュメモリの内容を消去する消去動作を実行し、その後データを書き込む書き込み動作を実行する必要がある。これらの消去動作又は書き込み動作中に、何らかの要因により外部から或いは内部でリセットが発生すると、フラッシュメモリの内容が破壊された状態となる。
【０００７】
この場合、リセットに応じてＣＰＵがフラッシュメモリにアクセスし、破壊されたブートプログラムを実行しようとすると、ＣＰＵが暴走する結果となる。この状態になってしまうと、システムを正常に立ち上げることが不可能となるので、マイコンＬＳＩをプリント基板から外してフラッシュメモリへ再書き込みする以外に復旧の手立てはない。
【０００８】
ブートプログラム更新中のリセットは、システムの仕様上禁止しているので、上記のようにブートプログラムが破壊される状況は本来起こり得ないものである。しかしノイズの影響を完全に排除することは不可能であり、ブートプログラム更新中にノイズに起因するリセット動作が発生する場合がある。
【０００９】
以上を鑑みて本発明は、ブートプログラム更新中にリセットが発生した場合に容易に回復可能なマイクロコンピュータシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明によるマイクロコンピュータシステムは、ＣＰＵと、第１のフラッシュメモリと、ＲＯＭと、該第１のフラッシュメモリを書き換え中のリセット発生に応答して該リセット発生を記録し、記録された該リセット発生の有無を示すリセット検出信号を出力するリセット記録回路と、リセット記録回路の出力に結合され該リセット発生無しを示す該リセット検出信号に応答して該ＣＰＵのリセット時のアクセス先として該第１のフラッシュメモリを選択する信号を出力し、該リセット発生有りを示す該リセット検出信号に応答して該ＣＰＵのリセット時のアクセス先として該ＲＯＭを選択する信号を出力する切換え回路
を含むことを特徴とする。
【発明の効果】
【００１１】
本発明の少なくとも１つの実施例によれば、フラッシュメモリの書き換え中（イレーズ処理中又はライトアクセス中）にリセット信号が発生すると、リセット信号発生を検出してその旨を所定の不揮発性メモリに格納しておく。リセット信号による再起動時において、リセット信号検出が所定の不揮発性メモリに記録されている場合には、リセットベクタの位置がフラッシュメモリから所定のＲＯＭに切り替えられ、ＣＰＵはこのＲＯＭからプログラムを読み込んで起動する。
【００１２】
従って、例えば外部記憶装置などに格納されたブートプログラムをダウンロードしてフラッシュメモリに書き込むプログラムをＲＯＭに格納しておけば、リセット動作により破壊されたブートプログラムを復旧することが可能となる。このようにして、ブートプログラム更新中にリセットが発生した場合であっても容易に回復可能なマイクロコンピュータシステムを提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下において、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１４】
本発明においては、フラッシュメモリにリセットベクタが割当てられている状況において、フラッシュメモリのイレーズ処理中又はライトアクセス中にリセット信号が発生すると、リセット信号発生を検出してその旨を所定の不揮発性メモリに格納しておく。リセット信号による再起動時において、リセット信号検出が所定の不揮発性メモリに記録されている場合には、リセットベクタの位置がフラッシュメモリから所定のＲＯＭに切り替えられ、ＣＰＵはこのＲＯＭからプログラムを読み込んで起動する。このＲＯＭ内のプログラムは、例えば外部記憶装置などに格納されたブートプログラムをダウンロードして、フラッシュメモリに書き込むことにより、リセット動作により破壊されたブートプログラムを復旧する。
【００１５】
図１は、本発明の動作を説明するためのメモリマップを示す図である。図１の左側は、通常の動作時のメモリ空間の割り当てを示し、図１の右側は、フラッシュメモリのブートプログラム更新中にリセットが発生した後のメモリ空間の割り当てを示す図である。図１の左側に示すように、例えばアドレス空間ＦＥＦＦＦＦからＦＦ００００は所定のＲＯＭに割当てられ、アドレス空間ＦＥ０００１からＦＦＦＦＦＦはフラッシュメモリに割当てられる。このフラッシュメモリのアドレス空間にリセットベクタが割当てられている。従って、通常の動作時には、リセット信号により再起動時には、ＣＰＵはフラッシュメモリからブートプログラムを読み出して、システム立ち上げ動作を実行することになる。
【００１６】
図１の右側に示すように、フラッシュメモリのブートプログラム更新中にリセットが発生した後には、メモリ空間上で、ＲＯＭの位置とフラッシュメモリの位置とが置き換えられる。つまりリセットベクタがＲＯＭのアドレス空間に割当てられることになる。従って、ブートプログラムが破壊された場合には、リセット信号により再起動されると、ＣＰＵはＲＯＭにアクセスし、ＲＯＭに格納されるプログラムを実行することになる。そのプログラムはブートプログラムをフラッシュメモリに書き込むものであり、これによりシステムを復旧することが可能となる。
【００１７】
図２は、本発明によるマイクロコンピュータシステムの構成の一例を示す図である。図２のマイクロコンピュータシステムは、ＣＰＵ１０、リセット記録回路１１、デコーダ１２、切換え回路１３、ＲＯＭ１４、フラッシュメモリ１５、及びマクロ１６を含む。
【００１８】
ＣＰＵ１０は、アドレスバス２０、データバス２１、及びコントロールバス２２を介して、ＲＯＭ１４、フラッシュメモリ１５、マクロ１６等のマクロと繋がっている。ＣＰＵ１０は、アドレスバス２０を介してアドレス信号によりマクロを指定し、データバス２１を介してマクロとデータをやり取りし、コントロールバス２２を介して制御信号によりマクロの動作を制御する。ＲＯＭ１４及びフラッシュメモリ１５については、後述するようにブートプログラム破壊時にアドレス空間内での位置を交換するために、アドレスバス２０からデコーダ１２及び切換え回路１３を介して、ＲＯＭ１４及びフラッシュメモリ１５を指定する構成となっている。
【００１９】
フラッシュメモリ１５はブートプログラムを格納しておくメモリであり、通常動作時にリセットベクタはフラッシュメモリ１５に割当てられている。従って通常動作時にリセット信号による再起動がかかると、ＣＰＵ１０はフラッシュメモリ１５にアクセスし、フラッシュメモリ１５に格納されるブートプログラムを起動することにより、システムの立ち上げ動作を実行する。
【００２０】
ＲＯＭ１４は、フラッシュメモリ１５のイレーズ処理中又はライトアクセス中にリセット信号が発生することによりフラッシュメモリ１５の内容が破壊された場合に、フラッシュメモリ１５の代わりにシステムの起動元となるメモリである。フラッシュメモリ１５の内容が破壊された場合のリセット信号による再起動において、ＣＰＵ１０はリセットベクタが指し示す先としてＲＯＭ１４にアクセスし、ＲＯＭ１４に格納されるプログラムを実行する。このＲＯＭ１４内のプログラムは、例えば外部記憶装置などに格納されたブートプログラムをダウンロードして、フラッシュメモリ１５に書き込むことにより、リセット動作により破壊されたブートプログラムを復旧する。
【００２１】
リセット記録回路１１は、フラッシュメモリ１５のイレーズ処理中又はライトアクセス中にリセット信号ＩＮＩＴＸが発生すると、リセット信号が発生した旨を内部の不揮発性メモリに記録する。内部の不揮発性メモリにリセット信号発生が記録されると、リセット記録回路１１が出力するリセット検出信号ＲＤＥＴＥＣＴがアサート状態となる。なおフラッシュメモリ１５のイレーズ処理中又はライトアクセス中であることは、フラッシュメモリ１５からのイレーズ信号ＥＲＡＳＥ、並びにアドレスバス２０のアドレス信号及びコントロールバス２２の制御信号に基づいて判定することができる。
【００２２】
デコーダ１２は、アドレスバス２０のアドレス信号をデコードすることで、ＲＯＭ１４がアクセス先であることを示す信号ＤＥＣ１又はフラッシュメモリ１５がアクセス先であることを示す信号ＤＥＣ２を生成する。切換え回路１３は、リセット検出信号ＲＤＥＴＥＣＴがネゲート状態であるときに、信号ＤＥＣ１をＲＯＭ１４に供給し、信号ＤＥＣ２をフラッシュメモリ１５に供給する。リセット検出信号ＲＤＥＴＥＣＴがアサート状態であるときには、切換え回路１３は信号ＤＥＣ２をＲＯＭ１４に供給し、信号ＤＥＣ１をフラッシュメモリ１５に供給する。これによりフラッシュメモリ１５の内容が破壊された場合のリセット信号による再起動において、ＣＰＵ１０はリセットベクタが指し示す先としてＲＯＭ１４にアクセスすることができる。
【００２３】
マクロ１６は他のマクロであり、例えばＲＡＭ或いは通信インターフェース等であってよい。図２の例では、通信インターフェースとして外部制御装置３０と通信する構成が示される。フラッシュメモリ１５の内容が破壊された場合に、ＣＰＵ１０はＲＯＭ１４が格納するプログラムを実行することで、例えば外部制御装置３０からブートプログラムをダウンロードすることができる。
【００２４】
図３は、リセット記録回路１１の構成の一例を示す図である。図３のリセット記録回路１１は、ワンショットマルチバイブレータ４１、インバータ４２、ＡＮＤ回路４３、ＡＮＤ回路４４、ＯＲ回路４５、ＯＲ回路４６、ＮＯＲ回路４７、セレクタ４８、フラッシュメモリ４９、及びデコーダ５０を含む。
【００２５】
マイクロコンピュータ外部から又は内部で発生したリセット信号ＩＮＩＴＸがアサートされると、これに応答して、ワンショットマルチバイブレータ４１が一定の長さのパルス信号（負論理）ＩＮＩＴＸ＿ＤＥＴを生成する。ワンショットマルチバイブレータ４１の出力信号ＩＮＩＴＸ＿ＤＥＴは、インバータ４２を介してＡＮＤ回路４３の一方の入力に供給される。ＡＮＤ回路４３のもう一方の入力には、イレーズ信号ＥＲＡＳＥが図２のフラッシュメモリ１５から供給される。このイレーズ信号ＥＲＡＳＥは、ＣＰＵ１０からのイレーズコマンドに応答してフラッシュメモリ１５がイレーズ動作を実行している最中に、フラッシュメモリ１５によりアサートされる信号である。
【００２６】
ＡＮＤ回路４３は、イレーズ信号ＥＲＡＳＥがアサート状態（ＨＩＧＨ）であると、ワンショットマルチバイブレータ４１の出力であるパルス信号を通過させる。このＡＮＤ回路４３の出力は、フラッシュメモリ１５のイレーズ動作中にリセット信号ＩＮＩＴＸが発生したことを示す異常検出パルスとして、ＯＲ回路４５の一方の入力に供給される。
【００２７】
デコーダ５０は、図２のアドレスバス２０のアドレス信号とコントロールバス２２の制御信号とを受け取り、アドレス信号と制御信号との論理をとることにより、図２のフラッシュメモリ１５に対してＣＰＵ１０が書き込みアクセスしていることを示す書き込みアクセス信号ＷＲを出力する。書き込みアクセス信号ＷＲは、ＡＮＤ回路４４の一方の入力に供給される。ＡＮＤ回路４４のもう一方の入力には、ワンショットマルチバイブレータ４１の出力信号ＩＮＩＴＸ＿ＤＥＴがインバータ４２を介して供給される。
【００２８】
ＡＮＤ回路４４は、書き込みアクセス信号ＷＲがアサート状態（ＨＩＧＨ）であると、ワンショットマルチバイブレータ４１の出力であるパルス信号を通過させる。このＡＮＤ回路４４の出力は、フラッシュメモリ１５の書き込み動作中にリセット信号ＩＮＩＴＸが発生したことを示す異常検出パルスとして、ＯＲ回路４５の一方の入力に供給される。
【００２９】
ＯＲ回路４５の出力は、フラッシュメモリ１５のイレーズ動作中或いは書き込み動作中にリセットが発生したことを示すＨＩＧＨパルスである。このパルスがＮＯＲ回路４７を介してＬＯＷパルスとして、フラッシュメモリ４９のライトイネーブル信号入力ＸＷＥに供給される。
【００３０】
デコーダ５０が出力するアクセス信号ＡＣＣＥＳＳは、ＣＰＵ１０がリセット記録回路１１のフラッシュメモリ４９をアクセスするときにＨＩＧＨになる信号であり、それ以外の状態ではＬＯＷである。従って、フラッシュメモリ４９のライトイネーブル信号入力ＸＷＥにＬＯＷパルスが供給されるとき、セレクタ４８のＡ入力は０でありＢ入力は１である。セレクタ４８は、“０１”のＡＢ入力に応じてデータ“０”を選択してフラッシュメモリ４９のデータ信号入力Ｄ＿ＩＮに供給する。
【００３１】
このようにして、フラッシュメモリ１５のイレーズ動作中或いは書き込み動作中にリセットが発生した場合には、フラッシュメモリ４９にはデータ“０”が格納される。フラッシュメモリ４９の格納するデータ内容“０”は、リセット検出信号ＲＤＥＴＥＣＴとして図２の切換え回路１３に供給される。この例では、リセット検出信号ＲＤＥＴＥＣＴはＬＯＷ（“０”）でアサート状態である。
【００３２】
なお図３の構成においては、フラッシュメモリ１５のイレーズ動作中のリセット発生及びイレーズ動作中の電源断によるリセット発生、並びにフラッシュメモリ１５の書き込み動作中のリセット発生及び書き込み動作中の電源断によるリセット発生を検出することができる。
【００３３】
図２のＲＯＭ１４のプログラムを実行してフラッシュメモリ１５のブートプログラムが回復された後には、内部で再度リセットを発生させて、フラッシュメモリ１５のブートプログラム実行によりシステムを立ち上げる必要がある。この際には、図３のフラッシュメモリ４９の内容を書き換えて、リセット検出信号ＲＤＥＴＥＣＴをネゲート状態にしておかなければ、フラッシュメモリ１５からブートすることができない。即ち、フラッシュメモリ１５のブートプログラムが回復された後、ＣＰＵ１０は、リセット記録回路１１にアクセスしてフラッシュメモリ４９に“１”を格納しておく必要がある。
【００３４】
ＣＰＵ１０からリセット記録回路１１へのアクセスは、図３において、アドレス信号及び制御信号のデコードによりデコーダ５０から出力されるアクセス信号ＡＣＣＥＳＳがＨＩＧＨとなることで実現される。このＨＩＧＨ信号が、ＮＯＲ回路４７を介してＬＯＷ信号として、フラッシュメモリ４９のライトイネーブル信号入力ＸＷＥに供給される。このときセレクタ４８のＡＢ入力は“１０”であり、ＣＰＵ１０からデータバス２１を介して供給されるデータ信号が、セレクタ４８を介してフラッシュメモリ４９に書き込まれる。
【００３５】
これによりフラッシュメモリ４９に“１”を格納して、リセット検出信号ＲＤＥＴＥＣＴをネゲート状態とすることができる。従って図２のシステムにおいて、リセットベクタが指し示す先はフラッシュメモリ１５となり、ＣＰＵ１０がフラッシュメモリ１５からブートプログラムを読込むことが可能となる。
【００３６】
なおＯＲ回路４６は、リセット信号ＩＮＩＴＸとワンショットマルチバイブレータ４１とのＯＲをとることで、他のマクロをリセットするための信号を生成する。この信号は、例えば図２のマクロ１６等に供給される。
【００３７】
図４は、図３のリセット記録回路１１の動作を説明するための信号タイミング図である。フラッシュメモリ１５がイレーズ動作を実行中に、（ｃ）に示すイレーズ信号ＥＲＡＳＥがＨＩＧＨとなる。このイレーズ信号ＥＲＡＳＥがＨＩＧＨである状態において、（ａ）に示すリセット信号ＩＮＩＴＸがアサート状態（ＬＯＷ状態）となると、その立下りエッジに応答してワンショットマルチバイブレータ４１が固定長の負論理パルス信号ＩＮＩＴＸ＿ＤＥＴを生成する（図４（ｂ））。
【００３８】
この負論理パルス信号ＩＮＩＴＸ＿ＤＥＴの反転（図３のインバータ４２による反転）とイレーズ信号ＥＲＡＳＥとのアンドをとることで、（ｄ）に示す異常検出パルスが生成される。この異常検出パルスが反転されて、（ｅ）に示すフラッシュメモリ４９のライトイネーブル信号入力となる。このとき、フラッシュメモリ４９のデータ信号入力Ｄ＿ＩＮにはデータ“０”が入力されている。これにより、フラッシュメモリ４９から出力されるリセット検出信号ＲＤＥＴＥＣＴ（図２及び図３）は、アサート状態（ＬＯＷ状態）に設定される。
【００３９】
図５は、図２に示すマイクロコンピュータシステムの動作を示すフローチャートである。まず電源ＯＮ又はリセットがかかるとステップＳ１から処理が開始される。電源ＯＮの後又はリセットの後において、ステップＳ２に示されるように、フラッシュメモリ１５のイレーズ動作又は書き込み動作中にリセットが検出された記録があるか否かに応じて、その後の処理が異なることになる。これは、リセット記録回路１１から出力されるリセット検出信号ＲＤＥＴＥＣＴに応じて、デコーダ１２及び切換え回路１３が指し示すリセットベクタの読込先が切り替わるからである。
【００４０】
例えばフラッシュメモリ１５のイレーズ動作又は書き込み動作中にリセットが検出された記録がない場合、処理はステップＳ３に進み、リセットベクタ先のフラッシュメモリ１５からブートプログラムを読込んで実行する。これによりマイクロコンピュータシステムが立ち上がり通常の動作が開始されることになる。
【００４１】
その後、フラッシュメモリ１５のブートプログラムの更新を試みた場合が図５に示されている。図５の例では、ステップＳ４において、フラッシュメモリ１５のブートプログラムの更新をしている最中、即ち、フラッシュメモリ１５のイレーズ又は書き込み動作を実行している最中に、リセット信号が発生している。
【００４２】
これに応じて、ステップＳ５で、リセット記録回路１１に所定の値をセットする。即ち、リセット記録回路１１のフラッシュメモリ４９に、リセット発生を示すデータ値を格納する。ステップＳ６で、リセット記録回路１１から出力されるリセット検出信号ＲＤＥＴＥＣＴがアサート状態となることにより、切換え回路１３によって、起動時のプログラム読込先がフラッシュメモリ１５からＲＯＭ１４に切り換えられる。ステップＳ４で発生したリセットにより、処理はステップＳ１から再度実行されることになる。
【００４３】
リセットの後、ステップＳ２での分岐においてフラッシュメモリ１５のイレーズ動作又は書き込み動作中にリセットが検出された記録があるので、処理はステップＳ７に進む。ステップＳ７では、リセットベクタ先のＲＯＭ１４からプログラムを読込んで実行する。このプログラム実行により、ステップＳ８において、例えばダウンロード手段によりブートプログラムをダウンロードし、フラッシュメモリ１５にダウンロードしたプログラムを書き込む。これによりフラッシュメモリ１５を正常な状態に回復することができる。
【００４４】
その後ステップＳ９において、リセット記録回路１１のフラッシュメモリ４９をリセットする。即ちフラッシュメモリ４９に格納されているリセット発生を示すデータ値を他の値で書き換えることにより、リセット記録回路１１から出力されるリセット検出信号ＲＤＥＴＥＣＴをネゲート状態とする。その後ステップＳ１０において、内部でソフトウェアを介してリセットを発生する。これにより、ＲＯＭ１４のプログラムを実行してフラッシュメモリ１５のブートプログラムを回復した後に、フラッシュメモリ１５のブートプログラム実行によりシステムを立ち上げ直すことができる。
【００４５】
図６は、本発明によりＲＯＭのプログラムを実行してブートプログラムをダウンロードする構成の一例を示す図である。図６の構成は、本発明によるマイクロコンピュータシステム１００、通信回線１０１、及びパーソナルコンピュータ又はワークステーション等のコンピュータ１０２を含む。
【００４６】
マイクロコンピュータシステム１００は、例えばＲＳ−２３２等の通信回線１０１を介してコンピュータ１０２と接続される。図２と対応させると、外部制御装置３０がコンピュータ１０２に対応し、マクロ１６は例えばＵＡＲＴ（Universal Asynchronous Receiver Transmitter）等に対応することになる。
【００４７】
マイクロコンピュータシステム１００は、ボード１１０上に図２のシステムが搭載された構成となっている。図６では、便宜上フラッシュメモリ１５のみが図示されている。コンピュータ１０２から通信回線１０１を介してマイクロコンピュータシステム１００を制御することで、フラッシュメモリ１５のブートプログラムを更新することができる。この際、ブートプログラム更新中にリセットが発生すると、フラッシュメモリ１５の内容が破壊されてしまう。このリセットに応じた起動時に、マイクロコンピュータシステム１００は前述した動作を実行することにより、フラッシュメモリ１５ではなく所定のＲＯＭ（図２のＲＯＭ１４）からプログラムを読込んで実行する。
【００４８】
このＲＯＭ１４にはコンピュータ１０２から通信回線１０１を介してブートプログラムをダウンロードするプログラムが格納されている。このプログラムが実行されると、マイクロコンピュータシステム１００から、ブートプログラムのダウンロード要求が通信回線１０１を介してコンピュータ１０２に送信される。ダウンロード要求に応答して、コンピュータ１０２は通信回線１０１を介してブートプログラムをマイクロコンピュータシステム１００に送出する。
【００４９】
マイクロコンピュータシステム１００のＣＰＵ１０は、コンピュータ１０２から供給されたブートプログラムをフラッシュメモリ１５に書き込む。その後ＲＯＭ１４に格納されるプログラムに基づいて、ＣＰＵ１０はソフトウェア的にリセットを発生させる。これによりマイクロコンピュータシステム１００は、ダウンロードされフラッシュメモリ１５に格納されたブートプログラムに基づいて再起動される。
【００５０】
なお上記実施例はフラッシュメモリを例にして説明したが、フラッシュメモリの代わりに強誘電体メモリ等の他の不揮発性メモリを用いてもよい。
【００５１】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【００５２】
【図１】本発明の動作を説明するためのメモリマップを示す図である。
【図２】本発明によるマイクロコンピュータシステムの構成の一例を示す図である。
【図３】リセット記録回路の構成の一例を示す図である。
【図４】図３のリセット記録回路の動作を説明するための信号タイミング図である。
【図５】図２に示すマイクロコンピュータシステムの動作を示すフローチャートである。
【図６】本発明によりＲＯＭのプログラムを実行してブートプログラムをダウンロードする構成の一例を示す図である。
【符号の説明】
【００５３】
１０  ＣＰＵ
１１  リセット記録回路
１２  デコーダ
１３  切換え回路
１４  ＲＯＭ
１５  フラッシュメモリ
１６  マクロ
２０  アドレスバス
２１  データバス
２２  コントロールバス
４１  ワンショットマルチバイブレータ
４２  インバータ
４３、４４  ＡＮＤ回路４３
４５、４６  ＯＲ回路
４７  ＮＯＲ回路
４８  セレクタ
４９  フラッシュメモリ
５０  デコーダ
１００  マイクロコンピュータシステム
１０１  通信回線
１０２  コンピュータ
【図１】
2006243810.tif 000003
【図２】
2006243810.tif 000004
【図３】
2006243810.tif 000005
【図４】
2006243810.tif 000006
【図５】
2006243810.tif 000007
【図６】
2006243810.tif 000008