ドライバ開発とネットワークプログラミングT-Engineプログラミング入門(4)(2/6 ページ)

» 2006年09月08日 00時00分 公開
[中村 大真 パーソナルメディア株式会社,@IT MONOist]

プログラムのコンパイルと実行

 今回もまた、最初にソースコードとその実行方法を示してから、プログラムの詳細を解説することにします。

  • リスト1 7セグメントLEDドライバ(T-Kernelベース)led.c
  • リスト2 温度センサドライバ(T-Kernelベース)thermo.c
  • リスト3 アプリケーション(プロセスベース)appl.c

 T-Kernelベースのドライバ(リスト12)については、連載第2回第3回と同様の手順でプログラムをコンパイルできます。プロセスベースのアプリケーション(リスト3)は第1回と同様です。ただし、今回はディレクトリやMakefileを作らずに直接メイクする別の方法を紹介します。

ソースファイルの準備とメイク

 適当なディレクトリ(例えばC:\cygwin\home\ユーザー名)にリスト123のソースファイルled.c、thermo.c、appl.cを保存します。次にCygwin上で以下のコマンドを実行すると、実行ファイルled、thermo、applがメイクされます。

$ cd /home/ユーザー名
$ make MACHINE=tbmx1 -f /usr/local/te/driver/etc/makerules led.o led
$ make MACHINE=tbmx1 -f /usr/local/te/driver/etc/makerules thermo.o thermo
$ make MACHINE=tbmx1 -f /usr/local/te/bappl/etc/makerules appl.o appl 

ファイル転送

 これまでと同様、ファイル転送の準備を行ってTeaboardのCLIで以下のコマンドを実行します。

[/SYS]% recv -c led 

 同様に実行ファイルthermoとapplも転送します。

ネットワーク接続

※注:
ネットワークに接続しなくても動作します。ネットワーク接続しない場合は飛ばして構いません。


 まず、イーサネットポートにLANケーブルを接続します。ネットワーク環境がIPアドレスの自動割り当てを行う場合(DHCP環境など)は、次のようにTeaboardに割り当てられたIPアドレスを確認してください(注)。

[/SYS]% ping localhost
localhost is alive <192.168.0.70> : 0 ms 

※注:
手動でIPアドレスを割り当てる場合は「netconf c」コマンドで設定してください。


プログラムの実行

 次のようにドライバled、thermoをロードして、プロセスapplを実行します。

[/SYS]% lodspg led
[/SYS]% lodspg thermo
[/SYS]% appl 

 7セグメントLED上に現在の温度が表示されます。また、温度センサを指でつまみ、体温で温度の表示が上昇することを確認してみましょう(注)。

※注:
ボード自体の発熱などにより、計測結果が実際の気温と若干異なる場合があります。また、ボードの素子のばらつきもありますので、より正確な温度測定には較正が必要です。


 ネットワークに接続しているなら、PCでWebブラウザを起動して、TeaboardへIPアドレス(上記の例では「http://192.168.0.70/」)でアクセスすると、Webブラウザ上に1秒ごとに最新の温度が表示されます。

 このプロセスは自動的には終了しませんが、[Ctrl]+[C]で強制終了できます。プロセスは資源管理されているので、オープンしていたデバイスやソケットは自動的に閉じられます。

Copyright © ITmedia, Inc. All Rights Reserved.