ドライバ開発とネットワークプログラミング:T-Engineプログラミング入門(4)(2/6 ページ)
ドライバの作成と複数のモジュールからなるアプリ開発およびネットワークプログラミングについて解説する
プログラムのコンパイルと実行
今回もまた、最初にソースコードとその実行方法を示してから、プログラムの詳細を解説することにします。
- リスト1 7セグメントLEDドライバ(T-Kernelベース)led.c
- リスト2 温度センサドライバ(T-Kernelベース)thermo.c
- リスト3 アプリケーション(プロセスベース)appl.c
T-Kernelベースのドライバ(リスト1、2)については、連載第2回、第3回と同様の手順でプログラムをコンパイルできます。プロセスベースのアプリケーション(リスト3)は第1回と同様です。ただし、今回はディレクトリやMakefileを作らずに直接メイクする別の方法を紹介します。
ソースファイルの準備とメイク
適当なディレクトリ(例えばC:\cygwin\home\ユーザー名)にリスト1、2、3のソースファイル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
プログラムの実行
次のようにドライバ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.