JP2005202976A - 電子機器 - Google Patents
電子機器 Download PDFInfo
- Publication number
- JP2005202976A JP2005202976A JP2005037553A JP2005037553A JP2005202976A JP 2005202976 A JP2005202976 A JP 2005202976A JP 2005037553 A JP2005037553 A JP 2005037553A JP 2005037553 A JP2005037553 A JP 2005037553A JP 2005202976 A JP2005202976 A JP 2005202976A
- Authority
- JP
- Japan
- Prior art keywords
- time
- tasks
- task
- real
- power supply
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Power Sources (AREA)
Abstract
【課題】起動時間が不揮発性半導体メモリに固有のメモリアクセス時間に依存することがなく、メモリ固有の性能によらずリアルタイムOSを高速に起動することのできる電子機器を得る。
【解決手段】複数のタスク14、15を起動するとともに、タスク14、15に対してリアルタイムにタスクスケジュールを行うためのリアルタイムOS11Aが搭載された電子機器において、リアルタイムOS11Aは、初期化が終了したときに、複数のタスク14、15のうちの優先度の高いタスクメッセージキューMQを生成して、優先度の高いタスクを先に起動させた後、複数のタスクのうちの優先度の低い他のタスクを起動させる。
【選択図】図8
【解決手段】複数のタスク14、15を起動するとともに、タスク14、15に対してリアルタイムにタスクスケジュールを行うためのリアルタイムOS11Aが搭載された電子機器において、リアルタイムOS11Aは、初期化が終了したときに、複数のタスク14、15のうちの優先度の高いタスクメッセージキューMQを生成して、優先度の高いタスクを先に起動させた後、複数のタスクのうちの優先度の低い他のタスクを起動させる。
【選択図】図8
Description
この発明は、リアルタイムOS(リアルタイムオペレーティングシステム)を搭載した電子機器に関し、特にメモリに固有の性能によらずリアルタイムOSを高速に起動可能な電子機器に関するものである。
従来より、複数のタスクを起動するとともにリアルタイムにタスクスケジュールを行うためのリアルタイムOSを有する電子機器はよく知られており、この種の電子機器においては、コンピュータ本体やリアルタイムOSに変更を加えることなく、コンピュータを高速に起動することが要求されている。
このため、従来の電子機器において、主記憶装置に記憶されたプログラムを実行するCPU(コンピュータシステム)は、主記憶装置の一部のプログラム制御データを不揮発性半導体メモリに格納している(たとえば、特許文献1参照)。
上記特許文献1に記載されたCPUは、プログラム実行時においては、不揮発性半導体メモリに格納された制御データに基づいてプログラム制御を行い、また、データ書換時においては、データ書換制御手段により、不揮発性半導体メモリ領域以外のメモリ領域に対してデータを書き換えるようになっている。
従来の電子機器は以上のように、リアルタイムOSの起動毎にルートタスクを起動してタスクおよびキューなど割り付けていたので、起動時間が不揮発性半導体メモリに固有のメモリアクセス時間に依存してしまい、メモリアクセス時間の性能以上の高速起動性を実現することができないという問題点があった。
この発明は上記のような問題点を解決するためになされたもので、メモリ固有の性能によらずリアルタイムOSを高速に起動することのできる電子機器を得ることを目的とする。
この発明に係る電子機器は、複数のタスクを起動するとともに、タスクに対してリアルタイムにタスクスケジュールを行うためのリアルタイムOSが搭載された電子機器において、リアルタイムOSは、初期化が終了したときに、複数のタスクのうちの優先度の高いタスクメッセージキューを生成して、優先度の高いタスクを先に起動させた後、複数のタスクのうちの優先度の低い他のタスクを起動させるものである。
この発明によれば、メモリ固有の性能によらずリアルタイムOSを高速に起動することができる。
実施の形態1.
図1はこの発明に関連した参考例1を概略的に示すブロック構成図であり、バックアップ電源およびメイン電源からなる二系統の電源を有し、リアルタイム制御を行う電子機器システムの全体を示している。
図1において、カーネル11は、リアルタイムOSの機能の核を構成している。カーネル11においては、イベントEと関連する複数のタスク(後述する)およびメッセージキューMQが生成されている。
図1はこの発明に関連した参考例1を概略的に示すブロック構成図であり、バックアップ電源およびメイン電源からなる二系統の電源を有し、リアルタイム制御を行う電子機器システムの全体を示している。
図1において、カーネル11は、リアルタイムOSの機能の核を構成している。カーネル11においては、イベントEと関連する複数のタスク(後述する)およびメッセージキューMQが生成されている。
カーネル11と関連するCPUは、図1においては省略されている。
スケジューラ12は、各種のタスク管理を行うものであり、リアルタイムOSによってカーネル11内に生成されている。
ルートタスク13は、電子機器システムの全てのタスクの親タスクとなっており、タスクの生成、タスクの優先度の割付およびメッセージキューMQの生成を行う。
スケジューラ12は、各種のタスク管理を行うものであり、リアルタイムOSによってカーネル11内に生成されている。
ルートタスク13は、電子機器システムの全てのタスクの親タスクとなっており、タスクの生成、タスクの優先度の割付およびメッセージキューMQの生成を行う。
複数のタスク14および15は、スケジューラ12により管理される。ここでは、代表的に2つのタスク14および15を示しているが、必要に応じた任意数のタスクが生成され得る。
初期化プロセス16は、リアルタイムOSのカーネル11が起動されるときに実行される。
初期化プロセス16は、リアルタイムOSのカーネル11が起動されるときに実行される。
タイムアウトキュー17は、時間管理を行うセクションであり、初期化プロセス16による初期化後にカーネル11内に生成され、各実行時間に関するタイムアウト時間をキューとして保存している。
タイムアウト処理部18は、カーネル11でハンドリングされる全てのタスクについて時間管理を行うとともに、タイムアウトキュー17のタイムアウト時間を参照して、タイムアウトであればその旨をスケジューラ12に情報伝達する。
タイムアウト処理部18は、カーネル11でハンドリングされる全てのタスクについて時間管理を行うとともに、タイムアウトキュー17のタイムアウト時間を参照して、タイムアウトであればその旨をスケジューラ12に情報伝達する。
割り込みハンドラ19は、カーネル11に接続されたマウスなどからなり、割り込みのイベントを生成する。
入力/出力ドライバ1aは、カーネル11と外部とのインターフェースとなっている。
入力/出力ドライバ1aは、カーネル11と外部とのインターフェースとなっている。
センサ1bは、カーネル11に対する入力装置となり、アクチュエータ1Cは、カーネル11に対する出力装置となる。
センサ1bおよびアクチュエータ1cは、入力/出力ドライバ1aを介して、カーネル11に接続されてリアルタイム制御を行う。
センサ1bおよびアクチュエータ1cは、入力/出力ドライバ1aを介して、カーネル11に接続されてリアルタイム制御を行う。
図2は図1内の入力/出力ドライバ1aの周辺を具体的に示すブロック構成図であり、図2において、各符号1a〜1cおよび11〜19で示すものは、前述(図1参照)と同様のものである。
図2においては、バックアップ電源21と、メイン電源22と、不揮発性メモリとなるフラッシュメモリ23と、CPU24とが示されている。
CPU24は、カーネル11と関連して電子機器システムを制御する。
図2においては、バックアップ電源21と、メイン電源22と、不揮発性メモリとなるフラッシュメモリ23と、CPU24とが示されている。
CPU24は、カーネル11と関連して電子機器システムを制御する。
バックアップ電源21およびメイン電源22は、CPU24を介してカーネル11に給電を行う。
フラッシュメモリ23は、CPU24の外部メモリとして機能し、たとえば、タスク14および15などの初期展開時の内容が格納される。
フラッシュメモリ23は、CPU24の外部メモリとして機能し、たとえば、タスク14および15などの初期展開時の内容が格納される。
CPU24は、バックアップ電源21およびメイン電源22と関連する複数のメモリエリア25および26と、センサ1bおよびアクチュエータ1cと関連する入力/出力インターフェース27とを備えている。
入力/出カインターフェース27は、入力/出カドライバ1aに接続されている。
入力/出カインターフェース27は、入力/出カドライバ1aに接続されている。
CPU24内のメモリエリアのうち、バックアップするメモリエリア25は、メイン電源22が遮断された状態でも、バックアップ電源21によって記憶内容が保持されている。
一方、バックアップしないメモリエリア26は、メイン電源22が遮断された時点で記憶内容が消去される。
一方、バックアップしないメモリエリア26は、メイン電源22が遮断された時点で記憶内容が消去される。
メモリエリア25および26は、メイン電源22が遮断されたときに、バックアップ電源21からの給電によりルートタスク13の内容を記録するとともに、タスク14および15の内容を消去するメモリ手段を構成している。
カーネル11内の初期化手段を構成する初期化プロセス16は、バックアップ電源21が投入された初期化時に、ルートタスク13と関連して、カーネル11上にタスク14、15およびメッセージキューMQを生成するとともに、タスク14および15の優先度を割り付け、タスク14および15を起動する。
また、カーネル11は、メイン電源22が遮断されたときには、リアルタイムOSを起動させたまま、カーネル11上に構築されたルートタスク13を残し、他のタスク14および15を消去する。
さらに、カーネル11は、メイン電源22が再投入されたときに、メモリエリア25に記憶されているルートタスク13の内容にしたがって、タスク14および15を起動させる。これにより、リアルタイムOSの起動を回避する。
さらに、カーネル11は、メイン電源22が再投入されたときに、メモリエリア25に記憶されているルートタスク13の内容にしたがって、タスク14および15を起動させる。これにより、リアルタイムOSの起動を回避する。
こうして、カーネル11は、バックアップ電源21およびメイン電源22からの給電により、複数のタスク14および15を起動するとともに、リアルタイムにタスクスケジュールを行う。
次に、図1および図2に示した参考例1の動作について説明する。
次に、図1および図2に示した参考例1の動作について説明する。
まず、バックアップ電源21が投入されると、リアルタイムOSのカーネル11は、CPU24を初期化し、外部メモリとなるフラッシュメモリ23の内容を、CPU24内の各メモリエリア25および26に展開する。
このとき、全てのタスク14および15の親タスクとなるルートタスク13については、バックアップ電源21によって記憶内容が保持されるメモリエリア25に展開する。
このとき、全てのタスク14および15の親タスクとなるルートタスク13については、バックアップ電源21によって記憶内容が保持されるメモリエリア25に展開する。
続いて、ルートタスク13を起動して、他の全てのタスク14、15、メッセージキューMQおよびタイムアウト処理部18に関するタイムアウトキュー17の生成を行う。
次に、メイン電源22が投入されると、カーネル11は、各タスク14および15を起動する。このとき、各タスク14および15は、リアルタイムOSのスケジューラ12によって管理される。
次に、メイン電源22が投入されると、カーネル11は、各タスク14および15を起動する。このとき、各タスク14および15は、リアルタイムOSのスケジューラ12によって管理される。
電子機器システムの入力装置となるセンサ1bからの入力信号は、入力/出力ドライバ1aを介してスケジューラ12に伝達され、CPU24の入力/出カインターフェース27と、リアルタイムOSとの機能をサポートする。
各タスク14および15は、入力情報に基づいて演算を行い、この演算結果を入力/出力ドライバ1aおよび入力/出カインターフェース27を介して出力し、アクチュエータ1cを駆動する。
なお、割り込み情報は、割り込みハンドラ19を介して入力され、リアルタイムOSのスケジューラ12に管理される。
なお、割り込み情報は、割り込みハンドラ19を介して入力され、リアルタイムOSのスケジューラ12に管理される。
次に、図3〜図6のフローチャートを参照しながら、タスク14および15のスケジューリングを行うリアルタイムOSによるリアルタイム性に関する制御動作について、さらに具体的に説明する。
図3はカーネル11による全体の処理ルーチン、図4は割込処理ルーチン、図5および図6は各タスク14および15によるメッセージの受信処理ルーチンを示している。
図3はカーネル11による全体の処理ルーチン、図4は割込処理ルーチン、図5および図6は各タスク14および15によるメッセージの受信処理ルーチンを示している。
この場合、スケジューラ12での処理、各種のセンサ1bからの入力信号またはアクチュエータ1cなどの出力に対する割込処理、各割込処理に対するタスクは、別々に処理される。
まず、図3内のステップS1において、電子機器システムのバックアップ電源21が投入されているか否かを判定し、投入されていれば次のステップS2に進む。
まず、図3内のステップS1において、電子機器システムのバックアップ電源21が投入されているか否かを判定し、投入されていれば次のステップS2に進む。
ステップS2においては、電子機器システムおよびリアルタイムOS(カーネル11)の初期化を行い、前述のように、フラッシュメモリ23の内容をCPU24内のメモリエリア25および26に展開する。
次に、ステップS3において、ルートタスク13を起動する処理を行い、前述のようにタイムアウトキュー17を生成し、続いて、ステップS4において、メイン電源22が投入されているか否かを判定する。
次に、ステップS3において、ルートタスク13を起動する処理を行い、前述のようにタイムアウトキュー17を生成し、続いて、ステップS4において、メイン電源22が投入されているか否かを判定する。
ステップS4において、メイン電源22が投入されていない(すなわち、NO)と判定されれば、ステップS5に進み、生成されたルートタスク13以外の全てのタスク14および15を消去する。
一方、ステップS4において、メイン電源22が投入されている(すなわち、YES)と判定されれば、ステップS6に進み、メイン電源22が前回オフされていた(投入されていない)か否かを判定する。
一方、ステップS4において、メイン電源22が投入されている(すなわち、YES)と判定されれば、ステップS6に進み、メイン電源22が前回オフされていた(投入されていない)か否かを判定する。
ステップS6において、メイン電源22が前回オフ(すなわち、YES)と判定されれば、ステップS7に進み、ステップS3と同様のルートタスク処理を実行した後、ステップS8に進む。
なお、ステップS7は、メイン電源22がオフで消去されたタスク14および15を、次回のメイン電源22のオンで生成するために行われる処理である。
なお、ステップS7は、メイン電源22がオフで消去されたタスク14および15を、次回のメイン電源22のオンで生成するために行われる処理である。
一方、ステップS6において、メイン電源22が前回投入されている(すなわち、NO)と判定されれば、直ちにステップS8に進み、割込があるか否かを判定する。
ステップS8において、割込があり(すなわち、YES)と判定されれば、ステップS9に進み、割込処理(具体例については後述する)を実行した後、ステップS10に進む。
ステップS8において、割込があり(すなわち、YES)と判定されれば、ステップS9に進み、割込処理(具体例については後述する)を実行した後、ステップS10に進む。
一方、ステップS8において、割込がない(すなわち、NO)と判定されれば、直ちにステップS10に進む。
ステップS10は、全てのタスク14および15が終了している状態であり、タスク14および15がいつでも実行状態に遷移できるアイドル状態にあることを意味している。
ステップS10は、全てのタスク14および15が終了している状態であり、タスク14および15がいつでも実行状態に遷移できるアイドル状態にあることを意味している。
次に、図4に示した割込処理について具体的に説明する。
ここでは、時間T1毎に割り込みが発生するT1タスク14と、時間T2毎に割込が発生するT2タスク15との2つのタスクがあるものとする。ただし、T1<T2とする。
まず、図4内のステップS11において、T1タスク14にメッセージを送る処理を実行し、続いて、ステップS12において、時間T2が経過しているか否かを判定する。
ここでは、時間T1毎に割り込みが発生するT1タスク14と、時間T2毎に割込が発生するT2タスク15との2つのタスクがあるものとする。ただし、T1<T2とする。
まず、図4内のステップS11において、T1タスク14にメッセージを送る処理を実行し、続いて、ステップS12において、時間T2が経過しているか否かを判定する。
ステップS12において、時間T2が経過している(すなわち、YES)と判定されればステップS13に進みT2タスク15にメッセージを送る処理を実行し、また、時間T2が経過していない(すなわち、NO)と判定されれば、図4の割込処理を終了する。
なお、ステップS11およびS13においてメッセージを送る手段としては、メッセージキューMQ、イベントE、または、周知のセマフォなどを適用することができる。
なお、ステップS11およびS13においてメッセージを送る手段としては、メッセージキューMQ、イベントE、または、周知のセマフォなどを適用することができる。
次に、図5および図6を参照しながら、メッセージを受信するT1タスクおよびT2タスクについて説明する。
まず、T1タスク14は、図5内のステップS14において、メッセージの受信待ち状態を継続しており、もし前述の割込処理(ステップS11)で送信されたメッセージが受信されれば、続くステップS15において、時間T1毎に処理を実行する。
まず、T1タスク14は、図5内のステップS14において、メッセージの受信待ち状態を継続しており、もし前述の割込処理(ステップS11)で送信されたメッセージが受信されれば、続くステップS15において、時間T1毎に処理を実行する。
ステップS15の処理が終了すると、ステップS16に進み、次のメッセージまたはイベントEの待ち状態、すなわち、ブロック(閉鎖)状態に遷移する。
同様に、T2タスク15は、図6内のステップS17において、メッセージの受信待ち状態を継続しており、もし前述の割込処理(ステップS13)で送信されたメッセージが受信されれば、続くステップS18において、時間T2毎に処理を実行する。
同様に、T2タスク15は、図6内のステップS17において、メッセージの受信待ち状態を継続しており、もし前述の割込処理(ステップS13)で送信されたメッセージが受信されれば、続くステップS18において、時間T2毎に処理を実行する。
ステップS18の処理が終了すると、ステップS19に進み、次のメッセージまたはイベントEの待ち状態、すなわち、ブロック(閉鎖)状態に遷移する。
このように、図3〜図6に示した一連の動作を繰り返すことにより、全タスクを生成するルートタスク13は、メイン電源22のオンオフによらず、バックアップ電源21が投入されたときのみに起動することになる。
このように、図3〜図6に示した一連の動作を繰り返すことにより、全タスクを生成するルートタスク13は、メイン電源22のオンオフによらず、バックアップ電源21が投入されたときのみに起動することになる。
また、メイン電源22が遮断された場合には、ルートタスク13を残して、他の全タスク14および15が消去される。
したがって、メイン電源22の遮断時においても、バックアップ電源21の給電により、常にルートタスク13が起動されて常駐している状態となり、次回のリアルタイムOSのカーネル11の起動を回避することができる。
したがって、メイン電源22の遮断時においても、バックアップ電源21の給電により、常にルートタスク13が起動されて常駐している状態となり、次回のリアルタイムOSのカーネル11の起動を回避することができる。
なお、上記参考例1では、バックアップ電源21のオン(投入)状態に応答して、リアルタイムOSのカーネル11の初期化処理(ステップS2)を実行したが、バックアップ電源21の遮断後の最初の投入動作に応答して初期化処理を実行してもよい。
以下、バックアップ電源21の遮断後の最初の投入時にカーネル11を初期化するようにした参考例2について説明する。
なお、この発明に関連した参考例2の構成は、前述(図2参照)と同様である。
図7は参考例2のカーネル11による処理動作を示すフローチャートであり、図7において、S1〜S10は、前述(図3参照)と同様の処理ステップである。
また、割込処理ルーチン、ならびに、各タスク14および15によるメッセージの受信処理ルーチンは、図4〜図6に示した通りである。
なお、この発明に関連した参考例2の構成は、前述(図2参照)と同様である。
図7は参考例2のカーネル11による処理動作を示すフローチャートであり、図7において、S1〜S10は、前述(図3参照)と同様の処理ステップである。
また、割込処理ルーチン、ならびに、各タスク14および15によるメッセージの受信処理ルーチンは、図4〜図6に示した通りである。
この場合、カーネル11は、バックアップ電源21が遮断されると、CPU24内のメモリエリア25および26を含む全システムをダウンさせ、バックアップ電源21が遮断状態から投入されると、前述と同様の初期化処理動作を実行する。
まず、ステップS1において、システムのバックアップ電源21が投入されているか否かを判定し、投入されている(すなわち、YES)と判定されれば、ステップS21に進み、バックアップ電源21が前回オフされていたか否かを判定する。
一方、ステップS1において、バックアップ電源21が投入されていない(すなわち、NO)と判定されれば、ステップS22に進み、システム全体の電源を落とすことにより、システムダウンの処理を実行した後、ステップS1に戻る。
一方、ステップS1において、バックアップ電源21が投入されていない(すなわち、NO)と判定されれば、ステップS22に進み、システム全体の電源を落とすことにより、システムダウンの処理を実行した後、ステップS1に戻る。
ステップS1において、バックアップ電源21がオン(すなわち、YES)と判定され、続くステップS21において、バックアップ電源21が前回オフ状態(すなわち、YES)と判定されれば、バックアップ電源21の遮断後の最初の投入であるから、初期化処理ステップS2に進む。
以下、前述と同様にステップS2〜S10を実行する。
以下、前述と同様にステップS2〜S10を実行する。
一方、ステップS21において、バックアップ電源21が前回投入されている(すなわち、NO)と判定されれば、遮断後の最初のオン状態ではないので、直ちにステップS4に進み、メイン電源22がオン状態か否かを判定する。
図7に示した一連の動作を繰り返すことにより、バックアップ電源21で常にルートタスク13を起動してリアルタイムOSの起動を回避するとともに、バックアップ電源21の遮断後の最初の投入時にシステム全体を初期化することができる。
図7に示した一連の動作を繰り返すことにより、バックアップ電源21で常にルートタスク13を起動してリアルタイムOSの起動を回避するとともに、バックアップ電源21の遮断後の最初の投入時にシステム全体を初期化することができる。
したがって、無駄な初期化処理を回避して高速化を実現することができる。
また、バックアップ電源21を遮断することにより、電子機器システム全体をダウンさせて、リアルタイムOSを初期化することができる。
また、バックアップ電源21を遮断することにより、電子機器システム全体をダウンさせて、リアルタイムOSを初期化することができる。
なお、上記参考例1では、バックアップ電源21を用いて電子機器システムの初期化処理の高速化を実現したが、優先度の高いタスクを先に起動することにより高速化を実現することが望ましい。
以下、図8を参照しながら、優先度の高いタスクを先に起動するようにしたこの発明の実施の形態1について説明する。
図8はこの発明の実施の形態1を具体的に示すブロック構成図であり、図8において、前述(図2参照)と同様の構成については、同一符号を付して詳述を省略する。
以下、図8を参照しながら、優先度の高いタスクを先に起動するようにしたこの発明の実施の形態1について説明する。
図8はこの発明の実施の形態1を具体的に示すブロック構成図であり、図8において、前述(図2参照)と同様の構成については、同一符号を付して詳述を省略する。
また、11Aおよび24Aは、それぞれ、カーネル11およびCPU24に対応している。
この場合、カーネル11Aは、リアルタイムOSの初期化終了後に、まず、電子機器システムで優先度の高いタスクに関して、タスク起動用の環境設定(メモリヘの割り付け、メッセージキューMQの割り付けなど)を行う。
この場合、カーネル11Aは、リアルタイムOSの初期化終了後に、まず、電子機器システムで優先度の高いタスクに関して、タスク起動用の環境設定(メモリヘの割り付け、メッセージキューMQの割り付けなど)を行う。
すなわち、優先度の高いタスクを先に起動させ、優先度の低い他のタスクを後から参入させることにより、システムの起動時間を短縮するようになっている。
また、CPU24Aは、バックアップ電源21が接続されておらず、バックアップをしないメモリエリア26のみを有する。
また、CPU24Aは、バックアップ電源21が接続されておらず、バックアップをしないメモリエリア26のみを有する。
次に、図8に示したこの発明の実施の形態1によるカーネル11Aの動作について説明する。
まず、メイン電源22が投入されると、カーネル11Aは、前述のようにCPU24Aを初期化してルートタスク13を起動する。
続いて、複数のタスク14および15のうちで優先順位の高いタスク、メッセージキューMQおよびタイムアウト処理部18に関するタイムアウトキュー17を生成した後、優先順位の低い残りの全てのタスクを起動する。このとき、各タスク14および15は、リアルタイムOSのスケジューラ12に管理される。
まず、メイン電源22が投入されると、カーネル11Aは、前述のようにCPU24Aを初期化してルートタスク13を起動する。
続いて、複数のタスク14および15のうちで優先順位の高いタスク、メッセージキューMQおよびタイムアウト処理部18に関するタイムアウトキュー17を生成した後、優先順位の低い残りの全てのタスクを起動する。このとき、各タスク14および15は、リアルタイムOSのスケジューラ12に管理される。
次に、図9のフローチャートを参照しながら、この発明の実施の形態1によるカーネル11Aの処理動作について説明する。
図9において、S2、S4、S6、S8〜S10およびS22は、前述(図3参照)と同様の処理ステップである。
また、割込処理ルーチン、ならびに、各タスク14および15によるメッセージの受信処理ルーチンは、図4〜図6に示した通りである。
図9において、S2、S4、S6、S8〜S10およびS22は、前述(図3参照)と同様の処理ステップである。
また、割込処理ルーチン、ならびに、各タスク14および15によるメッセージの受信処理ルーチンは、図4〜図6に示した通りである。
まず、図9内のステップS4において、メイン電源22が投入されているか否かを判定し、投入されている(すなわち、YES)と判定されれば、ステップS6に進み、メイン電源22が前回オフ状態であったか否かを判定する。
一方、ステップS4において、メイン電源22が投入されていない(すなわち、NO)と判定されれば、ステップS22に進み、システムダウンの処理を行う。
一方、ステップS4において、メイン電源22が投入されていない(すなわち、NO)と判定されれば、ステップS22に進み、システムダウンの処理を行う。
ステップS4において、メイン電源22がオン(すなわち、YES)と判定され、続くステップS6において、メイン電源22が前回オフ状態(すなわち、YES)と判定されれば、ステップS2に進み、初期化処理を実行した後、ステップS31に進む。
一方、ステップS6において、メイン電源22が前回投入されている(すなわち、NO)と判定されれば、直ちにステップS31に進む。
一方、ステップS6において、メイン電源22が前回投入されている(すなわち、NO)と判定されれば、直ちにステップS31に進む。
ステップS31においては、システム上で優先順位の高いタスクについて起動されているか否かを判定し、起動されていない(すなわち、NO)と判定されれば、ステップS32に進み、優先度の高いタスクを対象としたルートタスク13を起動する処理を実行する。
すなわち、ルートタスク13を起動し、システム上優先順位の高いタスク、メッセージキューMQおよびタイムアウト処理部18に関するタイムアウトキュー17の生成を行う。
すなわち、ルートタスク13を起動し、システム上優先順位の高いタスク、メッセージキューMQおよびタイムアウト処理部18に関するタイムアウトキュー17の生成を行う。
一方、ステップS31において、優先度の高いタスクがすでに起動完了している(すなわち、YES)と判定されれば、ステップS33に進み、全てのタスクが起動されているか否かを判定する。
ステップS33において、起動されている(すなわち、YES)と判定されれば、割込判定ステップS8に進み、起動されていない(すなわち、NO)と判定されれば、ステップS34の実行後にステップS8に進む。
ステップS33において、起動されている(すなわち、YES)と判定されれば、割込判定ステップS8に進み、起動されていない(すなわち、NO)と判定されれば、ステップS34の実行後にステップS8に進む。
ステップS34においては、ルートタスク13を起動し、システム上で優先順位の高いタスクを除く全てのタスク、メッセージキューMQおよびタイムアウト処理部18に関するタイムアウトキュー17の生成を行う。
図9に示した一連の動作を繰り返すことにより、カーネル11Aは、初期化ステップS2の終了後に、複数のタスク14および15のうちの優先度の高いタスクのメッセージキューMQを生成して、優先度の高いタスクを先に起動させた後、優先度の低い他のタスクを起動させる。
図9に示した一連の動作を繰り返すことにより、カーネル11Aは、初期化ステップS2の終了後に、複数のタスク14および15のうちの優先度の高いタスクのメッセージキューMQを生成して、優先度の高いタスクを先に起動させた後、優先度の低い他のタスクを起動させる。
このように、システム上で優先順位の高いタスクを先に起動させることにより、リアルタイムOSを搭載した電子機器システムの起動時間を短縮させることができ、したがって、システムの初期化処理の高速化を実現することができる。
また、メイン電源22の遮断後の最初の投入時のみにシステム全体を初期化するので、無駄な初期化処理を回避して高速化を実現することができる。
また、メイン電源22の遮断後の最初の投入時のみにシステム全体を初期化するので、無駄な初期化処理を回避して高速化を実現することができる。
E イベント、MQ メッセージキュー、1a 入力/出力ドライバ、1b センサ、1c アクチュエータ、11A カーネル(リアルタイムOS)、12 スケジューラ、13 ルートタスク、14、15 タスク、16 初期化プロセス(初期化手段)、17 タイムアウトキュー、18 タイムアウト処理部、19 割り込みハンドラ、21 バックアップ電源、22 メイン電源、23 フラッシュメモリ、24A CPU、25、26 メモリエリア(メモリ手段)、25 バックアップするメモリエリア、26 バックアップしないメモリエリア、27 入力/出力インターフェース。
Claims (2)
- 複数のタスクを起動するとともに、前記タスクに対してリアルタイムにタスクスケジュールを行うためのリアルタイムOSが搭載された電子機器において、
前記リアルタイムOSは、初期化が終了したときに、
前記複数のタスクのうちの優先度の高いタスクおよびメッセージキューを生成して、前記優先度の高いタスクを先に起動させた後、
前記複数のタスクのうちの優先度の低い他のタスクを起動させることを特徴とする電子機器。 - 前記リアルタイムOSは、メイン電源からの給電により起動し、前記メイン電源の遮断後の最初の投入に応答して初期化されることを特徴とする請求項1に記載の電子機器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005037553A JP2005202976A (ja) | 2005-02-15 | 2005-02-15 | 電子機器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005037553A JP2005202976A (ja) | 2005-02-15 | 2005-02-15 | 電子機器 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17337398A Division JP3719631B2 (ja) | 1998-06-19 | 1998-06-19 | 電子機器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005202976A true JP2005202976A (ja) | 2005-07-28 |
Family
ID=34824749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005037553A Pending JP2005202976A (ja) | 2005-02-15 | 2005-02-15 | 電子機器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005202976A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100383743C (zh) * | 2006-04-07 | 2008-04-23 | 浙江大学 | Java操作系统中实时任务调度方法 |
US8356135B2 (en) | 2008-12-05 | 2013-01-15 | Samsung Electronics Co., Ltd. | Memory device and control method |
CN108874513A (zh) * | 2017-05-11 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 处理定时任务的方法、系统、电子设备和计算机可读介质 |
-
2005
- 2005-02-15 JP JP2005037553A patent/JP2005202976A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100383743C (zh) * | 2006-04-07 | 2008-04-23 | 浙江大学 | Java操作系统中实时任务调度方法 |
US8356135B2 (en) | 2008-12-05 | 2013-01-15 | Samsung Electronics Co., Ltd. | Memory device and control method |
CN108874513A (zh) * | 2017-05-11 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 处理定时任务的方法、系统、电子设备和计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6950919B2 (en) | Computer system with operating system to dynamically adjust the main memory | |
JP5783809B2 (ja) | 情報処理装置、起動方法およびプログラム | |
US20180203622A1 (en) | Vehicular device | |
JP2007206885A (ja) | コンピュータシステム及びシステム起動方法 | |
KR20070089460A (ko) | 우선 순위에 따른 비휘발성 메모리의 연산 처리 장치 및방법 | |
US20190278508A1 (en) | Information Handling System Firmware Persistent Memory Runtime Reclaim | |
KR100604877B1 (ko) | 내장 시스템의 메모리 어드레스의 매핑을 제어하는 장치와방법 | |
JP2006268377A (ja) | プログラム起動制御装置及びプログラム起動制御方法 | |
JP2005202976A (ja) | 電子機器 | |
JP2007206933A (ja) | 情報処理装置、情報処理装置におけるブートローダ生成方法およびプログラム転送方法 | |
TWI464583B (zh) | 取得觸發功能之指令的方法 | |
JP6109340B2 (ja) | 情報機器 | |
JP2007334888A (ja) | 多機能デバイスの駆動 | |
JP3719631B2 (ja) | 電子機器 | |
CN107102868B (zh) | 嵌入式系统及其快速启动方法和装置 | |
JP3214469B2 (ja) | マイクロコンピュータによるフラッシュeepromの書き込み制御方法及び装置 | |
US20140181492A1 (en) | Method of booting an electronic system and an electronic system applying the same | |
JP2008226111A (ja) | 2重化コントローラシステム、その稼動系コントローラ | |
JP7053979B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2010039737A (ja) | プログラマブルコントローラ高速化方式およびこの方式によるプログラマブルコントローラ | |
JP5652242B2 (ja) | データ転送制御装置及びプログラム | |
KR102254101B1 (ko) | 데이터 처리 시스템 및 이의 동작 방법 | |
JP4769968B2 (ja) | サーバシステム、パーティション起動制御装置、パーティション起動制御方法 | |
JP2008015725A (ja) | 情報処理装置およびプログラム起動方法 | |
CN112925728A (zh) | 具有序列处理单元的存储器控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Effective date: 20070320 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070710 |