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