連載
» 2006年06月06日 00時00分 公開

T-Engineプログラミング入門(1):T-Engineプログラミング環境を構築しよう (4/4)

[中村 大真 パーソナルメディア株式会社,@IT MONOist]
前のページへ 1|2|3|4       

Teaboardを使った開発の流れ

 Teaboardの準備が整ったことですし、早速T-Engineプログラミングを体験してみましょう。最初の実習として、コンソール上に“Hello, world”と表示する、単純な(しかし由緒正しい)プログラムを取り上げます。

 まずPC上でソースファイルを書き、それをコンパイルして実行ファイルを作成。その実行ファイルをTeaboard上に転送して実行するというのが開発の全体像です。コンパイルするマシン(PC)と実行するマシン(Teaboard)のアーキテクチャが異なる開発手法を「クロス開発」と呼びます。組み込み系のソフトウェア開発では、ごく一般的な開発方法です。

 では、より詳しく各作業を見ていきましょう。

作業ディレクトリの作成

 開発環境をCygwin上にインストールすると、ユーザーアプリケーション作成用に「/usr/local/te/bappl」というディレクトリが作成されます。このディレクトリの下に新規に「hello」ディレクトリを作成し、その下にソースファイル用のディレクトリ「src」とオブジェクト用のディレクトリ「tbmx1」を作成します。つまり、以下のようになります。

 具体的には、Cygwin上で以下のコマンドを実行します。

$ cd /usr/local/te/bappl
$ mkdir hello hello/src hello/tbmx1 

※コラム:ソースとオブジェクトのディレクトリを分ける理由
ほかの開発環境、特にPC用の開発環境では、人間が書くソースファイルとコンパイラが自動生成するオブジェクトを同一のディレクトリに格納する場合も少なくありません。しかし、T-Engineの開発環境では、ソースファイル用とオブジェクト用でディレクトリを分ける方が一般的です。
では、なぜディレクトリを分けるのでしょうか? それは、複数のCPUアーキテクチャやT-Engineボードに対応する場合、ソースファイルは共通にしておき、オブジェクト用のディレクトリだけをアーキテクチャごとに用意すればよいからです。オブジェクトはアーキテクチャごとに異なりますから、ディレクトリで区別しないとうまくいきません。
T-Kernelでは、CPUの種類にかかわらずAPIレベルでの互換性を保証しています。いったんT-Kernel上でアプリケーションを開発すれば、CPUごとにリコンパイルするだけで基本的には動作するため、移植は極めて容易です(デバイスドライバなど、ハードウェアに直接依存する部分は例外です)。
しかし、当面は1種類(例えばTeaboardのみなど)しか扱わないのであれば、ディレクトリを分けなくても構いません。


プログラムのコーディング

 ここでコーディング作業に入るわけですが、今回はごく簡単なプログラムです。以下の内容のhello.cファイルをWindows上で作成し、C:\cygwin\usr\local\te\bappl\hello\src\に保存します。

#include <stdio.h>
main()
{
  printf("Hello, world\n");
  return 0;
}
リスト C:\cygwin\usr\local\te\bappl\hello\src\hello.c

Makefileの作成

 Makefileとは、メイク(コンパイルやリンク)の手順を示したテキストファイルです。Windows上でC:\cygwin\usr\local\te\bappl\hello\src\にMakefileを作成します。開発環境上には、デフォルトの標準ルール(makerules)が用意されています。基本的にはこの標準ルールを読み込むだけでよいので、ここでは以下の3行だけを記述します。

include ../../etc/makerules
VPATH = ../src
hello: hello.o 
リスト C:\cygwin\usr\local\te\bappl\hello\src\Makefile

メイクの実行

 プログラムとMakefileの準備ができたら、それらをコンパイルして実行ファイルを生成するメイクの実行です。メイクはCygwin上で行います。

$ cd /usr/local/te/bappl/hello/tbmx1
$ ln -s ../src/Makefile
$ gmake 

 基本的には、オブジェクト用のディレクトリに移動(1行目)してgmakeコマンドを実行(3行目)するだけです。ただし、初回のみMakefileへのシンボリックリンクを設定する必要があります(2行目)。

 以上で自動的にコンパイルとリンクが行われ、実行ファイルhelloが生成されます。

TeaboardのSDカードに実行ファイルを転送

 Teaboardのrecv(レシーブ)コマンドを用いて、実行ファイルをTeaboardのSDカードに転送します。Tera Term ProでTeaboardに接続して、CLI上で以下のコマンドを実行します。

[/SYS]% recv -c hello 

 これで、Teaboardはファイルの受信待ち状態に入ります。Tera Term ProのXMODEMファイル送信機能([File]−[Transfer]−[XMODEM]−[Send])を用いて、先ほどメイクした実行ファイルhelloを送信します。

helloの実行

 実行ファイルの転送が終わったら、Tera Term ProでTeaboardのCLIに「hello」と入力して実行します。

[/SYS]% hello
Hello, world 

 上記のように、「Hello, world」という文字列がTera Term Pro上に表示されれば成功です。



 今回は、Teaboardを用いたT-Engineプログラミングの超入門編として、コンパイルから実行までを説明しました。次回からは、今回構築した環境を用いてより実践的なプログラミングに進みます。(次回に続く)


前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.