(57)【要約】【課題】信頼性の高い統計多重制御が可能な統計多重装置を提供する【解決手段】本発明によるマイクロコンピュータ１０は、ステータスレジスタ５に設定された状態フラグ１０２に応じて、ユーザモードとプログラミングモードの一方を選択し、ユーザモードが選択された場合、不揮発性メモリ２内のユーザプログラムを実行し、プログラミングモードが選択された場合、不揮発性メモリ２へのユーザプログラムの書き込み又は消去を制御する書き込み用ファームウェア３を実行する。【選択図】図２
2011118636.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと、
前記不揮発性メモリにおける所定の領域にユーザプログラムが書き込まれているか否かを示す状態フラグが設定されるステータスレジスタと、
ステータスレジスタに設定された状態フラグに応じて、ユーザモードとプログラミングモードの一方を選択するモード切替回路と、
前記モード切替回路によって前記ユーザモードが選択された場合、前記不揮発性メモリ内のユーザプログラムを実行し、前記モード切替回路によって前記プログラミングモードが選択された場合、前記不揮発性メモリに対するユーザプログラムの書き込み又は消去を制御する書き込み用ファームウェアを実行する演算処理装置と
を具備する
マイクロコンピュータ。
【請求項２】
請求項１に記載のマイクロコンピュータにおいて、
ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースを更に具備し、
前記モード切替回路は、前記ＵＳＢインタフェースにＵＳＢデバイスが接続されたか否かを示すＶＢＵＳ信号の論理値と、前記ステータスレジスタに設定された状態フラグの論理値との論理演算結果に応じて前記ユーザモードと前記プログラミングモードの一方を選択する
マイクロコンピュータ。
【請求項３】
請求項２に記載のマイクロコンピュータにおいて、
前記ＵＳＢインタフェースにＵＳＢデバイスが接続された場合、前記演算処理装置は、前記ＵＳＢインタフェースを介して送信されるユーザプログラムを前記不揮発性メモリに書き込む
マイクロコンピュータ。
【請求項４】
請求項２に記載のマイクロコンピュータにおいて、
前記ＵＳＢと異なる規格の通信インタフェースを更に具備し、
前記ＵＳＢインタフェースにＵＳＢデバイスが接続されていない場合、前記演算処理装置は、前記通信インタフェースを介して送信されるユーザプログラムを前記不揮発性メモリに書き込む
マイクロコンピュータ。
【請求項５】
請求項１から４のいずれか１項に記載のマイクロコンピュータにおいて、
前記ステータスレジスタの状態フラグは、外部装置からのコマンドに応じて変更される
マイクロコンピュータ。
【請求項６】
請求項１から５のいずれか１項に記載のマイクロコンピュータにおいて、
前記ステータスレジスタ及び前記モード切替回路は、前記演算処理装置に設けられる
マイクロコンピュータ。
【請求項７】
マイクロコンピュータに搭載された不揮発性メモリにユーザプログラムが書き込まれているか否かを示す状態フラグに応じて、ユーザモードとプログラミングモードの一方を選択するステップと、
前記選択するステップにおいて、前記ユーザモードが選択された場合、前記不揮発性メモリ内のユーザプログラムを実行ステップと、
前記選択するステップにおいて、前記プログラミングモードが選択された場合、前記不揮発性メモリに対するユーザプログラムの書き込み又は消去を制御するステップと  
を具備する
マイクロコンピュータの制御方法。
【請求項８】
請求項７に記載のマイクロコンピュータの制御方法において、
前記選択するステップは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースにＵＳＢデバイスが接続されたか否かを示すＶＢＵＳ信号の論理値と、前記ステータスレジスタに設定された状態フラグの論理値との論理演算結果に応じて前記ユーザモードと前記プログラミングモードの一方を選択するステップを備える
マイクロコンピュータの制御方法。
【請求項９】
請求項８に記載のマイクロコンピュータの制御方法において、
前記ＵＳＢインタフェースにＵＳＢデバイスが接続された場合、前記ＵＳＢインタフェースを介して送信されるユーザプログラムを前記不揮発性メモリに書き込む
マイクロコンピュータの制御方法。
【請求項１０】
請求項８に記載のマイクロコンピュータの制御方法において、
前記ＵＳＢインタフェースにＵＳＢデバイスが接続されていない場合、ＵＳＢと異なる規格の通信インタフェースを介して送信されるユーザプログラムを前記不揮発性メモリに書き込む
マイクロコンピュータの制御方法。
【請求項１１】
請求項７から１０のいずれか１項に記載のマイクロコンピュータの制御方法において、
前記ステータスレジスタの状態フラグは、外部装置からのコマンドに応じて変更される
マイクロコンピュータの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、及びマイクロコンピュータの制御方法に関し、特に不揮発性メモリを搭載したマイクロコンピュータ、及びその制御方法に関する。
【背景技術】
【０００２】
現在、家電製品や通信機器、あるいは自動車や産業用ロボット等、電子制御を必要とする製品の大部分は、マイクロコンピュータ、所謂マイコンを内蔵している。マイコンに搭載された不揮発性メモリ（例示：フラッシュメモリ）には、マイコンの用途に応じたプログラム（ユーザプログラム）が記録される。これにより、製品用途や性能に応じたマイコンを同一のハードウェアで実現することができる。又、ユーザプログラムに不具合が生じた場合や、アップグレードが必要になった場合等、フラッシュメモリ内のユーザプログラムを書き換えることで、製品の不具合解消やアップグレードが可能となる。
【０００３】
マイコン内のフラッシュメモリにユーザプログラムを書き込む場合、マイコンをプログラムの書き込みモードに設定する必要がある。この際、予めフラッシュメモリ内にユーザプログラムが格納されているときは、フラッシュメモリ内のユーザプログラムを使用するユーザモードか、これを書き換え又は消去するプログラミングモードの一方を選択する必要がある。
【０００４】
例えば、ユーザモードとプログラミングモードを切り替えるため、切り替え用の制御信号が入力される専用端子をマイコン（マイコンが搭載されるマザーボード）に搭載することが考えられる。
【０００５】
通常、生産ラインで用いられるフラッシュライタはシリアルインタフェースが採用されており、マイコン（マザーボード）との間でシリアル通信が行われる。この場合、ＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ  Ｔｒａｎｓｍｉｔｔｅｒ）やＣＳＩ（Ｃｏｍｍｏｎ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）を用いることになるが、ＵＡＲＴやＣＳＩはコネクタに規格がなく、モード切替用の専用端子を増設でき、フラッシュライタ側から、制御信号によるモード切替が可能となる。
【０００６】
一方、シリアルインタフェースとして近年注目されている規格として、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）が広く普及している。ＵＳＢインタフェースのようにコネクタが規格化されている通信においては、通信ライン（電源ライン×２、データライン×２）以外に信号線を持つことができない。このため、ＵＳＢを介してマイコン内のフラッシュメモリにプログラムを書き込む場合、上述のような専用端子の状態（信号レベル）を切り替えるための構成（例えばジャンパスイッチ）を用意する必要がある。しかし、この方法を採用した場合、モード変更用のスイッチを制御する工程が必要となり、生産ラインにおける生産効率が低下してしまう。
【０００７】
このような問題を回避するため、専用端子を利用せずに、ソフトウェアによってモードの切り替えを行う技術が知られている。例えば、特開２００２−１４９６２５には、マイコンのリセットに応じて起動する書き込み専用プログラムによってＵＳＢを介したフラッシュメモリへの書き込みを実行するマイコンが記載されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−１４９６２５
【発明の概要】
【発明が解決しようとする課題】
【０００９】
図１は、特許文献１に記載のマイコンに対するユーザプログラムの書き込み制御動作を示すフロー図である。図１を参照して、ソフトウェアによってモード切替が行われる従来技術によるマイコンの動作を説明する。先ず、パーソナルコンピュータとマイコンがＵＳＢケーブルによって接続される。マイコンにＵＳＢケーブルが接続されることで、マイコンに電源が供給されるとともにパワーオンリセットされる（ステップＳ２０１）。パワーオンリセットに応じて書き込み制御プログラムが開始する（ステップＳ２０２）。
【００１０】
書き込み制御プログラムの起動後、マイコンは、フラッシュメモリ内にユーザプログラムが格納されているか否かを判定する（ステップＳ２０３）。ここで、フラッシュメモリ内にユーザプログラムが書き込まれていない場合、プログラミング処理に移行し、ＵＳＢを介してユーザプログラムがフラッシュメモリに書き込まれる（ステップＳ２０３書き込み無、Ｓ２０４、Ｓ２０５）。
【００１１】
詳細には、プログラミングモードに移行すると、エミュレーションによってパーソナルコンピュータの初期化とマイコンに対するアドレスの割り当てが行われる（ステップＳ２０４）。マイコンは書き込み制御プログラムを実行することで、パーソナルコンピュータから送信されたＵＳＢパケット内のアドレスと自身に割り当てられたアドレスとを照合し、パーソナルコンピュータからプログラムデータを読み出す（ステップＳ２０５）。
【００１２】
マイコンは、パーソナルコンピュータから読み出したプログラムデータをフラッシュメモリに書き込み、その後、当該プログラムを実行する（ステップＳ２０６）。プログラムの実行後は、プログラムの書き込みエラーに対応するため再ロードするか否かの判定が行われる（ステップＳ２０７）。
【００１３】
一方、ユーザプログラムがフラッシュメモリに格納されていると判定されると、マイコンは、書き込み処理を行うことなく、ユーザプログラムを実行するユーザモードに移行する（ステップＳ２０３書き込み有、Ｓ２０６）。これにより、特許文献１に記載のマイコンは、フラッシュメモリ内にユーザプログラムが格納されている場合、不要な書き込み処理を省略することができる。
【００１４】
しかし、特許文献１の技術では、書き込み制御プログラムを実行することで、フラッシュメモリ内にユーザプログラムが記録されているか否かの判定を行っている。すなわち、特許文献１に記載のマイコンは、予めユーザプログラムがフラッシュメモリに格納された状態においてもパワーオンリセットに応じて必ず書き込み制御プログラムが起動し、フラッシュメモリの状態判定処理が行われる。このため、特許文献１の技術でも、パワーオンリセットから直ぐにユーザプログラムの実行（システムの起動）が、できないという問題がある。
【課題を解決するための手段】
【００１５】
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、［特許請求の範囲］の記載と［発明を実施するための形態］の記載との対応関係を明らかにするために、［発明を実施するための形態］で使用される番号・符号が付加されている。ただし、付加された番号・符号は、［特許請求の範囲］に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。
【００１６】
本発明によるマイクロコンピュータ（１０）は、不揮発性メモリ（２）と、ステータスレジスタ（５）と、モード切替回路（４）と、演算処理装置（１）とを具備する。ステータスレジスタ（５）には、不揮発性メモリ（２）における所定の領域にユーザプログラムが書き込まれているか否かを示す状態フラグ（１０２）が設定される。モード切替回路（４）は、ステータスレジスタ（５）に設定された状態フラグ（１０２）に応じて、ユーザモードとプログラミングモードの一方を選択する。演算処理装置（１）は、モード切替回路（４）によってユーザモードが選択された場合、不揮発性メモリ（２）内のユーザプログラムを実行し、モード切替回路（４）によってプログラミングモードが選択された場合、不揮発性メモリ（２）へのユーザプログラムの書き込み又は消去を制御する書き込み用ファームウェア（３）を実行する。
【００１７】
本発明によるマイクロコンピュータの制御方法は、マイクロコンピュータ（１０）に搭載された不揮発性メモリ（２）にユーザプログラムが書き込まれているか否かを示す状態フラグ（１０２）に応じて、ユーザモードとプログラミングモードの一方を選択するステップと、選択するステップにおいて、ユーザモードが選択された場合、不揮発性メモリ（２）内のユーザプログラムを実行ステップと、選択するステップにおいて、プログラミングモードが選択された場合、不揮発性メモリ（２）に対するユーザプログラムの書き込み又は消去を制御するステップとを具備する。
【００１８】
本発明では、ステータスレジスタに設定された状態フラグ（１０２）を利用して、フラッシュメモリ（２）内のユーザプログラムの有無を確認している。このため、書き込み制御用プログラムを起動することなくユーザモードとプログラミングモードの一方を選択し、適切なプログラムを起動することが可能となる。例えば、状態フラグを確認することで、書き込み制御用プログラムを起動せずに、ユーザプログラムを実行することが可能となる。
【発明の効果】
【００１９】
従って、本発明によれば、マイクロコンピュータに対する電源投入からシステム起動（ユーザプログラムの実行）までの時間を短縮することができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、従来技術によるマイクロコンピュータに対するユーザプログラムの書き込み制御動作を示すフロー図である。
【図２】図２は、本発明によるマイクロコンピュータの実施の形態における構成を示す図である。
【図３】図３は、本発明に係るモード切替回路の構成の一例を示す図である。
【図４】図４は、本発明に係るモード切替回路において設定されるモードを示す表である。
【図５】図５は、本発明によるマイクロコンピュータの起動時における制御動作を示すフロー図である。
【発明を実施するための形態】
【００２１】
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。
【００２２】
（マイクロコンピュータの構成）
図２から図４を参照して、本発明によるマイクロコンピュータ１０（以下、マイコン１０と称す）の実施の形態における構成を説明する。図２は、本発明によるマイコンの実施の形態における構成を示す図である。マイコン１０は、演算処理装置１（以下、ＣＰＵ１と称す）、不揮発性メモリ（例示：フラッシュメモリ、以下、フラッシュメモリ２と称す）、フラッシュ書き込み用ファームウェア３（以下、書き込み用ファームウェア３と称す）、ＵＳＢインタフェース６、ＵＳＢ以外の規格の通信インタフェース７（以下、通信インタフェース７と称す）を具備する。
【００２３】
ＣＰＵ１は、フラッシュメモリ２内に格納されたユーザプログラムや、書き込み用ファームウェア３を実行することで、マイコンの動作を制御する。本発明によるＣＰＵ１は、モード切替回路４とステータスレジスタ５を備える。ＣＰＵ１は、モード切替回路４によって選択されたモードに応じて実行するプログラムを決定する。例えば、モード切替回路４によってユーザモードが選択されている場合、ＣＰＵ１は、フラッシュメモリ２の所定の領域にアクセスし、当該領域に格納されているユーザプログラムを実行する。あるいは、プログラミングモードが選択されている場合、ＣＰＵ１は、書き込み用ファームウェア３を実行し、ＵＳＢインタフェース６又は通信インタフェース７を介して送信されるユーザプログラムをフラッシュメモリ２に書き込む。
【００２４】
書き込み用ファームウェア３は、ＵＳＢインタフェース６や通信インタフェース７を介して外部装置から入力されるユーザプログラムをフラッシュメモリ２に書き込むためのプログラムである。ＣＰＵ１は書き込み用ファームウェア３を実行することで、フラッシュメモリ２に対するユーザプログラムの書き込み、更新、消去等を実行する。書き込み用ファームウェア３は、製品出荷後、ユーザによって書換えられることのないように、書換え不能なマスクＲＯＭ等に記録されることが好ましい。ただし、書き込み用ファームウェア３は、フラッシュメモリ２のユーザプログラムが記録される領域と異なる領域に記録されていても構わない。
【００２５】
モード切替回路４が選択するプログラミングモードは、ＵＳＢインタフェース６を利用したプログラミングモード（以下、プログラミングモード（ＵＳＢ）と称す）と、他の通信インタフェース７を利用したプログラミングモード（以下、プログラミングモード（他）と称す）を有する。このため、利用するインタフェース毎に書き込み用ファームウェア３が用意されることが好ましい。
【００２６】
フラッシュメモリ２は、マイコン１０の動作を制御するためのユーザプログラムを格納するための領域を有する。ＣＰＵ１（図示しない演算部）は、この領域にプログラムを書き込むと（書き込みが完了すると）、ステータスレジスタ５に、プログラムの書き込みを示す状態フラグ（例えば“１”）を設定する。又、ユーザプログラムが書き込まれていない場合、ステータスレジスタ５には、ユーザプログラムが格納されていないことを示す状態フラグ（例えば“０”）が設定される。
【００２７】
本実施の形態におけるマイコン１０は、ＵＳＢインタフェース６と他の通信規格による通信インタフェース７といった複数の通信規格のインタフェースを具備する。それぞれのインタフェースは、自身に接続する外部装置とＣＰＵ１との間の通信を制御する。ＵＳＢインタフェース６は、ＵＳＢデバイス（ここでは、フラッシュライタ２０）が接続可能な端子１１〜１３を備える。詳細には、端子１１は、マイコン１０における外部割り込み端子の機能を有するとともに、フラッシュライタ２０のＶＢＵＳ信号用端子に接続される。マイコン１０は、端子１１に入出力されるＶＢＵＳ信号１０１により、ＵＳＢデバイスの接続又は切断を認識することができる。又、端子１１に入力されたＶＢＵＳ信号１０１は、割り込み信号としてモード切替回路４に入力される。例えば、マイコン１０にＵＳＢデバイスが接続されている場合、ＶＢＵＳ信号１０１の論理値は“１”となり、ＵＳＢデバイスとの接続が切断された場合、その論理値は“０”となる。端子１２、１３は、フラッシュライタ２０のデータ信号Ｄ＋、Ｄ−用端子に接続される。ＣＰＵ１は、端子１２、１３を介してＵＳＢデバイス（フラッシュライタ２０）との間のデータの送受信を行う。ＵＳＢインタフェース６には、この他、電源端子やＧＮＤ端子があるが、本説明では省略する。
【００２８】
通信インタフェース７は、ＵＳＢ以外の規格によるインタフェースであり、ＬＡＮインタフェースやＵＳＢ以外のシリアルインタフェースが例示される。
【００２９】
ＵＳＢデバイスであるフラッシュライタ２０は、図示しない記憶装置内に、フラッシュメモリ２に記録すべきユーザプログラムや、ユーザプログラムの更新データ、あるいはパッチ等を保持している。マイコン１０は、書き込み用ファームウェア３を実行することで、自身に接続するフラッシュライタ２０からユーザプログラムや更新データ等を読み出し、フラッシュメモリ２に書き込む。
【００３０】
モード切替回路４は、ＶＢＵＳ信号１０１とステータスレジスタ５の状態フラグ１０２のそれぞれが示す論理値に応じて、ＣＰＵ１の起動プログラムを決定するためのモードを決定する。モード切替回路４は、ＶＢＵＳ信号１０１と状態フラグ１０２の論理演算結果に基づいてモードを選択する。図３及び図４を参照して、モード切替回路４におけるモード切替処理の詳細を説明する。
【００３１】
図３は、モード切替回路４の構成の一例を示す図である。モード切替回路４はモード信号生成回路４０を備える。モード信号生成回路４０は、ＶＢＵＳ信号１０１、状態値１０２のそれぞれの論理値に応じた値のモード信号２００をシステムクロックＣＬＫに同期してＣＰＵ１の演算部（図示なし）に出力する。図示しない演算部は、モード信号２００に応じて実行するプログラムを選択する。
【００３２】
図４は、モード切替回路によって設定されるモードを示す表である。図４を参照して、状態値１０２が“１”の場合、すなわち、フラッシュメモリ２にユーザプログラムが書き込まれた状態である場合、ユーザモードを示すモード信号２００が出力される。状態値１０２が“０”の場合、すなわちフラッシュメモリ２にユーザプログラムが書き込まれていない場合、プログラミングモードを示すモード信号２００が出力される。ただし、ＶＢＵＳ信号１０１が“０”の場合、すなわち、ＵＳＢデバイスがマイコン１０に接続されていない場合、プログラミングモード（他）を示すモード信号２００が出力される。又、ＶＢＵＳ信号１０１が“１”の場合、すなわち、ＵＳＢデバイスがマイコン１０に接続されている場合、プログラミングモード（ＵＳＢ）を示すモード信号２００が出力される。
【００３３】
図２及び図３に示す一例では、モード切替回路４は、ＣＰＵ１内に組み込まれている。この場合、ＣＰＵ１は、ＶＢＵＳ信号１０１と状態フラグ１０２のそれぞれの論理値の組み合わせに応じたモードに設定される。ＣＰＵ１は、状態フラグ１０２やＶＢＵＳ信号１０２の変化に応じてモードを切り替えることが可能となる。このため、従来技術のように書き込み用プログラムを実行することなく、適切なプログラムを選択して起動することができる。
【００３４】
次に、図５を参照して、本発明によるフラッシュメモリへのプログラムの書き込み制御動作を説明する。図５は、本発明によるマイクロコンピュータの起動時における制御動作を示すフロー図である。
【００３５】
マイコン１０に電源が投入された後、パワーオンリセットが解除されると、ＣＰＵ１は、ステータスレジスタ５の状態フラグ１０２により書き込み状態を確認する（ステップＳ１０１、Ｓ１０２）。フラッシュメモリ２内にユーザプログラムが書き込み済みである場合、ＣＰＵ１はユーザモードで起動する（ステップＳ１０２書き込み済、Ｓ１０３）。この際、ＣＰＵ１は、フラッシュメモリ２内のユーザプログラムを起動及び実行する。
【００３６】
一方、ユーザプログラムが書き込まれていない場合、ＣＰＵ１は、ＶＢＵＳ信号１０２の信号レベルによりＵＳＢデバイスの接続確認を行う（ステップＳ１０２未書き込み、Ｓ１０４）。ＵＳＢデバイスが接続されている場合、プログラミングモード（ＵＳＢ）で起動する。ここでは、ＣＰＵ１は、ＵＳＢを利用して書き込みを行うための書き込み用ファームウェア３を起動及び実行する（ステップＳ１０４接続、Ｓ１０５）。例えば、ＣＰＵ１は書き込み用ファームウェア３を実行することで、ＵＳＢを利用して接続中のフラッシュライタ２０からユーザプログラムデータを読み出し、フラッシュメモリ２の所定の領域に書き込む。プログラムデータの読み出し及び書き込み処理は、従来技術と同様に行われるため、ここでは詳細な説明は省略する。
【００３７】
ステップＳ１０４において、ＵＳＢデバイスがマイコン１０に未接続である場合、ＣＰＵ１はＵＳＢと異なる通信規格を利用した書き込み用ファームウェア３を起動及び実行する（ステップＳ１０４未接続、Ｓ１０６）。この際、既存の製品と同様に、他の通信規格を利用したフラッシュライタとマイコン１０は、モードを特定する端子を介して接続されていることが好ましい。マイコン１０は、このモード特定端子を介して起動する書き込み用ファームウェアを特定し、プログラムデータの書き込み処理を実行する。
【００３８】
以上のように、本発明では、従来、書き込み制御プログラムでモード判定していた処理を、ハードウェアを利用したモード切替回路４によって実現している。このため、フラッシュメモリ２にユーザプログラムが格納されている場合、パワーオンリセット後、書き込み用ファームウェア３を起動することなくユーザモードに移行することが可能となる。従って、本発明によれば、マイコン１０に対する電源投入からユーザモードの起動までの時間を従来よりも短縮することができる。
【００３９】
又、本発明では、ＵＳＢを利用してデータの書き込みを行うか否かの判定を、ＶＳＵＢ信号１０１を用いて行っている。すなわち、ＵＳＢ規格で規定された端子を利用して、ＵＳＢを利用したデータの書き込みと他の通信規格を利用した書き込みを区別している。このため、本発明によれば、書き込み用ファームウェアを選択する際、ＵＳＢと他の通信規格を区別するための専用端子を必要としない。更に、本発明によればモード切替用の専用端子や外部スイッチを用意することなく、ユーザモードとプログラミングモードを切り替えることができる。
【００４０】
本発明によれば、マイコン１０にＵＳＢケーブルを介してフラッシュライタ２０を接続するだけで、ＣＰＵ１は自動的にモードを判定し、適切なプログラムを選択して実行することができる。このため、マイコン１０を搭載した製品を量産する際における書き込み効率が向上する。例えば、大量のフラッシュ内蔵マイコンを迅速にプログラムすることが望まれるケース（例えば、マイコンが搭載されたセット機器の量産ライン）において、プログラミング時間を大きく短縮することができる。
【００４１】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。ステータスレジスタ５への状態フラグ１０２の設定（変更）は、ＣＰＵ１内の演算部又は外部装置からのコマンドに応じて任意に行われてもよい。例えば、フラッシュメモリ２にユーザプログラムが書き込まれた状態であっても、状態フラグ１０２を“０”に設定することで、モード切替回路４は、プログラミングモードを選択し、ユーザプログラミングの書換え又は消去が可能になる。これにより、フラッシュメモリ２に格納済みのユーザプログラムの更新や補修が可能となる。
【００４２】
又、モード切替回路４やステータスレジスタ５は、ＣＰＵ１の外部に設けられても良い。この場合、モード信号２００は、バスを介してＣＰＵ１に入力される。
【符号の説明】
【００４３】
１：演算処理装置（ＣＰＵ）
２：不揮発性メモリ（フラッシュメモリ）
３：フラッシュ書き込み用ファームウェア
４：モード切替回路
５：ステータスレジスタ
６：ＵＳＢインタフェース
７：通信インタフェース
２０：フラッシュライタ
１０１：ＶＢＵＳ信号
１０２：状態フラグ（状態値）
【図１】
2011118636.tif 000003
【図２】
2011118636.tif 000004
【図３】
2011118636.tif 000005
【図４】
2011118636.tif 000006
【図５】
2011118636.tif 000007