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