T-Engineプログラミング入門

T-Engineプログラミング入門 最終回

ドライバ開発とネットワークプログラミング

中村 大真 パーソナルメディア株式会社 2006/9/8

本連載の仕上げとして、ドライバの作成方法と複数のモジュールからなるアプリ開発およびネットワークプログラミングについて解説する。(編集部)

- PR -

 これまでこの連載では、タスクやハンドラといった組み込み分野の基礎技術を取り上げてきました。

 今回は連載のまとめとして、T-Engineの大きな強みの1つであるデバイスドライバ(以下ドライバ)を取り上げます。デジタル温度計のプログラムを通して、T-Engineでのドライバ開発と、ドライバを利用したアプリケーション開発をマスターしましょう。

デジタル温度計のシステム構成

 この連載の想定環境であるTeaboardのボード上には、温度センサが実装されています。これを利用して現在の温度を測定し、7セグメントLEDに表示します。Teaboardにはイーサネットポートも付いているので、これを活用して「Web配信機能付きデジタル温度計」にしてみましょう。つまり、Teaboardをネットワークに接続しておけば、別の場所にあるPCからWebブラウザでTeaboardにアクセスすることで、現在の温度を表示させることができます。

 今回使用するデバイスは、図1のとおりです。

図1 今回使うTeaboard上のデバイス

 次にソフト設計です。図2のように、Teaboard側は次の5個のモジュールで構成しました。

  • LEDドライバ
    前回までは直接7セグメントLEDを制御していました。今回はアプリケーションから独立したLEDドライバを作成し、アプリケーションからドライバにライトする(書き込む)ことでLED表示を行います。

  • 温度センサドライバ
    同じく温度センサのドライバも作成して、アプリケーションからドライバをリードする(読み出す)ことで温度を読み出せるようにします。

  • アプリケーションプロセス
    アプリケーション本体は、前回取り上げたマルチタスクの技法を用いて、3つのタスクで構成します。
    • メインタスク
      温度センサドライバから現在の温度をリードして、その値をLEDドライバにライトします。
    • Webサーバタスク
      Webブラウザからのコネクトを受け付け、後の処理をセッションタスクに渡します。
    • セッションタスク
      温度センサドライバから現在の温度をリードして、その値をWebブラウザにHTMLで返します。
    今回はこの3つのタスクをプロセスとして1つにまとめて、安全なアプリケーションを構築します。

  • TCP/IPマネージャ
    ネットワークについては、Teaboardに標準で付属しているTCP/IPマネージャというミドルウェアを使います。

  • LANドライバ
    LANドライバもTeaboardに標準で付属しています。TCP/IPマネージャ内部から呼び出されるので、アプリケーションから直接呼ぶことは通常ありません。
図2 デジタル温度計のモジュール構成

 このように、バイナリレベルでモジュール化できるところがT-Engineの大きな特徴です。各モジュールは完全に独立して開発し、個別にロードやデバッグ、変更ができます。作成したモジュールを別の開発案件に再利用することも簡単です。

コラム プロセスとは
 プロセスとは、タスクに独立したメモリ空間と資源を与えたもので、T-Kernel Extensionで実現されます。プロセスはメモリ保護が行われるので、自プロセス以外のメモリ内容を破壊することはありません。

  また、ミドルウェアの資源もプロセス単位で管理されます。例えばプロセスが異常終了しても、そのプロセスがオープンしていたデバイスは自動的にクローズされます。このような理由で、プロセスは安全なシステム構築に役立ちます。

スキルアップ/キャリアアップ(JOB@IT)

スポンサーからのお知らせ

- PR -
@IT Sepcial

震災関連・復興支援情報

震災関連・復興支援情報
@IT MONOist/EE Times Japan/環境メディアの製造業技術者向け3メディアを中心に、震災関連/復興支援情報を集めました

次世代エンベデッドコーナー

次世代エンベデッド
“次世代”の組み込み機器を開発するエンジニアを支援するコーナー。新潮流・新技術をインタビューやコラム、解説記事で分かりやすく紹介!

Windows Embeddedコーナー

Windows Embedded
Windows Embedded専門コーナー。Windows Embedded StandardやWindows Embedded CEをはじめとする「Windows Embedded」ファミリの最新動向や技術情報をお届けします!!

Androidコーナー

Android
Android専門コーナー。組み込みデバイスへの適用からアプリケーション開発、イベントレポート、ニュースなどAndroidに関するさまざまな技術情報がここに集結!!

@IT MONOist 求人情報

- PR -