(57)【特許請求の範囲】
【請求項１】
複数のブロックを含み複数のタスクプログラムおよびデータを記憶するフラッシュメモリと、ＩＯモジュールからの入出力要求およびタイマからの割り込み要求を処理する割り込み制御プログラムと，前記フラッシュメモリを消去中に動作が可能であるか否かを示す情報を各タスクごとに保持し前記フラッシュメモリの消去動作および前記各タスクの実行動作を制御するディスパッチャとを記憶するＲＡＭとを具備し、
ＣＰＵが任意のイベントに基づきタスクを実行する際に、前記フラッシュメモリの動作の状態をチェックし、前記タスクの実行条件に従って前記フラッシュメモリの動作を決定することを特徴とするファームウェアディスパッチ方式。
【請求項２】
請求項１記載のファームウェアディスパッチ方式において、前記ディスパッチャは、前記フラッシュメモリの消去および書き込みを行うフラッシュメモリ制御コードと、前記フラッシュメモリに配置されたタスクプログラムに関連する各タスクのコンテキストを保持するタスク管理表と、前記タスク管理表によって各タスクの状態を監視しイベントに応じて該当のタスクの実行を制御するタスク制御コードとを備えることを特徴とするファームウェアディスパッチ方式。
【請求項３】
複数のブロックを含み複数のタスクプログラムおよびデータを記憶するフラッシュメモリと、ＩＯモジュールからの入出力要求およびタイマからの割り込み要求を処理する割り込み制御プログラムと，前記フラッシュメモリを消去中に動作が可能であるか否かを示す情報を各タスクごとに保持し前記フラッシュメモリの消去動作および前記各タスクの実行動作を制御するディスパッチャとを記憶するＲＡＭとを具備したシステムの制御方法であって、
任意のイベントに基づきタスクを実行する際に、前記フラッシュメモリの動作の状態をチェックし、前記タスクの実行条件に従って前記フラッシュメモリの動作を決定することを特徴とするファームウェアディスパッチ方法。
【請求項４】
複数のブロックを含み複数のタスクプログラムおよびデータを記憶するフラッシュメモリと、ＩＯモジュールからの入出力要求およびタイマからの割り込み要求を処理する割り込み制御プログラムと，前記フラッシュメモリを消去中に動作が可能であるか否かを示す情報を各タスクごとに保持し前記フラッシュメモリの消去動作および前記各タスクの実行動作を制御するディスパッチャとを記憶するＲＡＭとを具備したシステムの制御方法であって、
任意のタスクが実行可能の状態にある場合、前記フラッシュメモリの消去中，消去一時停止中，および消去要求中のいずれでもないとき、前記フラッシュメモリに配置されたタスクプログラムに関連する各タスクのコンテキストを保持するタスク管理表を検索して動作可能なタスクがあればそれを実行し、
任意のタスクが実行可能の状態にある場合、前記フラッシュメモリの消去中，消去一時停止中，および消去要求中のいずれかであるとき、前記タスク管理表を検索して前記フラッシュメモリ消去中に動作必要なタスクのうち動作可能なタスクがあれば、前記フラッシュメモリの消去を一時停止してそのタスクを実行し、
任意のタスクが実行可能の状態にある場合、前記フラッシュメモリの消去中，消去一時停止中，および消去要求中のいずれかであるとき、前記タスク管理表を検索して前記フラッシュメモリ消去中に動作必要なタスクのうち動作可能なタスクがなければ、前記フラッシュメモリの消去を実行することを特徴とするファームウェアディスパッチ方法。
【請求項５】
複数のブロックを含み複数のタスクプログラムおよびデータを記憶するフラッシュメモリと、ＩＯモジュールからの入出力要求およびタイマからの割り込み要求を処理する割り込み制御プログラムと，前記フラッシュメモリを消去中に動作が可能であるか否かを示す情報を各タスクごとに保持し前記フラッシュメモリの消去動作および前記各タスクの実行動作を制御するディスパッチャとを記憶するＲＡＭとを具備したシステムの制御プログラムであって、
任意のイベントに基づきタスクを実行する際に、前記フラッシュメモリの動作の状態をチェックし、前記タスクの実行条件に従って前記フラッシュメモリの動作を決定することを特徴とするファームウェアディスパッチプログラム。
【請求項６】
複数のブロックを含み複数のタスクプログラムおよびデータを記憶するフラッシュメモリと、ＩＯモジュールからの入出力要求およびタイマからの割り込み要求を処理する割り込み制御プログラムと，前記フラッシュメモリを消去中に動作が可能であるか否かを示す情報を各タスクごとに保持し前記フラッシュメモリの消去動作および前記各タスクの実行動作を制御するディスパッチャとを記憶するＲＡＭとを具備したシステムの制御プログラムであって、
任意のタスクが実行可能の状態にある場合、前記フラッシュメモリの消去中，消去一時停止中，および消去要求中のいずれでもないとき、前記フラッシュメモリに配置されたタスクプログラムに関連する各タスクのコンテキストを保持するタスク管理表を検索して動作可能なタスクがあればそれを実行し、
任意のタスクが実行可能の状態にある場合、前記フラッシュメモリの消去中，消去一時停止中，および消去要求中のいずれかであるとき、前記タスク管理表を検索して前記フラッシュメモリ消去中に動作必要なタスクのうち動作可能なタスクがあれば、前記フラッシュメモリの消去を一時停止してそのタスクを実行し、
任意のタスクが実行可能の状態にある場合、前記フラッシュメモリの消去中，消去一時停止中，および消去要求中のいずれかであるとき、前記タスク管理表を検索して前記フラッシュメモリ消去中に動作必要なタスクのうち動作可能なタスクがなければ、前記フラッシュメモリの消去を実行することを特徴とするファームウェアディスパッチプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はファームウェアディスパッチ方式，方法，およびプログラムに関し、特にフラッシュメモリを備えたコンピュータシステムにおけるファームウェアディスパッチ方式，方法，およびプログラムに関する。
【０００２】
【従来の技術】
図３はフラッシュメモリの一例を示す構成図である。同図において、フラッシュメモリ１１は複数のブロック１１１（ブロック１）〜１１５（ブロック５）に分けられている。そして、フラッシュメモリにはこれらのブロックとは関係なく、プログラムコードおよびデータを配置することができる。すなわち、同図の例によれば、タスク１プログラムコード，タスク２プログラムコード，タスク３プログラムコード，データ１，およびデータ２がそれぞれ配置されている。
【０００３】
フラッシュメモリはブロック単位での消去が可能であるが、あるブロックの消去中には他のブロックに対しての読み込み，書き込みができない。他のブロックに対して読み込み，書き込みを行う場合は、ブロックの消去が終わるまで待つか，ブロックの消去を一時停止する必要がある。
【０００４】
たとえば、データ１の消去を行うためにブロック４の消去を行っている間は、ブロック１，ブロック２，ブロック３，およびブロック５の読み込みや書き込みを行うことができない。また、ブロック１，ブロック２，およびブロック３の読み込みが行えないので、これらに配置されているタスク１プログラムコード，タスク２プログラムコード，およびタスク３プログラムコードの各プログラムコードのフェッチができず、プログラムの実行ができない。これらの読み込み，書き込みを行うには、ブロック４の消去が終わるのを待つか，ブロック４の消去を一時中断する必要がある。
【０００５】
【発明が解決しようとする課題】
上記のように、フラッシュメモリ上にプログラムコードおよびデータが配置されている場合、あるひとつのデータが存在するブロックだけを消去するときであっても、消去中はプログラムコードのあるブロックやその他のデータがあるブロックの読み書きができない。したがって、このようなプログラムコードを記述する場合は、それぞれのタスクでフラッシュメモリの動作を意識する必要がある。
【０００６】
すなわち、第一の問題点は、それぞれのタスクでフラッシュメモリの消去を意識した記述が必要なことである。その理由は、フラッシュメモリ消去中にはフラッシュメモリへの読み書きができなくなるためである。
【０００７】
第二の問題点は、フラッシュメモリ消去中であっても動作必要なタスクが出てきた場合、そのタスクに迅速に実行を移せないことである。その理由は、フラッシュメモリの制御とタスクの制御が切り離されているためである。
【０００８】
本発明の目的は、上記のような欠点を改善するために、ファームウェアのディスパッチャにおいて、タスク制御とフラッシュメモリ制御とを関連させて動作させることを可能とするファームウェアディスパッチ方式，方法，およびプログラムを提供することにある。
【０００９】
【課題を解決するための手段】
本発明のファームウェアディスパッチ方式は、複数のブロックを含み複数のタスクプログラムおよびデータを記憶するフラッシュメモリと、ＩＯモジュールからの入出力要求およびタイマからの割り込み要求を処理する割り込み制御プログラムと，前記フラッシュメモリを消去中に動作が可能であるか否かを示す情報を各タスクごとに保持し前記フラッシュメモリの消去動作および前記各タスクの実行動作を制御するディスパッチャとを記憶するＲＡＭとを具備し、ＣＰＵが任意のイベントに基づきタスクを実行する際に、前記フラッシュメモリの動作の状態をチェックし、前記タスクの実行条件に従って前記フラッシュメモリの動作を決定することを特徴とする。
【００１０】
さらに、本発明のファームウェアディスパッチ方式において、前記ディスパッチャは、前記フラッシュメモリの消去および書き込みを行うフラッシュメモリ制御コードと、前記フラッシュメモリに配置されたタスクプログラムに関連する各タスクのコンテキストを保持するタスク管理表と、前記タスク管理表によって各タスクの状態を監視しイベントに応じて該当のタスクの実行を制御するタスク制御コードとを備えることを特徴とする。
【００１１】
また、本発明のファームウェアディスパッチ方法は、複数のブロックを含み複数のタスクプログラムおよびデータを記憶するフラッシュメモリと、ＩＯモジュールからの入出力要求およびタイマからの割り込み要求を処理する割り込み制御プログラムと，前記フラッシュメモリを消去中に動作が可能であるか否かを示す情報を各タスクごとに保持し前記フラッシュメモリの消去動作および前記各タスクの実行動作を制御するディスパッチャとを記憶するＲＡＭとを具備したシステムの制御方法であって、任意のイベントに基づきタスクを実行する際に、前記フラッシュメモリの動作の状態をチェックし、前記タスクの実行条件に従って前記フラッシュメモリの動作を決定することを特徴とする。
【００１２】
さらに、本発明のファームウェアディスパッチ方法は、複数のブロックを含み複数のタスクプログラムおよびデータを記憶するフラッシュメモリと、ＩＯモジュールからの入出力要求およびタイマからの割り込み要求を処理する割り込み制御プログラムと，前記フラッシュメモリを消去中に動作が可能であるか否かを示す情報を各タスクごとに保持し前記フラッシュメモリの消去動作および前記各タスクの実行動作を制御するディスパッチャとを記憶するＲＡＭとを具備したシステムの制御方法であって、任意のタスクが実行可能の状態にある場合、前記フラッシュメモリの消去中，消去一時停止中，および消去要求中のいずれでもないとき、前記フラッシュメモリに配置されたタスクプログラムに関連する各タスクのコンテキストを保持するタスク管理表を検索して動作可能なタスクがあればそれを実行し、任意のタスクが実行可能の状態にある場合、前記フラッシュメモリの消去中，消去一時停止中，および消去要求中のいずれかであるとき、前記タスク管理表を検索して前記フラッシュメモリ消去中に動作必要なタスクのうち動作可能なタスクがあれば、前記フラッシュメモリの消去を一時停止してそのタスクを実行し、任意のタスクが実行可能の状態にある場合、前記フラッシュメモリの消去中，消去一時停止中，および消去要求中のいずれかであるとき、前記タスク管理表を検索して前記フラッシュメモリ消去中に動作必要なタスクのうち動作可能なタスクがなければ、前記フラッシュメモリの消去を実行することを特徴とする。
【００１３】
また、本発明のファームウェアディスパッチプログラムは、複数のブロックを含み複数のタスクプログラムおよびデータを記憶するフラッシュメモリと、ＩＯモジュールからの入出力要求およびタイマからの割り込み要求を処理する割り込み制御プログラムと，前記フラッシュメモリを消去中に動作が可能であるか否かを示す情報を各タスクごとに保持し前記フラッシュメモリの消去動作および前記各タスクの実行動作を制御するディスパッチャとを記憶するＲＡＭとを具備したシステムの制御プログラムであって、任意のイベントに基づきタスクを実行する際に、前記フラッシュメモリの動作の状態をチェックし、前記タスクの実行条件に従って前記フラッシュメモリの動作を決定することを特徴とする。
【００１４】
さらに、本発明のファームウェアディスパッチプログラムは、複数のブロックを含み複数のタスクプログラムおよびデータを記憶するフラッシュメモリと、ＩＯモジュールからの入出力要求およびタイマからの割り込み要求を処理する割り込み制御プログラムと，前記フラッシュメモリを消去中に動作が可能であるか否かを示す情報を各タスクごとに保持し前記フラッシュメモリの消去動作および前記各タスクの実行動作を制御するディスパッチャとを記憶するＲＡＭとを具備したシステムの制御プログラムであって、任意のタスクが実行可能の状態にある場合、前記フラッシュメモリの消去中，消去一時停止中，および消去要求中のいずれでもないとき、前記フラッシュメモリに配置されたタスクプログラムに関連する各タスクのコンテキストを保持するタスク管理表を検索して動作可能なタスクがあればそれを実行し、任意のタスクが実行可能の状態にある場合、前記フラッシュメモリの消去中，消去一時停止中，および消去要求中のいずれかであるとき、前記タスク管理表を検索して前記フラッシュメモリ消去中に動作必要なタスクのうち動作可能なタスクがあれば、前記フラッシュメモリの消去を一時停止してそのタスクを実行し、任意のタスクが実行可能の状態にある場合、前記フラッシュメモリの消去中，消去一時停止中，および消去要求中のいずれかであるとき、前記タスク管理表を検索して前記フラッシュメモリ消去中に動作必要なタスクのうち動作可能なタスクがなければ、前記フラッシュメモリの消去を実行することを特徴とする。
【００１５】
【発明の実施の形態】
以下、本発明について図面を参照しながら説明する。
【００１６】
図１は本発明の実施の一形態を示す構成図である。同図において、本発明によるファームウェアディスパッチ方式は、複数のブロック２１１および２１２を含み複数のタスクプログラムコード２１４およびデータ２１３を記憶するフラッシュメモリ２１と、ＩＯモジュール２４からの入出力要求およびタイマ２５からの割り込み要求を処理する割り込み制御コード２２２と，前記フラッシュメモリを消去中に動作が可能であるか否かを示す情報を各タスクごとに保持し前記フラッシュメモリの消去動作および前記各タスクの実行動作を制御するディスパッチャ２２１とを記憶するＲＡＭ２２とを具備し、ＣＰＵ２３が任意のイベントに基づきタスクを実行する際に、前記フラッシュメモリの動作の状態をチェックし、前記タスクの実行条件に従って前記フラッシュメモリの動作を決定する。
【００１７】
なお、上記のディスパッチャ２２１は、前記フラッシュメモリの消去および書き込みを行うフラッシュメモリ制御コード２２１１と、前記フラッシュメモリに配置されたタスクプログラムに関連する各タスクのコンテキストを保持するタスク管理表２２１３と、前記タスク管理表によって各タスクの状態を監視しイベントに応じて該当のタスクの実行を制御するタスク制御コード２２１２とを備えている。
【００１８】
フラッシュメモリ２１はブロック２１１およびブロック２１２を含む。ブロック２１１にはデータ２１３が配置され、ブロック２１２にはタスクプログラムコード２１４が配置される。タスクプログラムコード２１４はサービスを提供するための複数のタスクのプログラムを記憶する。データ２１３はタスクプログラムコード２１４が実行される時に使用するパラメータなどのデータを記憶する。
【００１９】
ＲＡＭ２２はディスパッチャ２２１と割り込み制御コード２２２とを含む。
【００２０】
ディスパッチャ２２１はフラッシュメモリ制御コード２２１１とタスク制御コード２２１２とタスク管理表２２１３とを含む。フラッシュメモリ制御コード２２１１はフラッシュメモリの消去や書き込みなどの制御を行うプログラムコードを記憶する。タスク制御コード２２１２はタスク管理表２２１３で管理される各タスクの状態を監視し、起こったイベントなどに応じてタスクの実行を制御するプログラムコードを記憶する。
【００２１】
タスク管理表２２１３はフラッシュメモリ２１上に配置されるタスクプログラムコード２１４に関連する各タスクのコンテキストを管理する。このコンテキストには各タスクがフラッシュメモリ消去中においても、実行が必要なタスクであるか否かの情報を含んでいる。
【００２２】
割り込み制御コード２２２は入出力要求やタイマ割り込みなどのイベントが起こった際に呼び出されて、そのイベントを処理するプログラムコードを記憶する。
【００２３】
ＣＰＵ２３はタスクプログラムコード２１４とフラッシュメモリ制御コード２２１１とタスク制御コード２２１２と割り込み制御コード２２２のプログラムコードをフェッチして実行を行う。また、ＩＯモジュール２４から入出力の要求を受けた場合やタイマ２５からのタイマ割り込みを受けた場合、対応する割り込み制御コード２２２を読み込んで実行する。
【００２４】
ＩＯモジュール２４は外部からの入力要求や出力要求を受けてＣＰＵ２３に通知し、外部とのデータのやり取りを行う。
【００２５】
タイマ２５は定期的に割り込みを発生し、ＣＰＵ２３に通知する。
【００２６】
ＩＯモジュール２４からの入出力要求やタイマ２５からの定期割り込みが発生すると、それらはＣＰＵ２３へ通知される。ＣＰＵ２３はこれらを受け取ると、それまでの処理を中断し、割り込み制御コード２２２を読み込んで実行し、それぞれの要求の処理を行う。
【００２７】
割り込み制御コード２２２で処理しきれないイベントは、各タスクへ処理を要求するが、この要求はタスク管理表２２１３のなかで管理される各タスクのコンテキスト中のタスクの実行可能状態に反映することで行われる。
【００２８】
割り込み制御コード２２２の実行が終わり、ＣＰＵ２３においてほかのプログラムの実行が可能になると、タスク制御コード２２１２はＣＰＵ２３に読み込まれ、タスクの制御を行う。タスクの制御コード２２１２は各タスクのコンテキストが記述されているタスク管理表２２１３を参照しながら、どのようにタスクの実行制御を行うか決定する。
【００２９】
タスク管理表２２１３で管理される各タスクのコンテキストには、プログラムカウンタの値，スタックポインタの値，タスクの実行可能状態などのほかに、そのタスクがフラッシュメモリ消去中であっても動作すべきか否かを表すフラグを備える。タスク制御コード２２１２は、タスクの状態，フラッシュメモリ消去中であっても動作すべきか否かを表すフラグ，フラッシュメモリ２１の状態は消去中であるか否かなどを考慮して、どのタスクに実行権を渡すか決定する。
【００３０】
フラッシュメモリ２１が消去中でないときに、タスク制御コード２２１２があるタスクに実行権を渡すことを決定すると、タスクプログラムコード２１４から対象となるタスクのプログラムをＣＰＵ２３に読み込ませ、実行を開始する。
【００３１】
フラッシュメモリ２１が消去中のときに、タスク制御コード２２１２があるタスクに制御が渡すことを決定すると、フラッシュメモリ制御コード２２１１をＣＰＵ２３に読み込ませ、フラッシュメモリ２１の消去の一時停止を行う。その後、タスクプログラムコード２１４から対象となるタスクのプログラムをＣＰＵ２３に読み込み、実行を開始する。
【００３２】
タスクの処理が終了し、再びタスク制御コード２２１２がＣＰＵ２３に読み込まれて実行されたとき、フラッシュメモリ２１の消去が一時停止している場合、タスク制御コード２２１２は、フラッシュメモリ２１の消去中であっても実行すべきタスクがあるか否かをタスク管理表２２１３を参照して確認する。この結果、実行すべきタスクがないならば、フラッシュメモリ制御コード２２１１をＣＰＵ２３へ読み込み、フラッシュメモリ２１の消去を再開させる。
【００３３】
タスクプログラムコード２１４はＣＰＵ２３に読み込まれて、タスクプログラムが実行されるが、このとき必要に応じてデータ２１３の読み込み，書き込み，消去を行う。タスクプログラムがデータ２１３を消去することを決定した場合、データ２１３を含んでいるブロック２１１の消去要求をタスク制御コード２２１２へ通知する。
【００３４】
その後、タスク制御コード２２１２がＣＰＵ２３に読み込まれて実行されたとき、ブロックの消去要求の有無を確認する。このとき、ブロック２１１の消去要求を発見すると、フラッシュメモリ制御コード２２１１をＣＰＵ２３に読み込んで実行する。フラッシュメモリ制御コード２２１１は、指示に従い、フラッシュメモリ２１のブロック２１１の消去を開始する。
【００３５】
図２は本発明の動作を示す流れ図である。
【００３６】
同図において、上記のファームウェアディスパッチ方式は、タスク制御コード２２１２がＣＰＵ２３に読み込まれて実行を開始すると、タスク管理表２２１３で管理されるタスクの状態変化を待つ（ステップＡ１）。
【００３７】
このとき、ＩＯモジュール２４やタイマ２５から割り込み要因が発生すると、それらはＣＰＵ２３に通知される。ＣＰＵ２３はこれらの割り込み要因を処置するため、割り込み制御コード２２２をＣＰＵ２３に読み込んで割り込み要因の処置を行う。割り込み制御コード２２２だけでは処理し切れない場合、タスク管理表２２１３のタスクの状態を変更させ、タスクの処理を促す。
【００３８】
割り込み制御コード２２２の動作が終了すると、再びタスク制御コード２２１２がＣＰＵ２３に読み込まれて動作を行う。タスクの状態変化を検出したタスク制御コード２２１２は、現在動作中を示すタスクがないかタスク管理表２２１３を調べ、動作中のタスクがあれば実行可能状態に変更する（ステップＡ２）。
【００３９】
次に、フラッシュメモリ２１が消去中であるか，消去一時停止中であるか，消去要求があるかを調べる（ステップＡ３）。
【００４０】
もしこれらの要求のいずれも満たされない場合、タスク管理表２２１３を検索し（ステップＡ４）、動作可能なタスクがあるか否か調べて（ステップＡ５）、動作可能なタスクがあればそれにディスパッチして処理をさせる（ステップＡ６）。
【００４１】
ステップＡ３において、いずれかの条件を満たした場合、タスク管理表２２１３を検索し（ステップＡ７）、フラッシュメモリ消去中にも動作することが必要で、かつ現在動作可能状態にあるタスクが存在するか調べる（ステップＡ８）。
【００４２】
条件を満たすタスクが存在すれば、さらにフラッシュメモリ２１が消去中であるか調べ（ステップＡ９）、消去中の場合はフラッシュメモリ制御コード２２１１をＣＰＵ２３に読み込ませて実行し、消去を一時停止させてから（ステップＡ１０）、そうでない場合はそのままそのタスクにディスパッチして実行させる（ステップＡ１１）。
【００４３】
ステップＡ８において、条件を満たすタスクがなかった場合、フラッシュメモリ２１が現在消去中であるか否か調べて（ステップＡ１２）、消去中であればそのままの状態にして消去をの処理を続行させる。
【００４４】
消去中でなければ、フラッシュメモリ２１が消去一時停止中であるか調べ（ステップＡ１３）、一時停止中であるならばフラッシュメモリ制御コード２２１１をＣＰＵ２３に読み込ませて実行し、フラッシュメモリ２１の消去を再開させる（ステップＡ１４）。
【００４５】
一方、消去一時停止中でないならば、フラッシュメモリ２１のブロックの消去要求があるかどうか調べて（ステップＡ１５）、あるならばフラッシュメモリ制御コード２２１１をＣＰＵ２３に読み込ませて実行し、フラッシュメモリ２１の消去を開始させる（ステップＡ１６）。
【００４６】
上記の処理を繰り返し行うことにより、タスクの制御とフラッシュメモリの制御を行う。
【００４７】
上記のように、タスク管理表２２１３はタスクのコンテキストを管理するが、これにはタスクがフラッシュメモリ消去中に動作必要か否かを示す情報を含む。タスク制御コード２２１２がＣＰＵ２３に読み込まれて動作し、どのタスクにディスパッチするか決定する際に、タスク管理表２２１３の情報とフラッシュメモリ２１の消去動作の状態とを考慮する。
【００４８】
すなわち、フラッシュメモリ２１が消去中に動作する必要のないタスクについては、フラッシュメモリ消去中にはディスパッチしないようにする。フラッシュメモリ２１が消去中であっても動作する必要のあるタスクの場合には、フラッシュメモリ制御コード２２１１をＣＰＵ２３に読み込み、フラッシュメモリ制御プログラムを実行する。
【００４９】
フラッシュメモリ制御プログラムはフラッシュメモリ２１の消去動作を一時停止させ、その後、タスク制御コード２２１２がＣＰＵ２３に読み込まれて実行され、動作する必要のあるタスクにディスパッチする。フラッシュメモリ消去中に動作する必要のあるタスクが待ち状態になれば、ＣＰＵ２３に読み込まれて実行されるフラッシュメモリ制御コード２２１１が、一時消去停止中のフラッシュメモリ２１の消去動作を再開させる。
【００５０】
上記の通り、ディスパッチャにおいてタスク制御とフラッシュメモリ制御とを関連させて動作させることができる。
【００５１】
【発明の効果】
以上、詳細に説明したように、本発明によれば、タスク制御およびフラッシュメモリ制御を相互に関連させてディスパッチング処理を実行しているので、次の効果が得られる。
【００５２】
第一の効果は、フラッシュメモリの消去動作を意識せずに動作可能なタスクを作成できることである。
【００５３】
第二の効果は、フラッシュメモリの消去中にあるタスクが動作する必要が出てきても、迅速にそのタスクにディスパッチできることである。
【図面の簡単な説明】
【図１】本発明の実施の一形態を示す構成図。
【図２】本発明の動作を示す流れ図。
【図３】フラッシュメモリの構成を示す説明図。
【符号の説明】
２１    フラッシュメモリ
２２    ＲＡＭ
２３    ＣＰＵ
２４    ＩＯモジュール
２５    タイマ
２１１，２１２    ブロック
２１３    データ
２１４    タスクプログラムコード
２２１    ディスパッチャ
２２２    割り込み制御コード
２２１１    フラッシュメモリ制御コード
２２１２    タスク制御コード
２２１３    タスク管理表
【図１】
0003797274.tif 000002
【図２】
0003797274.tif 000003
【図３】
0003797274.tif 000004