C - U-netSURF
C - U-netSURF
C - U-netSURF
- No tags were found...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
}<br />
}<br />
Sci_PutChar('r');<br />
Sci_PutChar('\r');<br />
r');<br />
Sci_PutChar('\n');<br />
/* ------------------------------------------------------------------------ */<br />
/* Copyright (C) 1998-2003 by Project HOS */<br />
/* Copyright (C) 2009 by TOYO-LINX Co.,Ltd. */<br />
/* ------------------------------------------------------------------------ */<br />
Task1 の 中 の「wup_tsk(TSKID_SAMPLE2)」が,TSKID_SAMPLE2 で 指 定 するタスクを 起 床 するサ<br />
ービスコールです。wup_tsk が 発 行 されると, 指 定 されたタスクは 実 行 可 能 状 態 ,もしくは 実 行 状 態 に<br />
遷 移 します。<br />
Task2 の 中 の「slp_tsk()」は 自 タスクを 待 ち 状 態 に 遷 移 するサービスコールです。<br />
さて,「system.cfg」で Task2 の 優 先 順 位 が Task1 よりも 高 くなっています。このことを 踏 まえてプロ<br />
グラムの 動 きを 考 えてみましょう。<br />
プログラムが 動 き 出 すと,「CRE_TSK」により Task1 と Task2 はどちらも 実 行 状 態 ,もしくは 実 行 可<br />
能 状 態 になります。ただし,Task2 の 優 先 順 位 が Task1 より 高 いので,Task2 が 実 行 状 態 ,Task1 が<br />
実 行 可 能 状 態 になります。<br />
Task2 は「slp_tsk」により,すぐに 待 ち 状 態 になります。その 結 果 ,Task1 が 実 行 状 態 になります。<br />
Task1 はシリアルポートから 受 信 するとデータの 範 囲 を 判 定 し,‘0’~‘9’のときに「wup_tsk」を 発<br />
行 してタスク 2 を 実 行 可 能 状 態 にします。すると,タスク 2 の 優 先 順 位 がタスク 1 より 高 いので,タスク<br />
1 は 実 行 可 能 状 態 に 遷 移 し,タスク 2 が 実 行 状 態 になりメッセージの 送 信 処 理 を 実 行 します。<br />
Task2 はメッセージを 送 信 したあと「slp_tsk」により,すぐに 待 ち 状 態 になります。その 結 果 ,<br />
Task1 が 実 行 状 態 になり 再 び 受 信 を 待 ちます。<br />
このように,タスク 1 とタスク 2 が 協 調 しながら 動 作 していくことになります。<br />
◆<br />
いかがだったでしょうか。HOS を H8/3687 に 実 装 するまでは 手 順 も 多 く 複 雑 に 思 えたかもしれま<br />
せん。それでも,マルチタスクでアプリケーションタスクを 実 装 すること 自 体 は 意 外 と 簡 単 に 感 じたこと<br />
でしょう。もちろん,μITRON の 機 能 はこのマニュアルで 説 明 したことだけではなく(というより 説 明 して<br />
いないことが 大 部 分 ),まだまだ 入 り 口 をくぐったに 過 ぎません。これをきっかけに 組 み 込 み OS につ<br />
いても 興 味 を 広 げていただければ 幸 いです。<br />
147<br />
TK-3687mini ユーザーズマニュアル C 言 語 版