(57)【特許請求の範囲】
【請求項１】
バックアップ電源およびメイン電源からの給電により、複数のタスクを起動するとともに、前記タスクに対してリアルタイムにタスクスケジュールを行うためのリアルタイムＯＳと、
前記バックアップ電源が投入されたときに、前記リアルタイムＯＳ上にタスクおよびメッセージキューを生成するとともに、前記タスクの優先度およびメッセージキューを割り付ける初期化手段と、
前記リアルタイムＯＳおよび前記タスクの親タスクとなるルートタスクと、
前記メイン電源が遮断されたときに、前記バックアップ電源からの給電により前記ルートタスクの内容を記録するとともに、前記タスクの内容を消去するメモリ手段とを備え、
前記リアルタイムＯＳは、前記メイン電源が再投入されたときに、前記メモリ手段に記憶されているルートタスクの内容にしたがって前記タスクを起動させることを特徴とする電子機器。
【請求項２】
前記リアルタイムＯＳは、前記バックアップ電源の遮断後の最初の投入に応答して初期化されることを特徴とする請求項１に記載の電子機器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、リアルタイムＯＳ（リアルタイムオペレーティングシステム）を搭載した電子機器に関し、特にメモリに固有の性能によらずリアルタイムＯＳを高速に起動可能な電子機器に関するものである。
【０００２】
【従来の技術】
従来より、複数のタスクを起動するとともにリアルタイムにタスクスケジュールを行うためのリアルタイムＯＳを有する電子機器はよく知られており、この種の電子機器においては、コンピュータ本体やリアルタイムＯＳに変更を加えることなく、コンピュータを高速に起動することが要求されている。
【０００３】
このため、たとえば特開平９−１４６７７４号公報などに開示された電子機器の場合、主記憶装置に記憶されたプログラムを実行するＣＰＵ（コンピュータシステム）は、主記憶装置の一部のプログラム制御データを不揮発性半導体メモリに格納している。
【０００４】
上記公報に記載されたＣＰＵは、プログラム実行時においては、不揮発性半導体メモリに格納された制御データに基づいてプログラム制御を行い、また、データ書換時においては、データ書換制御手段により、不揮発性半導体メモリ領域以外のメモリ領域に対してデータを書き換えるようになっている。
【０００５】
【発明が解決しようとする課題】
従来の電子機器は以上のように、リアルタイムＯＳの起動毎にルートタスクを起動してタスクおよびキューなど割り付けていたので、起動時間が不揮発性半導体メモリに固有のメモリアクセス時間に依存してしまい、メモリアクセス時間の性能以上の高速起動性を実現することができないという問題点があった。
【０００６】
この発明は上記のような問題点を解決するためになされたもので、メモリ固有の性能によらずリアルタイムＯＳを高速に起動することのできる電子機器を得ることを目的とする。
【０００７】
【課題を解決するための手段】
この発明の請求項１に係る電子機器は、バックアップ電源およびメイン電源からの給電により、複数のタスクを起動するとともに、タスクに対してリアルタイムにタスクスケジュールを行うためのリアルタイムＯＳと、バックアップ電源が投入されたときに、リアルタイムＯＳ上にタスクおよびメッセージキューを生成するとともに、タスクの優先度およびメッセージキューを割り付ける初期化手段と、リアルタイムＯＳおよびタスクの親タスクとなるルートタスクと、メイン電源が遮断されたときに、バックアップ電源からの給電によりルートタスクの内容を記録するとともに、タスクの内容を消去するメモリ手段とを備え、リアルタイムＯＳは、メイン電源が再投入されたときに、メモリ手段に記憶されているルートタスクの内容にしたがってタスクを起動させるものである。
【０００８】
また、この発明の請求項２に係る電子機器は、請求項１において、リアルタイムＯＳは、バックアップ電源の遮断後の最初の投入に応答して初期化されるものである。
【００１１】
【発明の実施の形態】
実施の形態１．
以下、この発明の実施の形態１を図について説明する。
図１はこの発明の実施の形態１を概略的に示すブロック構成図であり、バックアップ電源およびメイン電源からなる二系統の電源を有し、リアルタイム制御を行う電子機器システムの全体を示している。
【００１２】
図１において、１１はリアルタイムＯＳの機能の核すなわちカーネルであり、イベントＥと関連する複数のタスク（後述する）およびメッセージキューＭＱが生成されている。
【００１３】
カーネル１１と関連するＣＰＵは、図１においては省略されている。
１２は各種のタスク管理を行うスケジューラであり、リアルタイムＯＳによってカーネル１１内に生成されている。
【００１４】
１３は電子機器システムの全てのタスクの親タスクとなるルートタスクであり、タスクの生成、タスクの優先度の割付およびメッセージキューＭＱの生成を行う。
【００１５】
１４および１５はスケジューラ１２により管理される複数のタスクである。ここでは、代表的に２つのタスク１４および１５を示しているが、必要に応じた任意数のタスクが生成され得る。
１６はリアルタイムＯＳのカーネル１１が起動されるときに実行される初期化プロセスである。
【００１６】
１７は時間管理を行うセクションすなわちタイムアウトキューであり、初期化プロセス１６による初期化後にカーネル１１内に生成され、各実行時間に関するタイムアウト時間をキューとして保存している。
【００１７】
１８はタイムアウト処理部であり、カーネル１１でハンドリングされる全てのタスクについて時間管理を行うとともに、タイムアウトキュー１７のタイムアウト時間を参照して、タイムアウトであればその旨をスケジューラ１２に情報伝達する。
【００１８】
１９はカーネル１１に接続されたマウスなどの割り込みハンドラであり、割り込みのイベントを生成する。
１ａはカーネル１１と外部とのインターフェースとなる入力／出力ドライバである。
【００１９】
１ｂはカーネル１１に対する入力装置となるセンサ、１Ｃはカーネル１１に対する出力装置となるアクチュエータである。
センサ１ｂおよびアクチュエータ１ｃは、入力／出力ドライバ１ａを介して、カーネル１１に接続されてリアルタイム制御を行う。
【００２０】
図２は図１内の入力／出力ドライバ１ａの周辺を具体的に示すブロック構成図であり、図２において、１ａ〜１ｃおよび１１〜１９は、前述（図１参照）と同様のものである。
【００２１】
２１はバックアップ電源、２２はメイン電源、２３は不揮発性メモリたとえばフラッシュメモリ、２４はカーネル１１と関連して電子機器システムを制御するＣＰＵである。
【００２２】
バックアップ電源２１およびメイン電源２２は、ＣＰＵ２４を介してカーネル１１に給電を行う。
フラッシュメモリ２３は、ＣＰＵ２４の外部メモリとして機能し、たとえば、タスク１４および１５などの初期展開時の内容が格納される。
【００２３】
ＣＰＵ２４は、バックアップ電源２１およびメイン電源２２と関連する複数のメモリエリア２５および２６と、センサ１ｂおよびアクチュエータ１ｃと関連する入力／出力インターフェース２７とを備えている。
入力／出カインターフェース２７は、入力／出カドライバ１ａに接続されている。
【００２４】
ＣＰＵ２４内のメモリエリアのうち、バックアップするメモリエリア２５は、メイン電源２２が遮断された状態でも、バックアップ電源２１によって記憶内容が保持されている。
【００２５】
一方、バックアップしないメモリエリア２６は、メイン電源２２が遮断された時点で記憶内容が消去される。
【００２６】
メモリエリア２５および２６は、メイン電源２２が遮断されたときに、バックアップ電源２１からの給電によりルートタスク１３の内容を記録するとともに、タスク１４および１５の内容を消去するメモリ手段を構成している。
【００２７】
カーネル１１内の初期化手段を構成する初期化プロセス１６は、バックアップ電源２１が投入された初期化時に、ルートタスク１３と関連して、カーネル１１上にタスク１４、１５およびメッセージキューＭＱを生成するとともに、タスク１４および１５の優先度を割り付け、タスク１４および１５を起動する。
【００２８】
また、カーネル１１は、メイン電源２２が遮断されたときには、リアルタイムＯＳを起動させたまま、カーネル１１上に構築されたルートタスク１３を残し、他のタスク１４および１５を消去する。
【００２９】
さらに、カーネル１１は、メイン電源２２が再投入されたときに、メモリエリア２５に記憶されているルートタスク１３の内容にしたがって、タスク１４および１５を起動させる。これにより、リアルタイムＯＳの起動を回避する。
【００３０】
こうして、カーネル１１は、バックアップ電源２１およびメイン電源２２からの給電により、複数のタスク１４および１５を起動するとともに、リアルタイムにタスクスケジュールを行う。
次に、図１および図２に示したこの発明の実施の形態１の動作について説明する。
【００３１】
まず、バックアップ電源２１が投入されると、リアルタイムＯＳのカーネル１１は、ＣＰＵ２４を初期化し、外部メモリとなるフラッシュメモリ２３の内容を、ＣＰＵ２４内の各メモリエリア２５および２６に展開する。
【００３２】
このとき、全てのタスク１４および１５の親タスクとなるルートタスク１３については、バックアップ電源２１によって記憶内容が保持されるメモリエリア２５に展開する。
【００３３】
続いて、ルートタスク１３を起動して、他の全てのタスク１４、１５、メッセージキューＭＱおよびタイムアウト処理部１８に関するタイムアウトキュー１７の生成を行う。
【００３４】
次に、メイン電源２２が投入されると、カーネル１１は、各タスク１４および１５を起動する。このとき、各タスク１４および１５は、リアルタイムＯＳのスケジューラ１２によって管理される。
【００３５】
電子機器システムの入力装置となるセンサ１ｂからの入力信号は、入力／出力ドライバ１ａを介してスケジューラ１２に伝達され、ＣＰＵ２４の入力／出カインターフェース２７と、リアルタイムＯＳとの機能をサポートする。
【００３６】
各タスク１４および１５は、入力情報に基づいて演算を行い、この演算結果を入力／出力ドライバ１ａおよび入力／出カインターフェース２７を介して出力し、アクチュエータ１ｃを駆動する。
なお、割り込み情報は、割り込みハンドラ１９を介して入力され、リアルタイムＯＳのスケジューラ１２に管理される。
【００３７】
次に、図３〜図６のフローチャートを参照しながら、タスク１４および１５のスケジューリングを行うリアルタイムＯＳによるリアルタイム性に関する制御動作について、さらに具体的に説明する。
【００３８】
図３はカーネル１１による全体の処理ルーチン、図４は割込処理ルーチン、図５および図６は各タスク１４および１５によるメッセージの受信処理ルーチンを示している。
【００３９】
この場合、スケジューラ１２での処理、各種のセンサ１ｂからの入力信号またはアクチュエータ１ｃなどの出力に対する割込処理、各割込処理に対するタスクは、別々に処理される。
【００４０】
まず、図３内のステップＳ１において、電子機器システムのバックアップ電源２１が投入されているか否かを判定し、投入されていれば次のステップＳ２に進む。
【００４１】
ステップＳ２においては、電子機器システムおよびリアルタイムＯＳ（カーネル１１）の初期化を行い、前述のように、フラッシュメモリ２３の内容をＣＰＵ２４内のメモリエリア２５および２６に展開する。
【００４２】
次に、ステップＳ３において、ルートタスク１３を起動する処理を行い、前述のようにタイムアウトキュー１７を生成し、続いて、ステップＳ４において、メイン電源２２が投入されているか否かを判定する。
【００４３】
ステップＳ４において、メイン電源２２が投入されていない（すなわち、ＮＯ）と判定されれば、ステップＳ５に進み、生成されたルートタスク１３以外の全てのタスク１４および１５を消去する。
【００４４】
一方、ステップＳ４において、メイン電源２２が投入されている（すなわち、ＹＥＳ）と判定されれば、ステップＳ６に進み、メイン電源２２が前回オフされていた（投入されていない）か否かを判定する。
【００４５】
ステップＳ６において、メイン電源２２が前回オフ（すなわち、ＹＥＳ）と判定されれば、ステップＳ７に進み、ステップＳ３と同様のルートタスク処理を実行した後、ステップＳ８に進む。
【００４６】
なお、ステップＳ７は、メイン電源２２がオフで消去されたタスク１４および１５を、次回のメイン電源２２のオンで生成するために行われる処理である。
【００４７】
一方、ステップＳ６において、メイン電源２２が前回投入されている（すなわち、ＮＯ）と判定されれば、直ちにステップＳ８に進み、割込があるか否かを判定する。
【００４８】
ステップＳ８において、割込があり（すなわち、ＹＥＳ）と判定されれば、ステップＳ９に進み、割込処理（具体例については後述する）を実行した後、ステップＳ１０に進む。
【００４９】
一方、ステップＳ８において、割込がない（すなわち、ＮＯ）と判定されれば、直ちにステップＳ１０に進む。
ステップＳ１０は、全てのタスク１４および１５が終了している状態であり、タスク１４および１５がいつでも実行状態に遷移できるアイドル状態にあることを意味している。
【００５０】
次に、図４に示した割込処理について具体的に説明する。
ここでは、時間Ｔ１毎に割り込みが発生するＴ１タスク１４と、時間Ｔ２毎に割込が発生するＴ２タスク１５との２つのタスクがあるものとする。ただし、Ｔ１＜Ｔ２とする。
【００５１】
まず、図４内のステップＳ１１において、Ｔ１タスク１４にメッセージを送る処理を実行し、続いて、ステップＳ１２において、時間Ｔ２が経過しているか否かを判定する。
【００５２】
ステップＳ１２において、時間Ｔ２が経過している（すなわち、ＹＥＳ）と判定されればステップＳ１３に進みＴ２タスク１５にメッセージを送る処理を実行し、また、時間Ｔ２が経過していない（すなわち、ＮＯ）と判定されれば、図４の割込処理を終了する。
【００５３】
なお、ステップＳ１１およびＳ１３においてメッセージを送る手段としては、メッセージキューＭＱ、イベントＥ、または、周知のセマフォなどを適用することができる。
【００５４】
次に、図５および図６を参照しながら、メッセージを受信するＴ１タスクおよびＴ２タスクについて説明する。
まず、Ｔ１タスク１４は、図５内のステップＳ１４において、メッセージの受信待ち状態を継続しており、もし前述の割込処理（ステップＳ１１）で送信されたメッセージが受信されれば、続くステップＳ１５において、時間Ｔ１毎に処理を実行する。
【００５５】
ステップＳ１５の処理が終了すると、ステップＳ１６に進み、次のメッセージまたはイベントＥの待ち状態、すなわち、ブロック（閉鎖）状態に遷移する。
【００５６】
同様に、Ｔ２タスク１５は、図６内のステップＳ１７において、メッセージの受信待ち状態を継続しており、もし前述の割込処理（ステップＳ１３）で送信されたメッセージが受信されれば、続くステップＳ１８において、時間Ｔ２毎に処理を実行する。
【００５７】
ステップＳ１８の処理が終了すると、ステップＳ１９に進み、次のメッセージまたはイベントＥの待ち状態、すなわち、ブロック（閉鎖）状態に遷移する。
【００５８】
このように、図３〜図６に示した一連の動作を繰り返すことにより、全タスクを生成するルートタスク１３は、メイン電源２２のオンオフによらず、バックアップ電源２１が投入されたときのみに起動することになる。
【００５９】
また、メイン電源２２が遮断された場合には、ルートタスク１３を残して、他の全タスク１４および１５が消去される。
したがって、メイン電源２２の遮断時においても、バックアップ電源２１の給電により、常にルートタスク１３が起動されて常駐している状態となり、次回のリアルタイムＯＳのカーネル１１の起動を回避することができる。
【００６０】
実施の形態２．
なお、上記実施の形態１では、バックアップ電源２１のオン（投入）状態に応答して、リアルタイムＯＳのカーネル１１の初期化処理（ステップＳ２）を実行したが、バックアップ電源２１の遮断後の最初の投入動作に応答して初期化処理を実行してもよい。
【００６１】
以下、バックアップ電源２１の遮断後の最初の投入時にカーネル１１を初期化するようにしたこの発明の実施の形態２を図について説明する。
なお、この発明の実施の形態２の構成は、前述（図２参照）と同様である。
【００６２】
図７はこの発明の実施の形態２のカーネル１１による処理動作を示すフローチャートであり、図７において、Ｓ１〜Ｓ１０は、前述（図３参照）と同様の処理ステップである。
【００６３】
また、割込処理ルーチン、ならびに、各タスク１４および１５によるメッセージの受信処理ルーチンは、図４〜図６に示した通りである。
【００６４】
この場合、カーネル１１は、バックアップ電源２１が遮断されると、ＣＰＵ２４内のメモリエリア２５および２６を含む全システムをダウンさせ、バックアップ電源２１が遮断状態から投入されると、前述と同様の初期化処理動作を実行する。
【００６５】
まず、ステップＳ１において、システムのバックアップ電源２１が投入されているか否かを判定し、投入されている（すなわち、ＹＥＳ）と判定されれば、ステップＳ２１に進み、バックアップ電源２１が前回オフされていたか否かを判定する。
【００６６】
一方、ステップＳ１において、バックアップ電源２１が投入されていない（すなわち、ＮＯ）と判定されれば、ステップＳ２２に進み、システム全体の電源を落とすことにより、システムダウンの処理を実行した後、ステップＳ１に戻る。
【００６７】
ステップＳ１において、バックアップ電源２１がオン（すなわち、ＹＥＳ）と判定され、続くステップＳ２１において、バックアップ電源２１が前回オフ状態（すなわち、ＹＥＳ）と判定されれば、バックアップ電源２１の遮断後の最初の投入であるから、初期化処理ステップＳ２に進む。
以下、前述と同様にステップＳ２〜Ｓ１０を実行する。
【００６８】
一方、ステップＳ２１において、バックアップ電源２１が前回投入されている（すなわち、ＮＯ）と判定されれば、遮断後の最初のオン状態ではないので、直ちにステップＳ４に進み、メイン電源２２がオン状態か否かを判定する。
【００６９】
図７に示した一連の動作を繰り返すことにより、バックアップ電源２１で常にルートタスク１３を起動してリアルタイムＯＳの起動を回避するとともに、バックアップ電源２１の遮断後の最初の投入時にシステム全体を初期化することができる。
【００７０】
したがって、無駄な初期化処理を回避して高速化を実現することができる。
また、バックアップ電源２１を遮断することにより、電子機器システム全体をダウンさせて、リアルタイムＯＳを初期化することができる。
【００７１】
なお、上記実施の形態１では、バックアップ電源２１を用いて電子機器システムの初期化処理の高速化を実現したが、優先度の高いタスクを先に起動することにより高速化を実現してもよい。
【００７２】
以下、優先度の高いタスクを先に起動するようにしたこの発明の参考例を図について説明する。
図８はこの発明に関連した参考例を示すブロック構成図であり、図８において、前述（図２参照）と同様の構成については、同一符号を付して詳述を省略する。
【００７３】
また、１１Ａおよび２４Ａは、それぞれ、カーネル１１およびＣＰＵ２４に対応している。
この場合、カーネル１１Ａは、リアルタイムＯＳの初期化終了後に、まず、電子機器システムで優先度の高いタスクに関して、タスク起動用の環境設定（メモリヘの割り付け、メッセージキューＭＱの割り付けなど）を行う。
【００７４】
すなわち、優先度の高いタスクを先に起動させ、優先度の低い他のタスクを後から参入させることにより、システムの起動時間を短縮するようになっている。
また、ＣＰＵ２４Ａは、バックアップ電源２１が接続されておらず、バックアップをしないメモリエリア２６のみを有する。
【００７５】
次に、図８に示した参考例によるカーネル１１Ａの動作について説明する。
まず、メイン電源２２が投入されると、カーネル１１Ａは、前述のようにＣＰＵ２４Ａを初期化してルートタスク１３を起動する。
【００７６】
続いて、複数のタスク１４および１５のうちで優先順位の高いタスク、メッセージキューＭＱおよびタイムアウト処理部１８に関するタイムアウトキュー１７を生成した後、優先順位の低い残りの全てのタスクを起動する。このとき、各タスク１４および１５は、リアルタイムＯＳのスケジューラ１２に管理される。
【００７７】
次に、図９のフローチャートを参照しながら、図８に示した参考例によるカーネル１１Ａの処理動作について説明する。
図９において、Ｓ２、Ｓ４、Ｓ６、Ｓ８〜Ｓ１０およびＳ２２は、前述（図３参照）と同様の処理ステップである。
【００７８】
また、割込処理ルーチン、ならびに、各タスク１４および１５によるメッセージの受信処理ルーチンは、図４〜図６に示した通りである。
【００７９】
まず、図９内のステップＳ４において、メイン電源２２が投入されているか否かを判定し、投入されている（すなわち、ＹＥＳ）と判定されれば、ステップＳ６に進み、メイン電源２２が前回オフ状態であったか否かを判定する。
【００８０】
一方、ステップＳ４において、メイン電源２２が投入されていない（すなわち、ＮＯ）と判定されれば、ステップＳ２２に進み、システムダウンの処理を行う。
【００８１】
ステップＳ４において、メイン電源２２がオン（すなわち、ＹＥＳ）と判定され、続くステップＳ６において、メイン電源２２が前回オフ状態（すなわち、ＹＥＳ）と判定されれば、ステップＳ２に進み、初期化処理を実行した後、ステップＳ３１に進む。
【００８２】
一方、ステップＳ６において、メイン電源２２が前回投入されている（すなわち、ＮＯ）と判定されれば、直ちにステップＳ３１に進む。
【００８３】
ステップＳ３１においては、システム上で優先順位の高いタスクについて起動されているか否かを判定し、起動されていない（すなわち、ＮＯ）と判定されれば、ステップＳ３２に進み、優先度の高いタスクを対象としたルートタスク１３を起動する処理を実行する。
【００８４】
すなわち、ルートタスク１３を起動し、システム上優先順位の高いタスク、メッセージキューＭＱおよびタイムアウト処理部１８に関するタイムアウトキュー１７の生成を行う。
【００８５】
一方、ステップＳ３１において、優先度の高いタスクがすでに起動完了している（すなわち、ＹＥＳ）と判定されれば、ステップＳ３３に進み、全てのタスクが起動されているか否かを判定する。
【００８６】
ステップＳ３３において、起動されている（すなわち、ＹＥＳ）と判定されれば、割込判定ステップＳ８に進み、起動されていない（すなわち、ＮＯ）と判定されれば、ステップＳ３４の実行後にステップＳ８に進む。
【００８７】
ステップＳ３４においては、ルートタスク１３を起動し、システム上で優先順位の高いタスクを除く全てのタスク、メッセージキューＭＱおよびタイムアウト処理部１８に関するタイムアウトキュー１７の生成を行う。
【００８８】
図９に示した一連の動作を繰り返すことにより、カーネル１１Ａは、初期化ステップＳ２の終了後に、複数のタスク１４および１５のうちの優先度の高いタスクのメッセージキューＭＱを生成して、優先度の高いタスクを先に起動させた後、優先度の低い他のタスクを起動させる。
【００８９】
このように、システム上で優先順位の高いタスクを先に起動させることにより、リアルタイムＯＳを搭載した電子機器システムの起動時間を短縮させることができ、したがって、システムの初期化処理の高速化を実現することができる。
【００９０】
また、メイン電源２２の遮断後の最初の投入時のみにシステム全体を初期化するので、無駄な初期化処理を回避して高速化を実現することができる。
【００９１】
【発明の効果】
以上のようにこの発明の請求項１によれば、バックアップ電源およびメイン電源からの給電により、複数のタスクを起動するとともに、タスクに対してリアルタイムにタスクスケジュールを行うためのリアルタイムＯＳと、バックアップ電源が投入されたときに、リアルタイムＯＳ上にタスクおよびメッセージキューを生成するとともに、タスクの優先度およびメッセージキューを割り付ける初期化手段と、リアルタイムＯＳおよびタスクの親タスクとなるルートタスクと、メイン電源が遮断されたときに、バックアップ電源からの給電によりルートタスクの内容を記録するとともに、タスクの内容を消去するメモリ手段とを備え、リアルタイムＯＳは、メイン電源が再投入されたときに、メモリ手段に記憶されているルートタスクの内容にしたがってタスクを起動させるので、メモリ固有の性能によらずリアルタイムＯＳを高速に起動することのできる電子機器が得られる効果がある。
【００９２】
また、この発明の請求項２によれば、請求項１において、リアルタイムＯＳは、バックアップ電源の遮断後の最初の投入に応答して初期化されるので、メモリ固有の性能によらずリアルタイムＯＳを高速に起動することのできる電子機器が得られる効果がある。
【図面の簡単な説明】
【図１】  この発明の実施の形態１を概略的に示すブロック構成図である。
【図２】  この発明の実施の形態１を具体的に示すブロック構成図である。
【図３】  この発明の実施の形態１によるリアルタイムＯＳの処理動作を示すフローチャートである。
【図４】  この発明の実施の形態１による割込処理動作を示すフローチャートである。
【図５】  この発明の実施の形態１によるタスクのメッセージ受信処理動作を示すフローチャートである。
【図６】  この発明の実施の形態１によるタスクのメッセージ受信処理動作を示すフローチャートである。
【図７】  この発明の実施の形態２によるリアルタイムＯＳの処理動作を示すフローチャートである。
【図８】  この発明に関連した参考例を示すブロック構成図である。
【図９】  この発明に関連した参考例によるリアルタイムＯＳの処理動作を示すフローチャートである。
【符号の説明】
Ｅ  イベント、ＭＱ  メッセージキュー、１ａ  入力／出力ドライバ、１ｂ  センサ、１ｃ  アクチュエータ、１１、１１Ａ  カーネル（リアルタイムＯＳ）、１２  スケジューラ、１３  ルートタスク、１４、１５  タスク、１６  初期化プロセス（初期化手段）、１７  タイムアウトキュー、１８  タイムアウト処理部、１９  割り込みハンドラ、２１  バックアップ電源、２２  メイン電源、２３  フラッシュメモリ、２４、２４Ａ  ＣＰＵ、２５、２６  メモリエリア（メモリ手段）、２５  バックアップするメモリエリア、２６  バックアップしないメモリエリア、２７  入力／出力インターフェース、Ｓ１  バックアップ電源の投入を判定するステップ、Ｓ２  初期化処理を実行するステップ、Ｓ３、Ｓ７  ルートタスク処理を実行するステップ、Ｓ４  メイン電源の投入を判定するステップ、Ｓ５  タスクを消去するステップ、Ｓ６  メイン電源の最初の投入を判定するステップ、Ｓ８  割り込みの有無を判定するステップ、Ｓ９割込処理を実行するステップ、Ｓ２１  バックアップ電源の最初の投入を判定するステップ、Ｓ２２  電子機器システムをダウンさせるステップ、Ｓ３１  優先度の高いタスクの起動を判定するステップ、Ｓ３２  優先度の高いタスクを対象としたルートタスク処理を実行するステップ、Ｓ３３  全タスクの起動を判定するステップ、Ｓ３４  全タスクを対象としたルートタスク処理を実行するステップ。
【図１】
0003719631.tif 000002
【図２】
0003719631.tif 000003
【図３】
0003719631.tif 000004
【図４】
0003719631.tif 000005
【図５】
0003719631.tif 000006
【図６】
0003719631.tif 000007
【図７】
0003719631.tif 000008
【図８】
0003719631.tif 000009
【図９】
0003719631.tif 000010