はじめてみよう T-Kernel 2/x86

Version 2.0.1
パーソナルメディア株式会社

Copyright c 2008–2012 by Personal Media Corporation

目次

2

目次
修正履歴

3

はじめに

4

1

ターゲット側実行環境のインストール
1.1 実機環境と仮想環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 VMware Player のインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 VMwareGateway のインストール . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 T-Kernel 2/x86 のインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5
5
6
7
8

2

開発環境のインストール
2.1 Cygwin のインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Eclipse のインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 T-Kernel 開発環境のインストール . . . . . . . . . . . . . . . . . . . . . . . . . . .

17
17
20
21

3

開発手順
3.1 ターゲット側と開発環境側の起動 . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 コンソールの利用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 プロセスベースと T-Kernel ベース . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 「Hello, world」プロセスベース編 . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 「Hello, world」T-Kernel ベース編 . . . . . . . . . . . . . . . . . . . . . . . . . .

27
27
28
30
31
34

4

実習用サンプルプログラム
4.1 ジャグリング (お手玉) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 簡易ウェブサーバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 マイクロ秒単位の時間指定サンプル . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 物理タイマーのサンプル実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38
38
42
46
48

索引

51

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

修正履歴

3

修正履歴
Version 2.0.1• 実行環境の更新に伴い、「1. ターゲット側実行環境のインストール」を修正• 開発環境の更新に伴い、「2. 開発環境のインストール」を修正
Version 2.0.0• T-Kernel 2/x86 評価キット向けに新規作成

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

はじめに

4

はじめに
本書では、はじめて「T-Kernel 2/x86 評価キット」をご利用になる方を対象に、T-Kernel 2/x86
評価キットを使い始めるためのチュートリアルをご提供します。インストールから実習用プログ
ラムの実行まで、この手順に沿って試していただければ、短時間で開発の手順をひととおり体験できます。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

1. ターゲット側実行環境のインストール

5

1

ターゲット側実行環境のインストール

1.1

実機環境と仮想環境

まずこの章ではターゲット側実行環境 (OS、ドライバ、ミドルウエア等) のインストールを行います。
組込みシステム開発では、プログラムをメイクする開発環境側と、作成したプログラムを実行するターゲット側が、別々のマシンに分かれているのが一般的です。このような開発手法を「クロス開発」と呼びます。
T-Kernel 2/x86 評価キットの特色の一つとして、図 1.1 のように開発用パソコンとは別の実機
上にターゲット側実行環境をインストールする方法だけでなく、図 1.2 のように開発用パソコンと同じマシン上の仮想化ソフト (VMware) 上にターゲット側実行環境をインストールする方法も選択できます。
パソコン (開発用)

実機 (実行用)
アプリケーション

コンパイラ

Eclipse

-

デバッガ
端末ソフト



-

ドライバ、ミドルウェア

シリアル

図 1.1

T-Kernel 2/x86

実機環境

パソコン (開発と実行用)

VMwareアプリケーション

コンパイラ

Eclipse

-

デバッガ
端末ソフト



-

ドライバ、ミドルウェア

リダイレクト

図 1.2

T-Kernel 2/x86

仮想環境

組込みシステムを開発する場合、最終製品は当然実機上になりますが、開発中は仮想環境を利用すると、次のような利点があります。

• パソコンが 1 台あれば開発ができ、他に実機を用意する必要はありません。
• 最終的な実機のハードウェアが完成していない段階でも、ソフトウェアの開発を先行して開始できます。
「1.3 VMwareGateway のインストー
仮想環境の場合は「1.2 VMware Player のインストール」、
ル」、「1.4 T-Kernel/x86 のインストール」の順にインストールしてください。実機環境の場合はVMware Player と VMwareGateway はインストール不要ですので、「1.4 T-Kernel/x86 のインストール」に進んでください。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

1. ターゲット側実行環境のインストール

6

なお仮想環境や実機環境をインストールするマシンに必要なハードウェアの動作条件については、T-Kernel 2/x86 評価キット CD-ROM 内の『評価キット取扱説明書』の「1.2 節 動作条件」
をご参照ください。

1.2

VMware Player のインストール

T-Kernel 2/x86 を仮想環境上で動作させるために、まず VMware Player をインストールします。
(1) インストーラの起動
T-Kernel 2/x86 評価キット CD-ROM 内の共通ソフトウェアのフォルダ (commonY=soft) にある「VMware-player-3.1.6-744570.exe」を起動します。
† ファイル名の中のバージョン番号は上記と異なる場合があります。
† T-Kernel 2/x86 評価キット CD-ROM 内の VMware Player とは異なるバージョンをインストールする場合は、下記からご使用のパソコンに合ったバージョンをダウンロードしてご利用ください。
http://www.vmware.com/

起動してしばらく待つと 次へ ボタンが有効になるのでクリックします (図 1.3)。

図 1.3

VMware Player のインストーラ起動画面(2) インストール先フォルダの選択
インストール先フォルダを聞かれます。デフォルトで問題なければそのまま 次へ をクリッ
クします。

(3) 作成するショートカットの確認作成するショートカットを聞かれますので、特に問題なければそのまま 次へ をクリックします。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

1. ターゲット側実行環境のインストール

7(4) インストールの開始
続行 をクリックするとインストールが開始します。インストールが完了するまでそのままお待ちください。

(5) インストール完了
インストールが完了したら、Windows の再起動を促されますので、再起動してください。

1.3

VMwareGateway のインストール

T-Kernel 2/x86 と開発環境のコンソール接続は、実機環境の場合はシリアル (RS-232C) です
が、仮想環境では VMwareGateway によるソケット経由の中継で接続します。VMwareGateway
は Windows の「サービス」の一つとしてインストールします。
詳細については T-Kernel 2/x86 評価キット CD-ROM 内の『VMware サポートツールインス
トール方法説明書』をあわせてご参照ください。
(1) インストール先フォルダの作成「C:Y=Program FilesY=VMware」の下に「utilities」フォルダを作成します。

(2) 実行ファイルのコピー
T-Kernel 2/x86 評価キット CD-ROM 内の共通ソフトウェアのフォルダ (commonY=soft) にある「vmwaregateway.exe」を「C:Y=Program FilesY=VMwareY=utilities」の下にコピーします。
(3) サービスの登録Windows のコマンドプロンプトを起動します。
† Windows 8, 7 および Vista の場合は、コマンドプロンプトを右クリックメニューから管理者権限で起動してください。

「C:Y=Program FilesY=VMwareY=utilitiesY=vmwaregateway.exe」 を「/r」オプションを付けて実行します。パス名に空白が含まれるので、パス名は " で囲ってください (図 1.4)。

図 1.4

VMwareGateway のサービス登録(4) サービスの開始
サービスを開きます。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

1. ターゲット側実行環境のインストール

8† Windows 8 および 7 の場合 : 「コントロールパネル」→「システムとセキュリティー」→「管理ツール」→「サービス」
Windows Vista の場合 : 「コントロールパネル」→「システムとメンテナンス」→「管理ツール」→「サービス」
Windows XP の場合 : 「コントロールパネル」→「パフォーマンスとメンテナンス」→「管理ツール」→「サービス」「VMwareGateway」を選択し、右クリックしてメニューから「開始」を実行します (図 1.5)。

図 1.5

VMwareGateway のサービス開始(5) サービスの開始の自動化「VMWwareGateway」のプロパティを開き、「スタートアップの種類」を「手動」から「自動」に変更します (図 1.6)。これで次回のコンピュータの起動時からは自動的にサービスが開始されます。

図 1.6

1.4

VMwareGateway の開始自動化

T-Kernel 2/x86 のインストール

仮想環境 (VMware) または実機上に T-Kernel 2/x86 をインストールします。
詳細については T-Kernel 2/x86 評価キット CD-ROM 内の『評価キット取扱説明書』の「2 章ターゲット側ソフトウェアのインストール」をあわせてご参照ください。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

1. ターゲット側実行環境のインストール

9

パソコン上にはコンソール接続のための端末ソフト (「ハイパーターミナル」や「Tera Term
Pro」など) が必要です。
† Windows 8, 7 および Vista にはハイパーターミナルが付属しません。端末ソフトをお持ちでない場
合は「Tera Term Pro (バージョン 2.3)」を下記からダウンロードしてご利用ください。

http://hp.vector.co.jp/authors/VA002416/(1) 仮想マシンのコピー (仮想環境のみ)
仮想環境 (VMware) の場合

T-Kernel 2/x86 評価キット CD-ROM 内の「jp」フォルダの下にある「tkx86_vm」フォ
ルダを、フォルダごとマイドキュメント内の「My Virtual Machines」フォルダ内にコピーします。
† マイドキュメント内に「My Virtual Machines」フォルダがない場合は、フォルダを新規作成してください。

実機環境の場合不要ですので次へ進んでください。

(2) 端末ソフトの起動• Tera Term Pro の場合
Tera Term Pro を起動します。
• ハイパーターミナルの場合
Windows XP 上のハイパーターミナルの場合は、「スタート」→「すべてのプログラ
ム」→「アクセサリ」→「通信」→「ハイパーターミナル」を起動します。
† 「既定の Telnet プログラムにしますか?」と聞かれる場合がありますが、「はい」でも「いいえ」でもどちらでも構いません。
また市外局番などを聞かれる場合もありますが、これも実際に電話をかけるわけではありませんので、適当に入力して構いません。

名前とアイコンの選択では、適当な名前を入力して OK をクリックします (図 1.7)。

図 1.7
はじめてみよう T-Kernel 2/x86

ハイパーターミナルの起動
c 2008–2012 Personal Media Corporation

1. ターゲット側実行環境のインストール

10(3) 接続方法の設定
仮想環境 (VMware) の場合

VMwareGateway 経由で telnet で接続します。接続先は「localhost」、ポート番号
は「567」としてください。
• Tera Term Pro の場合「ファイル (F)」→「新規接続 (N)」を選択します。新規接続ダイアログで、「TCP/IP」
を選択し、ホストに「localhost」と入力し、Telnet にチェックを入れ、TCP ポート# に「567」を入力して OK をクリックします (図 1.8)。

図 1.8

仮想環境の場合の Tera Term Pro の設定• ハイパーターミナルの場合
接続方法に「TCP/IP (Winsock)」を選択します。ホストアドレスに「localhost」、
ポート番号は「567」を入力して、 OK をクリックします (図 1.9)。

図 1.9

仮想環境の場合のハイパーターミナルの設定

実機環境の場合
開発用パソコンと実機をシリアル (RS-232C) で接続します。開発用パソコンで使用する
シリアルポート (「COM1」など) を指定して、ポートの設定は次のように設定します。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

1. ターゲット側実行環境のインストール
ビット/秒
データビットパリティ
ストップビットフロー制御

11115200 bps
8 ビット
なし
1 ビット
ハードウェア• Tera Term Pro の場合「ファイル (F)」→「新規接続 (N)」を選択します。新規接続ダイアログが表示されますので、「シリアル」を選択し、使用するシリアルポート (「COM1」など) を指定して、 OK をクリックします。
続いて「設定 (S)」→「シリアルポート (P)」を選択します。シリアルポート設定
ダイアログが表示されますので、上記のように設定してください。
• ハイパーターミナルの場合「接続方法」の欄に使用するシリアルポート (「COM1」など) を選択して、 OKをクリックします。続いてポートの設定ダイアログが表示されますので、上記のように設定してください。
(4) ターゲットの CD-ROM からの起動
仮想環境 (VMware) の場合

T-Kernel 2/x86 評価キット CD-ROM をパソコンの CD-ROM ドライブに入れます。
「My Virtual Machines」フォルダ内の「tkx86_vm」内にある「T-Kernel_x86.vmx」
を起動します。

VMware Player のウィンドウが開き、しばらくすると「Operating System not found」と出ますが、これは仮想マシンに CD-ROM ドライブが接続されていないためです。そこで VMware Player のウィンドウ下部の「CD/DVD(IDE)」アイコン (または VMware
Player のツールバー →「仮想マシン」→「取外し可能デバイス」→「CD/DVD(IDE)」)をクリックして「接続」を選択します (図 1.10)。

図 1.10

VMware Player の CD-ROM ドライブ接続† USB 接続の CD/DVD ドライブをご利用の場合でも、「CD/DVD(IDE)」を指定してくだ
さい。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

1. ターゲット側実行環境のインストール

12

VMware Player のウィンドウ内をクリックし、矢印のマウスカーソルが消えるのを確認します。
Ctrl + Alt + Insert キーを押して仮想マシンを再起動します。これで CD-ROM
から起動します。
実機環境の場合

T-Kernel 2/x86 評価キット CD-ROM を実機の CD-ROM ドライブに入れて、実機の電源を入れて起動します。
† 実機の BIOS 設定で CD-ROM ブートを行うかどうか選択できる場合は、CD-ROM ブー
トを行えるように BIOS を設定してください。

(5) 起動の確認
ターゲット側の画面 (仮想環境では VMware Player のウィンドウ上、実機環境では実機に接続されたディスプレイ) には T-Kernel のロゴマークが表示され、それからコンソール画
面が表示されます。
一方、開発用パソコンの端末ソフト上では、 ←-(Enter) キーを入力すると「[/SYS]%」のプ
ロンプトが返ってきます (図 1.11)。

図 1.11

端末ソフト上のプロンプト† ターゲット側の画面のコンソールでも操作可能ですが、以下のインストール作業については、
ターゲット側の画面のコンソールではなく、開発用パソコンの端末ソフト上で行なってください。

(6) パーティションの設定
端末ソフト上で hdpart コマンドを起動して、インストールするディスクのパーティションを設定し、ブート区画を設定します。デバイス名は「hda」(ディスク全体) を指定します。
以下に例を示します。

[/SYS]% hdpart -m1 hda ←hda

[C:1017

H:255

はじめてみよう T-Kernel 2/x86

S:63— hdpart コマンドの起動
B:16357785 (7987 MB)]c 2008–2012 Personal Media Corporation

1. ターゲット側実行環境のインストール
No System
Boot StartCHS
1 00 ------ 00
0: 0: 02 00 ------ 00
0: 0: 0
3 00 ------ 00
0: 0: 0
4 00 ------ 00
0: 0: 0EndCHS0: 0: 00: 0: 00: 0: 00: 0: 0

13
SecNo
0
0
0
0

** Create/Delete/Boot/Edit/Quit ? c ←Create PartNo (1-4) ? 1 ←Size [GB/MB/KB,All] (<7987MB) ? a ←No System
Boot StartCHSEndCHS
1 13 BTRON 00
0: 1: 1 1018: 57:24
2 00 ------ 00
0: 0: 00: 0: 0
3 00 ------ 00
0: 0: 00: 0: 0
4 00 ------ 00
0: 0: 00: 0: 0

SecCnt
0
0
0
0

Size
0 KB
0 KB
0 KB
0 KB

— 区画作成— 最初の区画— 区画サイズ

SecNo SecCnt
Size
63 16357722 7987 MB
0
0
0 KB
0
0
0 KB
0
0
0 KB

** Create/Delete/Boot/Edit/Update/Quit ? b ←Boot PartNo (1-4,Clear) ? 1 ←No System Boot
1 13 BTRON 80
2 00 ------ 00
3 00 ------ 00
4 00 ------ 00

StartCHSEndCHS
0: 1: 1 1018: 57:24
0: 0: 00: 0: 00: 0: 00: 0: 00: 0: 00: 0: 0— ブート区画— 最初の区画

SecNo SecCnt
Size
63 16357722 7987 MB
0
0
0 KB
0
0
0 KB
0
0
0 KB

** Create/Delete/Boot/Edit/Update/Quit ? u ←** hda: Updated Master Boot Block[/SYS]%— 区画更新† 既存の区画に T-Kernel 2/x86 評価キットを上書きインストールする場合は、まず d (delete)
で区画を削除してから、c (create) で区画を再作成してください。
† 旧製品 (T-Kernel/x86 評価キット) からのバージョンアップの場合も、いったん旧製品をインストールした区画を削除してから、新規に区画を作成してインストールしてください。

(7) フォーマット
端末ソフト上で formatsys コマンドを使ってディスクをフォーマットします。デバイス名
は、ディスクの最初の区画なら「hda0」、2 番目の区画なら「hda1」を指定します。必ず「-b」オプション (ブートコード書込) が必要です。また「-x」オプションも通常指定してください。

[/SYS]% formatsys -b -x hda0 SYSTEM ←— formatsys コマンドの起動
Format pcb0 [STD] SYSTEM
Logical Formatting...
Writing BootCode...
Disk Format Success.
.
ATYPE ATR NREC NREF SIZE BLK MTIME
NAME
0003 ----- 1 0
1 35812 10 121103 16:23:39 SBOOT
0003 ----- 1 0
1 242847 61 121103 16:23:40 KERNEL.SYS
0003 ----- 1 0
1 109984 28 121103 16:23:40 KDRIVER
0003 ----- 1 0
14799
3 121103 16:23:40 SYSCONF
0003 ----- 1 0
11479
2 121103 16:23:40 DEVCONF[/SYS]%† ここでは format コマンドではなく formatsys コマンドをご使用ください。
† 各ファイルの日付時刻はインストール時の現在時刻になります。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

1. ターゲット側実行環境のインストール

14(8) ディスクの接続
前項でフォーマットしたディスクの区画を接続します。

[/SYS]% att hda0 HD ←— ディスク接続
hda0 -> HD[/SYS]% cd /HD ←— カレントディレクトリ設定[/HD]% ls -l ←— ファイル一覧
ATYPE ATR NREC NREF SIZE BLK MTIME
NAME
0003 ----- 1 0
1 35812 10 121103 16:23:39 SBOOT
0003 ----- 1 0
1 242847 61 121103 16:23:40 KERNEL.SYS
0003 ----- 1 0
1 109984 28 121103 16:23:40 KDRIVER
0003 ----- 1 0
14799
3 121103 16:23:40 SYSCONF
0003 ----- 1 0
11479
2 121103 16:23:40 DEVCONF【トラブル シューティング】 /HD にこれらのファイルがない場合は、正しくインストールされていません。
「cd /SYS」でカレントディレクトリを元に戻し、「det hda0」でディスクを切断してから、インストール手順を再度見直してください。

(9) CD-ROM の接続
まず「df」コマンドで CD-ROM のデバイス名を確認します。/SYS に対するデバイス名が
例えば「hdc2」であれば、インストールデータは数字を 0 に変えた「hdc0」に格納されています。その区画を接続します。

[/HD]% df ←— ディスク使用状況の表示
PATH DEVTOTALFREE USED UNIT MAXFILE NAME/SYS hdc2
3100
22 99% 1024
256 PM:TK2-x86/HD hda0 8178860 8176304
0% 409665535 SYSTEM[/HD]% att -c hdc0 CD ←— CD-ROM 接続
hdc0 -> CD (ReadOnly)(10) 基本システムのインストール
基本システムのインストーラを展開して実行します。

[/HD]% expf -U /CD/JP/SOFT/INSTALL.BZ ←[/HD]% install /HD ←基本システムのインストールが完了しました。
[/HD]% rm -r install ←-— アーカイブ展開— インストーラ実行— インストーラ削除(11) PMC T-Shell のインストール
T-Shell のインストーラを展開して実行します。
[/HD]% expf -U /CD/JP/SOFT/TSHELL.BZ ←[/HD]% install_tshell /HD ←インストールが完了しました。再起動してください。
[/HD]% rm -r install_tshell ←-はじめてみよう T-Kernel 2/x86— アーカイブ展開— インストーラ実行— インストーラ削除

c 2008–2012 Personal Media Corporation

1. ターゲット側実行環境のインストール

15(12) T-Kernel 2/x86 の再起動
exit コマンドを使って終了させます。
[/HD]% exit ←<< EXIT cli >>[IMS]% exit<< SYSTEM SHUTDOWN >>— CLI 終了

そのあと T-Kernel 2/x86 評価キット CD-ROM をドライブから取り出して、再起動させます。
仮想環境 (VMware) の場合「My Virtual Machines」フォルダ内の「tkx86_vm」内にある「T-Kernel_x86.vmx」
を起動します。ショートカットを作成しておくとよいでしょう。
実機環境の場合実機の電源を入れて起動します。
ターゲット側の画面 (仮想環境では VMware Player のウィンドウ上、実機環境では実機に接続されたディスプレイ) に図 1.12 のような PMC T-Shell のウィンドウ画面が表示されます。

図 1.12

PMC T-Shell の初期ウィンドウ

一方端末ソフト上には、T-Kernel 2/x86 の起動メッセージが続いた後、「[/SYS]%」と表示されます。

df コマンドを使うと起動ディスク (/SYS) のデバイス名が分かります。
[/SYS]% df ←PATH DEVTOTAL/SYS hda0 265040— ディスクの確認
FREE USED UNIT MAXFILE NAME
239752
9% 409622528 SYSTEM(13) 画面サイズと色数の設定
画面はデフォルトでは 1024 × 768、65536 色になっています。これを変更したい場合は次のようにデバイスコンフィグレーションの VIDEOMODE を設定します。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

1. ターゲット側実行環境のインストール

16[/SYS]% devconf VIDEOMODE 2 ←+ 0: VIDEOMODE 2[/SYS]% exit ←<< EXIT cli >>[IMS]% exit
1[IMS]% exit -3 ←<< SYSTEM REBOOT >>— 640 × 480、65536 色の場合
— CLI 終了

— 再起動

† サポートしている表示モードと VIDEOMODE の数値の関係については、T-Kernel 2/x86 評価
キット CD-ROM 内の『T-Kernel 2/x86 実装仕様書』の「4.6 スクリーン (ディスプレイ) ドラ
イバ」をご参照ください。
† devconf コマンドのかわりに、PMC T-Shell の画面で右クリックして「システム環境設定」→「画面サイズ色数」で設定することも可能です。設定後に再起動が必要です。

(14) ターゲットシステムの終了
ターゲット側のシステムを終了するには、マウスの右ボタンをクリックするとメニューが表示されますので、「終了」を選択してください。「システムを終了しますか?」と確認ダイア
ログが出ますので、 終了 を選択してください。
デバッグモードの場合は、さらに端末ソフト上から exit コマンドを 2 回使って終了させてください。

[/SYS]% exit ←<< EXIT cli >>[IMS]% $logon E
pid = 13 (pri = -1)[IMS]% exit 1[IMS]% exit ←<< SYSTEM SHUTDOWN >>— CLI 終了

— システム終了(15) 端末ソフトの終了
端末ソフト (Tera Term Pro やハイパーターミナルなど) を終了します。
† この章ではターゲット側のインストールのためにハイパーターミナルなどの端末ソフトを使いましたが、次の章で開発環境として Eclipse をインストールすれば、コンソールは Eclipse 上の gterm から使う形になります。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

2. 開発環境のインストール

172

開発環境のインストール

2.1

Cygwin のインストール

Windows パソコン上で開発環境を使うには、まず Cygwin をインストールする必要があります。
詳細については T-Kernel 2/x86 評価キット CD-ROM 内の『Cygwin インストール方法説明書』をあわせてご参照ください。
† Windows のログイン時のアカウントは、管理者権限としてください。制限されたアカウントの場合、
ソフトウェアのインストールがうまくいきません。
また Windows のログイン時のアカウント名は、半角英数字のみとしてください。アカウント名に全
角文字や半角空白などが入ると、Cygwin で不都合が生じる場合があります。
† 既に Cygwin がインストールされている場合でも、バージョンが古かったり、必要なモジュールが足りない場合も考えられますので、『Cygwin インストール方法説明書』をご一読の上、必要に応じて再インストールをお願いいたします。

(1) パッケージの展開
T-Kernel 2/x86 評価キット CD-ROM 付属 CD-ROM 内の共通ソフトウェアのフォルダ(commonY=soft) にある Cygwin システムパッケージ「cygwin_d-1.7.17-1.zip」を、いったんデスクトップなどに保存した上で、Windows のエクスプローラでマウスの右ボタンをクリックして「すべて展開 (A)...」を実行してください。展開先はハードディスクのどこでも構いません。
† ファイル名の中のバージョン番号は上記と異なる場合があります。

(2) インストーラの起動展開したフォルダ内にあるインストーラ setup.exe を起動します (図 2.1)。

図 2.1

Cygwin インストーラの起動

インストーラが起動したら 次へ をクリックします。

(3) インストールタイプの選択「Install from Local Directory」を選択して 次へ をクリックします。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

2. 開発環境のインストール

18(4) インストールディレクトリの選択
Cygwin をインストールするディレクトリを選択します。デフォルトでは「C:Y=cygwin」になっています。支障がなければデフォルトのままにしておきます (図 2.2)。

図 2.2

インストールディレクトリの選択「Install For」は「All Users」を選択してください。これはデフォルトです。
次へ をクリックします。

(5) ローカルパッケージディレクトリの選択(1) でインストールパッケージを展開したフォルダを指定して、 次へ をクリックします。
(6) インストールするパッケージの選択
ファイルのチェックが行われた後、インストールパッケージの選択画面になります。
† Cygwin 1.7 系列の最初のインストール時には「Setup Alert」ダイアログが表示されます。内容をよく読んでから作業を行ってください。旧バージョンの Cygwin を使用している場合、何らかの影響が出る可能性があります。

「All」の右の「Default」をクリックして「Install」の状態にしてから 次へ をクリックします (図 2.3)。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

2. 開発環境のインストール

19

図 2.3

インストールするパッケージの選択(7) インストール
インストールが開始されます。時間がかかりますので、進度が 100% になるまでしばらくお待ちください。

(8) アイコンの作成「Create icon on Desktop」を選択して 完了 をクリックします。
「プログラム互換性アシスタント」が表示される場合は、「このプログラムは正しくインストールされました」をクリックします。

(9) ホームディレクトリの初期化
デスクトップ上の「Cygwin Terminal」アイコンをダブルクリックして Cygwin を起動します。最初の起動時にホームディレクトリが初期化されます。

(10) gmake へのリンクの作成
gmake で make が起動するように、Cygwin 上で次のようにシンボリックリンクを作成します。
$ cd /usr/bin ←$ ln -s make gmake ←(11) Perl へのリンクの作成
Perl がパス名 /usr/local/bin/perl で起動するように、Cygwin 上で次のようにシンボ
リックリンクを作成します。
$ cd /usr/local/bin ←$ ln -s /usr/bin/perl ←-はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

2. 開発環境のインストール

20(12) 日本語 EUC の設定
もし開発環境を実際に使うアカウントが今までの管理者アカウントと異なる場合は、exit
コマンドで Cygwin のウィンドウを閉じ、実際に使うアカウントで Windows にログオン
し直してください。デスクトップ上の「Cygwin Terminal」アイコンをダブルクリックしてCygwin を起動します。最初の起動時にホームディレクトリが初期化されます。
ホームディレクトリ上の .bashrc に「LANG=ja_JP.eucJP」という行を追加します。
例えば次のように操作します。

$ cd ←$ echo LANG=ja_JP.eucJP >> .bashrc ←また、Cygwin のウィンドウ上でマウスの右ボタンをクリックしてメニューを開き、「Options」
を選択します。「Text」を選択し、「Locale」を「ja_JP」に、「Character set」を「eucJP」に設定して、 OK をクリックします。

exit コマンドで Cygwin のウィンドウを閉じます。

2.2

Eclipse のインストール

統合開発環境の Eclipse をインストールします。
詳細については T-Kernel 2/x86 評価キット CD-ROM 内の『Eclipse インストール方法説明書』
をあわせてご参照ください。

(1) Java 実行環境のインストール
Eclipse の実行には Java 実行環境が必要です。まだインストールされていない場合、またはバージョンが古い場合は、http://www.java.com/ からダウンロードしてインストール
してください。
† 64 ビット Windows の場合、32 ビット用の Java 実行環境が必要です。32 ビット用の Java 実
行環境をダウンロードしてインストールしてください。

(2) Eclipse システムパッケージの展開
T-Kernel 2/x86 評価キット CD-ROM 内の共通ソフトウェアのフォルダ (commonY=soft) にある以下のファイルをいったんデスクトップなどに保存した上で、Windows のエクスプロー
ラでマウスの右ボタンをクリックして「すべて展開 (A)...」を実行してください。展開先は
C ドライブの直下 (C:Y=) を指定してください。
Eclipse+CDT

eclipse-cpp-indigo-SR2-incubation-win32.zip† ファイル名の中のバージョン番号は上記と異なる場合があります。
† 展開先として C:Y= を指定すると、実際には C:Y=eclipse というフォルダが作成され、その下に展開されます。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

2. 開発環境のインストール

21

T-Kernel 2/x86 評価キット CD-ROM 内の日本語版ソフトウェアのフォルダ (jpY=soft) にある以下のファイルをいったんデスクトップなどに保存した上で、Windows のエクスプロー
ラでマウスの右ボタンをクリックして「すべて展開 (A)...」を実行してください。展開先は「C:Y=eclipse」を指定してください。
日本語化プラグイン

pleiades_1.3.4.zip† ファイル名の中のバージョン番号は上記と異なる場合があります。

「C:Y=eclipseY=eclipse.ini」をテキストエディタで開き、最後に次の 1 行を追加します。

-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar† 改行コードが LF のため、メモ帳以外のテキストエディタをご使用ください。

(3) ショートカットの作成「C:Y=eclipseY=eclipse.exe」のショートカットをデスクトップ上に作成します。

2.3

T-Kernel 開発環境のインストール

Eclipse に T-Kernel 開発用プラグインを追加インストールします。
詳細については T-Kernel 2/x86 評価キット CD-ROM 内の『Eclipse 用 T-Kernel 開発環境インストール方法説明書』と『GNU 開発環境 (Eclipse 版) 説明書』をあわせてご参照ください。
(1) T-Kernel 開発用 Eclipse プラグインの展開
T-Kernel 2/x86 評価キット CD-ROM 内の日本語版ソフトウェアのフォルダ (jpY=soft) にある以下の 2 つのファイルをいったんデスクトップなどに保存した上で、Windows のエク
スプローラでマウスの右ボタンをクリックして「すべて展開 (A)...」を実行してください。
展開先は「C:Y=eclipse」を指定してください。
プラットホーム共通部分
各機種対応部分

com.t_engine4u.te.1.2.0.zip
com.t_engine4u.tl.pcat.1.2.0.zip† zip アーカイブの展開は、Windows 標準の zip 展開機能で展開してください。他のソフトを使って展開すると、ソフトによっては正しく展開できない場合があります。
† ファイル名の中のバージョン番号は上記と異なる場合があります。

(2) T-Shell 開発用追加モジュールの展開
T-Kernel 2/x86 評価キット CD-ROM 内の日本語版ソフトウェアのフォルダ (jpY=soft) にある以下のファイルをいったんデスクトップなどに保存した上で、Windows のエクスプロー
ラでマウスの右ボタンをクリックして「すべて展開 (A)...」を実行してください。展開先
は「C:Y=eclipseY=pluginsY=com.t_engine4u.tl.pcat.1.2.0_1.2.0Y=te」を指定してくだ
さい。
T-Shell 開発用追加モジュール
はじめてみよう T-Kernel 2/x86

com.t_engine4u.tsh.pcat.1.2.0.zip
c 2008–2012 Personal Media Corporation

2. 開発環境のインストール

22† ファイル名の中のバージョン番号は上記と異なる場合があります。
† bapplY=templates は置き換えられます。

(3) Eclipse の起動
Eclipse のショートカットをダブルクリックして Eclipse を起動します。図 2.4 のような起動画面が表示され、それからワークスペースの選択ダイアログが表示されます。

図 2.4

Eclipse の起動画面【トラブル シューティング】「Java Runtime Environment がない」と表示される場合は、Java 実
行環境のインストールをご確認ください。

(4) ワークスペースの選択
起動時にワークスペースの選択を聞かれます。ここではプロセスベースのプログラムを作成するための標準的なワークスペースである「C:Y=teY=bappl」としてください。
† ワークスペースとは、プロジェクトを保管するフォルダのことです。通常、プロセスベースのプログラムを作成する場合は「C:Y=teY=bappl」、T-Kernel ベースのプログラムを作成する場合
は「C:Y
=teY
=kappl」、デバイスドライバを作成する場合は「C:Y=teY=driver」をワークスペースとするのが標準的ですが、これとは違う場所にワークスペースを作成しても構いません。

(5) ワークベンチにジャンプ「ようこそ」ビューが表示されますので、ワークベンチをクリックします (図 2.5)。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

2. 開発環境のインストール

23

図 2.5

Eclipse の「ようこそ」ビュー(6) T-Engine 開発パースペクティブを開く
ツールバーの「ウィンドウ」→「パースペクティブを開く」→「その他」 を選択します。
「パースペクティブを開く」の中の「T-Engine 開発」を選択して OK をクリックします。
(図 2.6)。

図 2.6

T-Engine 開発パースペクティブの選択(7) T-Engine 開発環境の設定
ツールバーの「ウィンドウ」→「設定」 で設定ダイアログを開きます。
設定ダイアログの左側の中から「T-Engine 開発環境」を選択して内容を確認します。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

2. 開発環境のインストール

24

図 2.7

T-Engine 開発環境の設定

Cygwin ディレクトリの欄は、Cygwin をインストールしたディレクトリ (C:Y=cygwin など)を指定します。
te vcom の引数の欄は、次のように指定します。
仮想環境 (VMware) の場合

te vcom の引数として「-l localhost」を指定します。
† -l はマイナス・エルです。

実機環境の場合

COM ポート番号として COMn を使う場合、te vcom の引数として「-B -l /dev/ttyS(n−1)」を指定します。
† -B は 通信速度 115200bps、-l はマイナス・エルで、ラインデバイス名を指定します。
COM ポート番号から 1 を引いた値がラインデバイス名になります。例えば COM1 であれ
ば「-B -l /dev/ttyS0」、COM8 であれば「-B -l /dev/ttyS7」を設定してください。

(8) ワークスペースの設定
設定ダイアログの左側の中から「一般」の「ワークスペース」を選択して、次の設定を行います (図 2.8)。

• 「自動的にビルド」はチェックを入れた状態にします。
• 「テキスト・ファイル・エンコード」の「その他」をチェックして、「EUC-JP」を選択します。選択肢にない場合は直接「EUC-JP」とキー入力します。
• 「新規テキスト・ファイルの行区切り文字」の「その他」をチェックして、「Unix」を選択します。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

2. 開発環境のインストール

25

図 2.8

ワークスペースの設定

OK をクリックして設定ダイアログを閉じます。
なお環境設定はワークスペースごとに行う必要があります。プロセスベースのワークスペー
ス「C:Y
=teY
=bappl」での設定が終わったら、ツールバーの「ファイル」→「ワークスペー
スの切り替え」でワークスペースを「C:Y=teY=kappl」(T-Kernel ベースのプログラム用のワークスペース) に切り替えて、同様の設定を行ってください。さらにワークスペースを
「C:Y
=teY
=driver」(デバイスドライバ用のワークスペース) に切り替えて、同様の設定を行ってください。

(9) ターゲット側との接続の確認
ターゲットと通信を行うため、中継プログラム (te vcom) とターミナルエミュレータ (gterm)を起動します。
ツールバーの「実行」→「外部ツール」→「外部ツールの構成…」を選択します。外部ツー
ル構成のダイアログが表示されたら、左側の「プログラム」の左の「+」をクリックすると
te vcom と gterm の設定が表示されます。設定内容は通常変更する必要はありません。
まずは te vcom を選択し、 実行 をクリックします (図 2.9)。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

2. 開発環境のインストール

26

図 2.9

te vcom の起動

続いて同様の手順で外部ツール構成のダイアログから gterm を起動してください。コンソー
ルに gterm の起動メッセージが表示されます。
ターゲット側の T-Kernel 2/x86 が起動した状態で、gterm のコンソール上で ←-(Enter)
キーを入力すると、ターゲット側から返されるプロンプト「[/SYS]%」が表示されます (図2.10)。

図 2.10gterm 上に表示されたターゲット側プロンプト

これらの外部ツール te vcom と gterm は、一度起動すると次回からはツールバーの外部
ツールのプルダウンリストにショートカットが表示されますので、ショートカットを使って起動できます。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

3. 開発手順

3

開発手順

3.1

ターゲット側と開発環境側の起動

27

開発を始めるには、まずターゲット側と開発環境側をそれぞれ次の手順で起動します。

(1) ターゲット側の起動
ターゲット側で T-Kernel 2/x86 を起動します。
仮想環境 (VMware) の場合「My Virtual Machines」フォルダ内の「tkx86_vm」内にある「T-Kernel_x86.vmx」
を起動します。ショートカットを作成しておくとよいでしょう。

VMware のウィンドウ内に T-Shell の初期ウィンドウ (1 章の図 1.12) が表示されれば正常です。
【トラブル シューティング】前回の終了状況によっては、そうならない場合もあります。その場合は VMware Player の上辺にある 「Player」→「Troubleshoot」→「Reset」 でリセットをかけてください。

実機環境の場合実機の電源を入れて起動します。
実機のディスプレイ上に T-Shell の初期ウィンドウが表示されれば正常です。

(2) Eclipse の起動
Eclipse を起動します。
最初にワークスペースの選択を聞かれますので、プロセスベースの場合は「C:Y=teY=bappl」とします。

(3) te vcom と gterm の起動
T-Kernel 2/x86 と通信を行うには、ツールバーの外部ツールの▼をクリックして、中継プ
ログラム (te vcom) と端末エミュレータ (gterm) を起動しておく必要があります。
† Eclipse 上の開発では、通常はコンソールからコマンドを手で入力しなくても、Eclipse のダイ
アログからプログラムの転送や実行ができるようになっています。しかしこの場合でも Eclipseと T-Kernel 2/x86 の間の通信はコンソールを使いますので、通信が確立されていないとプログラムの転送や実行もできません。
したがって te vcom や gterm を必ず起動しておく必要があります。とくに Eclipse を起動した
直後や、ワークスペースを切り替えた直後は、te vcom や gterm は起動されていませんので、毎回起動する必要があります。

Eclipse のコンソールウィンドウの gterm で、 ←-(Enter) キーを何回か押して、CLI のプ
ロンプト「[/SYS]%」が表示されることを確認します。
† 複数の端末ソフトを同時に T-Kernel 2/x86 に接続しないでください。具体的には、Eclipse 上
で te vcom や gterm を起動する際は、ハイパーターミナルや TeraTerm などの他の端末ソフトは接続しない状態にしてください。また te vcom や gterm を 2 個以上重ねて起動しないでください。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

3. 開発手順28【トラブル シューティング】 CLI のプロンプトが出ていない場合 (T-Monitor のプロンプト「TM>」が出ているなど) は、ターゲット側にリセットをかけて再起動してください。仮想環境の場合
は VMware Player の上辺にある 「Player」→「Troubleshoot」→「Reset」 でリセットがか
かります。

3.2

コンソールの利用

T-Kernel 2/x86 は開発に便利な各種ツール類が付属しています。プログラムの転送や実行については、gterm のコンソールからコマンドを手で入力しなくても、Eclipse のダイアログからプ
ログラムの転送や実行ができるようになっています。しかしそれ以外のさまざまな用途のために、必要に応じて gterm のコンソールからこれらのツール類をご利用ください。
CLI (Command Line Interpreter)
プロセスベースのコマンドラインインタプリタです。開発に必要な、特にファイル関連操作な
どの強力な機能を提供します。プロンプトは標準では「[/SYS]%」です。詳しくは T-Kernel
2/x86 評価キット CD-ROM 内の『開発ツール説明書』の「3. CLI 説明書」をご覧下さい。
† CLI のプロンプトは、cd コマンドでチェンジディレクトリすると、その変更先ディレクトリ
名になります。

CLI 上で動作するユーティリティ
hdpart (区画作成)、format (フォーマット) などの各種ユーティリティーが CLI 上で使える外部コマンドとしてシステムディスク上に格納されています。詳しくは『開発ツール説明書』の「4. ユーティリティ」、「5. UNIX(ファイル) エミュレータコマンドツール」「6. ネッ
トワークユーティリティ」をご覧下さい。
IMS (Initial Monitor System)
T-Kernel ベースのモニタです。プロンプトは標準では「[IMS]%」です。詳しくは『開発ツール説明書』の「2. IMS」をご覧下さい。
T-Monitor
最も基本的なモニタです。ハードウェアレベルの操作などに威力を発揮します。プロンプト
は「TM>」です。

T-Monitor のコマンド一覧は『T-Monitor 仕様書』の「3.3. コマンド一覧」をご覧下さい。
さらに T-Kernel 2/x86 で追加された機能もあります。追加されたコマンドは『実装仕様書』の「2. T-Monitor 実装仕様」をご覧下さい。
以下に CLI と T-Monitor の簡単な実習例を示します。

(1) CLI のプロンプト確認
Eclipse のコンソールウィンドウの gterm 上で ←-(Enter) キーを何回か押して、CLI のプ
ロンプト「[/SYS]%」が表示されることを確認します。
[/SYS]%
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

3. 開発手順

29(2) CLI コマンド一覧
CLI の “?” コマンドを入力して、CLI のコマンド一覧を表示させます。
[/SYS]% ? ←att

det

eject

CLI コマンド一覧
cd
ls
fs

…(後略)…

(3) CLI コマンド詳細
CLI の “?” コマンドを使って “ls” コマンドの詳細ヘルプを表示させます。
[/SYS]% ? ls ←ls [-f][-F][-l|-t] [<パス名>..]<パス名>のファイルの直下にあるファイル一覧を表示する…(後略) …
(4) ファイル一覧
CLI の “ls” コマンドを使ってファイルの一覧を表示させます。
[/SYS]% ls ←SBOOTKERNEL.SYS

SYSCONF… (後略) …

(5) T-Monitor への移行
CLI の「#」コマンドを使って T-Monitor へ移行します。
[/SYS]% # ←TM>
(6) T-Monitor コマンド一覧
T-Monitor の “?” コマンドを使って T-Monitor のコマンド一覧を表示させます。
TM> ? ←--- Command List :"? command" for details --DumpByte/Half/Word(D/DB/DH/DW) … (後略) …
(7) レジスタ表示
T-Monitor の “R”(Register) コマンドを使って CPU レジスタの状態を表示させます。
TM> r ←EIP : 001117D7

EFLAGS: 00001246 IF:1 … (後略) …

(8) T-Monitor からの復帰
T-Monitor の “G” (Go) コマンドを使って CLI へ復帰します。
TM> g ←[/SYS]%

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

3. 開発手順

3.3

30

プロセスベースと T-Kernel ベース

T-Kernel 2/x86 上のプログラムは、大きく分けると「プロセスベースのプログラム」と 「TKernel ベースのプログラム」の二つに分類されます。(このほか「モニタベースのプログラム」もありますが、本書では扱いません)
プロセスベースのプログラム

T-Kernel Extension 上で動作するプログラムです。
一般のアプリケーションを作成するのに向いています。
メモリ保護が効くので、プロセスに不具合があってもシステム全体に悪影響を及ぼす可能性は少なくなります。
メモリ空間としては、一つのプロセスに対して一つの独立したローカル空間が割り当てられ、そのローカル空間上で動作します。ただしプロセス内にサブタスクを生成することができ、その場合は一つのプロセス内の複数のタスクが同じ空間を共有します。
プロセスの実行では、まず main() 関数が実行され、main() 関数が終了するとプロセスも終了します。
プロセスベースのプログラムから使える API については、T-Kernel 2/x86 評価キット CDROM 内の以下のドキュメントをご参照ください。

• 『T-Kernel Extension 説明書』
プロセスやタスクなどの基本機能、ファイル、イベントなどの仕様書です。

• 『PMC T-Shell 説明書』、『PMC T-Shell プログラミング解説書』
画面描画、フォント、GUI、ネットワーク (TCP/IP) などの仕様書と解説書です。
† T-Shell の機能は基本的にはプロセスベース専用です。

• 『ライブラリ説明書』
C 言語標準ライブラリなどの説明書です。fopen() などのファイル操作ライブラリ(stdio.h) も含んでいます。
• 『デバイスドライバ説明書』
デバイスドライバを呼び出す場合に必要となる仕様書です。

T-Kernel ベースのプログラム
T-Kernel の機能を直接使うプログラムです。
ハードウェア制御や割込みなどを扱うことができるため、デバイスドライバなどを作成するのに向いています。
メモリ保護は効きません。
メモリ空間は全体で一つの空間を共有します。システムの共有空間内に複数の T-Kernel ベースのプログラムがロードされ常駐する形です。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

3. 開発手順

31

T-Kernel ベースのプログラムは lodspg コマンドで共有空間上にロードします。この時にmain() 関数が呼ばれ、第一引数 ac は渡される引数の個数を示します。通常この中でタスクやハンドラの生成などの初期化処理を行います。
また unlspg コマンドでアンロードすることができます。この時にも main() 関数が呼ばれ、第一引数 ac はマイナスの値です。通常この中で、最初に生成したタスクやハンドラの削除などの後処理を行います。

T-Kernel ベースのプログラムから使える API については、T-Kernel 2/x86 評価キット
CD-ROM 内の以下のドキュメントをご参照ください。
• 『T-Kernel 仕様書』
タスクやセマフォ、割込みハンドラなどのリアルタイム OS としての基本機能 (TKernel/OS) と、デバイスドライバ管理などの機能 (T-Kernel/SM) などの仕様書です。

• 『ライブラリ説明書』
C 言語標準ライブラリなどの説明書です。
† ライブラリ説明書に書かれたライブラリは、一部にプロセスベース専用、T-Kernel ベース専用のものもありますが、それ以外はどちらからも利用可能です。

• 『デバイスドライバ説明書』
デバイスドライバを作成したりデバイスドライバを呼び出す場合に必要となる仕様書です。
† デバイスドライバを呼び出すのはプロセスベースでも T-Kernel ベースでもどちらでも可能ですが、デバイスドライバを作成できるのは T-Kernel ベースだけです。

3.4「Hello, world」プロセスベース編

ここではまず有名な「Hello, world」プログラムを、プロセスベースで作成してみましょう。詳
細については『GNU 開発環境 (Eclipse 版) 説明書』をあわせてご参照ください。

(1) ワークスペースの指定
プロセスベースのプログラムですので、Eclipse 起動時にワークスペースとして「C:Y=teY=bappl」
を指定してください。
既に別のワークスペースで Eclipse が起動している場合は、ツールバーの「ファイル」→「ワークスペースの切り替え」でワークスペースを「C:Y=teY=bappl」に切り替えてください。
† ワークスペースを切り替えると Eclipse がいったん終了して te vcom と gterm も終了します
ので、再度 te vcom と gterm を順番に起動する必要があります。その上で Eclipse のコンソー
ルウィンドウの gterm で、 ←-(Enter) キーを何回か押して、CLI のプロンプト「[/SYS]%」が表示されることを確認しておきます。

(2) プロジェクトの新規作成
テンプレートを使ってプロジェクトを新規作成します。
「C/C++ プロジェクト」ビュー内で右クリックして (またはツールバーの「ファイル」から)、「新規」→「T-Engine C/C++ プロジェクト」を選択して、新規プロジェクト作成ダ
イアログで以下のように入力します (図 3.1)。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

3. 開発手順

32

図 3.1

新規プロジェクト作成ダイアログ• プロジェクト名:
プロジェクト名は自由につけることができますが、ここでは例えば「hello」とします。

• ターゲット:
複数の機種のプラグインをインストールしている場合は、ここでターゲットの機種を選択します。

• プログラムタイプ:「Process Base」を指定します。ワークスペースを「C:Y=teY=bappl」としていれば、「ワークスペース名による自動決定」のままでも自動的にプロセスベースになります。

• テンプレート:
チェックを入れて、テンプレートをここでは「gdbsample:gdb 操作のサンプル」を選択します。

• 出力ディレクトリの生成:チェックを入れます。
最後に 完了 をクリックするとプロジェクトが自動生成されます。

(3) ソースの作成「C/C++ プロジェクト」ビュー内に「hello」プロジェクトが生成されますので、ダブルクリックして開くとソースプログラムなどが参照できます。
ソースを次のように修正して、「Hello, world」を作成しましょう。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

3. 開発手順33• hello/src/main.c :たとえば以下のように修正してください。

/* Hello, world (プロセスベース) */#include <basic.h>/* 基本共通ヘッダ */#include <stdio.h>/* printf() など */W main( W ac, TC *av[] ){printf( "Hello, worldY=n" );
return 0;}
修正したら、ツールバーの「ファイル」→「保管」で修正を保存します。
† W や TC などは、T-Kernel 仕様書で定義された型です。ここではプロセスにコマンドライ
ン引数を渡す意味で使っています。また return 0 としているのは、プロセス終了時に終了コードとして値 0 を返すためです。
詳細は『T-Kernel Extension 説明書』などをご参照ください。

• hello/src/Makefile :作成対象は「TARGET = hello」として、作成対象 (メイクしてできる実行ファイル名)を hello に変更します。
ソースファイルは「SRC = main.c」とします。(sub.c は削除します)
修正したら、ツールバーの「ファイル」→「保管」で修正を保存します。

• hello/src/sub.c, hello/src/sub.h :今回は不要なので削除します。右クリックメニューの中の「削除」で削除できます。

(4) メイク
メイクするターゲットとして「C/C++ プロジェクト」ビュー内の「hello/pcat/Makefile」を選択した上で、ツールバーの「プロジェクト」→「T-Engine
Target の Make all」でメイクします。
メイクが成功すると、「hello/pcat/」の下に「hello」という名前で実行ファイルが生成されます ( . で表示されます)。
【トラブル シューティング】「ビルダー起動中のエラー」が発生する場合は、「hello/pcat/Makefile」
を選択しているか、いまいちどご確認ください。
【トラブル シューティング】「makedeps: Command not found」と出る場合は、/usr/local/bin/perlに Perl が正しくインストールされていない可能性があります。Cygwin のインストールおよびインストール後の設定をご確認ください。

(5) 実行ファイルの転送と実行転送する実行ファイルとして「C/C++ プロジェクト」ビュー内の「hello/pcat/hello」を選択した上で、右クリックメニューの「実行」→「実行の構成」
を選択します。
実行構成ダイアログが表示されますので、「T-Engine アプリケーション」で右クリックして「新規」を選択します。
「hello」の転送や実行方法などの設定が自動設定されます (図 3.2)。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

3. 開発手順

34

図 3.2

実行構成ダイアログ

実行 をクリックすると、自動的に転送 (recv コマンド) と実行が行われ、「Hello, world」が表示されます (図 3.3)。

図 3.3「Hello, world」の実行【トラブル シューティング】ファイルの転送と実行は CLI を使っていますので、CLI との通信ができないとうまくいきません。
このため Eclipse を起動したら、最初にツールバーの外部ツールから te vcom と gterm を順番に起動しておく必要があります。その上で Eclipse のコンソールウィンドウの gterm で、←-(Enter) キーを何回か押して、CLI のプロンプト [/SYS]% が表示されることを確認しておきます。
【トラブル シューティング】「Can’t Create (-1966080)」と表示される場合 : このエラーは、起動ディスクがリードオンリーで書き込みができないことを示しています。書込み不可能なディ
スクから起動しているとこのような現象になります。

3.5「Hello, world」T-Kernel ベース編

今度は「Hello, world」プログラムを T-Kernel ベースで作成してみましょう。ロード時に「Hello,
world」と表示し、アンロード時に「See you again」と表示するようにします。

(1) ワークスペースの指定
T-Kernel ベースのプログラムですので、Eclipse 起動時にワークスペースとして「C:Y=teY=kappl」
を指定してください。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

3. 開発手順

35

既に別のワークスペースで Eclipse が起動している場合は、ツールバーの「ファイル」→「ワークスペースの切り替え」でワークスペースを「C:Y=teY=kappl」に切り替えてください。
† ワークスペースを切り替えると Eclipse がいったん終了して te vcom と gterm も終了します
ので、再度 te vcom と gterm を順番に起動する必要があります。その上で Eclipse のコンソー
ルビューの gterm で、 ←-(Enter) キーを何回か押して、CLI のプロンプト [/SYS]% が表示されることを確認しておきます。

(2) プロジェクトの新規作成
テンプレートを使ってプロジェクトを新規作成します。
「C/C++ プロジェクト」ビュー内で右クリックして (またはツールバーの「ファイル」から)、「新規」→「T-Engine C/C++ プロジェクト」を選択して、新規プロジェクトダイア
ログで以下のように入力します。

• プロジェクト名:
プロジェクト名は自由につけることができますが、ここでは例えば「hello2」とします。

• ターゲット:
複数の機種のプラグインをインストールしている場合は、ここでターゲットの機種を選択します。

• プログラムタイプ:「T-Kernel Base」を指定します。ワークスペースを「C:Y=teY=kappl」としていれば、「ワークスペース名による自動決定」のままでも自動的に T-Kernel ベースになります。

• テンプレート:
チェックを入れて、テンプレートをここでは「sample:文字列出力サンプル」を選択します。

• 出力ディレクトリの生成:チェックを入れます。
最後に 完了 をクリックするとプロジェクトが自動生成されます。

(3) ソースの作成「C/C++ プロジェクト」ビュー内に「hello2」プロジェクトが生成されますので、ダブ
ルクリックして開くとソースプログラムなどが参照できます。
ソースを次のように修正して、「Hello, world」を作成しましょう。

• hello2/src/main.c :たとえば以下のように修正してください。

/* Hello, world (T-Kernel ベース) */#include <basic.h>/* 基本共通ヘッダ */#include <tk/tkernel.h> /* T-Kernel ヘッダ */#include <stdio.h>/* printf() など */はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

3. 開発手順

36

ER main( INT ac, UB *av[] ){if (ac >= 0) {printf("Hello, worldY=n");} else {printf("See you againY=n");}return E_OK;}
修正したら、ツールバーの「ファイル」→「保管」で修正を保存します。

• hello2/src/Makefile :作成対象は「TARGET = hello2」として、作成対象 (メイクしてできる実行ファイル名) を hello2 に変更します。
修正したら、ツールバーの「ファイル」→「保管」で修正を保存します。

(4) メイク
メイクするターゲットとして「C/C++ プロジェクト」ビュー内の「hello2/pcat/Makefile」を選択した上で、ツールバーの「プロジェクト」→「T-Engine
Target の Make all」でメイクします。
メイクが成功すると、「hello2/pcat/」の下に「hello2」という名前で、リロケータブル
形式の実行ファイルが生成されます ( . は表示されませんが正常です)。このほか絶対アドレス形式の hello2.abs と、それを strip してサイズを小さくした hello2.trg も作成されます。

(5) 実行ファイルの転送と実行転送する実行ファイルとして「C/C++ プロジェクト」ビュー内の「hello2/pcat/hello2」を選択した上で、右クリックメニューの「実行」→ 「実行の構成」を選択します。
実行構成ダイアログが表示されますので、「T-Engine アプリケーション」で右クリックして「新規」を選択します。「hello2」の転送や実行方法などの設定が自動設定されます。
実行 をクリックすると、自動的に転送 (recv コマンド) と共有空間上にロード (lodspg コ
マンド) が行われ、「Hello, world」が表示されます。

(6) 共有空間の表示
Eclipse のコンソールビューの gterm で、共有空間上にロードされているプログラムの一覧
を「ref spg」コマンドで見て、新たに hello2 がロードされていることを確認します。
[/SYS]% ref spg ←[ 1] - 0xc0261000 … (中略) …
はじめてみよう T-Kernel 2/x86

5

vmwdrv

c 2008–2012 Personal Media Corporation

3. 開発手順[14] - 0xc056b000 [/SYS]%

37
4

hello2† システムプログラム ID やアドレスは条件によって異なります。

(7) アンロード
前項で表示された hello2 の システムプログラム ID (上の例では 14) を指定して unlspg
コマンドで hello2 をアンロードします。「See you again」と表示されます。

[/SYS]% unlspg 14 ←See you again[/SYS]%

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

4. 実習用サンプルプログラム38

実習用サンプルプログラム

4

T-Kernel 2/x86 評価キット付属 CD-ROM 内のチュートリアルのページ (jpY=tutorial) には、以下の実習用サンプルプログラムのソースが付属しています。
• プロセスアプリケーションのサンプル(1) ジャグリング (お手玉)
画面上にジャグリング (お手玉) のアニメーションを表示するプログラムです。

(2) 簡易ウェブサーバ
簡単なウェブサーバです。T-Kernel 2/x86 上のファイルをネットワーク経由で配信して、他のマシン上のブラウザから見ることができます。

• T-Kernel 2.0 の新機能を使った T-Kernel ベースのサンプル
T-Kernel 2.0 では、従来の T-Kernel に比べて、新たに次の機能が標準化されています:· マイクロ秒単位の時間指定· 物理タイマー· 大容量デバイス対応· キャッシュ操作、メモリアクセス権操作· 高速ロック
このうち T-Kernel 2/x86 評価キット付属 CD-ROM には次のサンプルが付属します。

(3) マイクロ秒単位の時間指定サンプル
tk_get_otm_u (マイクロ秒単位の稼働時刻参照) と tk_cre_cyc_u (マイクロ秒単位の周期ハンドラ生成) を使ったサンプルプログラムです。
(4) 物理タイマーのサンプル実装
物理タイマーを使って、タスク起動 (tk_sta_tsk) にかかる時間を測定するサンプル
プログラムです。
物理タイマーはハードウェアや用途に応じてさまざまな方法や実装が考えられるため、T-Kernel 2/x86 では物理タイマーを標準実装とはせずに、実装例の一つとしてソースプログラムをサンプル提供します。このサンプルの物理
タイマーの仕様や制限については、ソース先頭のコメントをご参照ください。

4.1

ジャグリング (お手玉)

画面上にジャグリング (お手玉) のアニメーションを表示する、プロセスベースのプログラムです。表示には PMC T-Shell の描画機能を使っています。
ブレークポイントをかけて止めながら少しずつ動かしたり、変数の値を変更するといった、デバッグのサンプルとしても使えます。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

4. 実習用サンプルプログラム

39(1) ワークスペースの指定
プロセスベースのプログラムですので、Eclipse 起動時にワークスペースとして「C:Y=teY=bappl」
を指定してください。
既に別のワークスペースで Eclipse が起動している場合は、ツールバーの「ファイル」→「ワークスペースの切り替え」でワークスペースを「C:Y=teY=bappl」に切り替えてください。
† ワークスペースを切り替えると Eclipse がいったん終了して te vcom と gterm も終了します
ので、再度 te vcom と gterm を順番に起動する必要があります。その上で Eclipse のコンソー
ルビューの gterm で、 ←-(Enter) キーを何回か押して、CLI のプロンプト [/SYS]% が表示されることを確認しておきます。

(2) プロジェクトの新規作成
プロジェクトを新規作成します。今回はテンプレートは使用しません。
「C/C++ プロジェクト」ビュー内で右クリックして (またはツールバーの「ファイル」から)、「新規」→「T-Engine C/C++ プロジェクト」を選択して、新規プロジェクトダイア
ログで以下のように入力します。

• プロジェクト名:
ここでは「juggling」とします。

• ターゲット:
複数の機種のプラグインをインストールしている場合は、ここでターゲットの機種を選択します。

• プログラムタイプ:「Process Base」を指定します。ワークスペースを「C:Y=teY=bappl」としていれば、「ワークスペース名による自動決定」のままでも自動的にプロセスベースになります。

• テンプレート:
チェックを入れません。

• 出力ディレクトリの生成:チェックを入れます。
最後に 完了 をクリックするとプロジェクトが自動生成されます。

(3) ソースの作成
Windows 標準の zip アーカイブ展開機能を使って、T-Kernel 2/x86 評価キット CD-ROM
内の実習用プログラム「juggling.zip」を「C:Y=teY=bappl」以下に展開します。
Eclipse の「C/C++ プロジェクト」ビュー内で右クリックして (またはツールバーの「ファイル」から)、「リフレッシュ」を選択すると、展開されたソースディレクトリ「src」が表示されます。
(4) メイク

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

4. 実習用サンプルプログラム

40

メイクするターゲットとして「C/C++ プロジェクト」ビュー内の「juggling/pcat/Makefile」を選択した上で、ツールバーの「プロジェクト」 → 「TEngine Target の Make all」でメイクします。
メイクが成功すると、「juggling/pcat/」の下に「juggling」という名前で実行ファイルが生成されます ( . で表示されます)。

(5) 実行ファイルの転送と実行転送する実行ファイルとして「C/C++ プロジェクト」ビュー内の「juggling/pcat/juggling」を選択した上で、右クリックメニューの「実行」→ 「実行の構成」を選択します。
実行構成ダイアログが表示されますので、「T-Engine アプリケーション」で右クリックして「新規」を選択します。「juggling」の転送や実行方法などの設定が自動設定されます。
実行 をクリックすると、自動的に転送 (recv コマンド) と実行が行われ、ジャグリングのアニメーションが表示されます (図 4.1)。

図 4.1

ジャグリングの実行画面(6) デバッグ用のメイク
デバッグを行うためには、デバッグ情報つきの実行ファイルをメイクする必要があります。
「pcat.debug」という名前のフォルダ上でメイクすれば、デバッグオプションがついて、デバッグ情報つきでメイクされます。
メイクするターゲットとして「C/C++ プロジェクト」ビュー内の「juggling/pcat.debug/Makefile」を選択した上で、ツールバーの「プロジェクト」 →「T-Engine Target の Make all」でメイクします。
メイクが成功すると、「juggling/pcat.debug/」の下に「juggling」という名前で、デバッ
グ情報つきの実行ファイルが生成されます (虫の図形で表示されます)。

(7) デバッグの開始
デバッグするデバッグ情報つき実行ファイルとして「C/C++ プロジェクト」ビュー内の「juggling/pcat.debug/juggling」を選択した上で、右クリックメニューの「デバッグ」→ 「デバッグの構成」を選択します。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

4. 実習用サンプルプログラム

41

デバッグ構成ダイアログが表示されますので、「T-Engine アプリケーション」で右クリック
して「新規」を選択します。
「juggling」の転送やデバッグ方法などの設定が自動設定されます。
† (5) で作成した実行のための設定も残っていますが、今回はデバッグを行うので、必ず新規作成してください。

デバッグ をクリックすると、転送とデバッグが開始され、デバッグパースペクティブに切り替わります。切り替えの確認ダイアログが出る場合は はい で切り替えてください。
【トラブル シューティング】デバッガが起動中に終了してしまう場合は、次のようにタイムアウト
を延長してください。

(1) 終了したデバッガの除去:
コンソールビューの上辺にある「終了したすべての起動を除去」(灰色の 2 重×) ボタンを押します。
(2) デバッガのタイムアウト延長:
ツールバーの「ウィンドウ」→「設定」 で設定ダイアログを開きます。設定ダイアログの左側の中から「C/C++」→「デバッグ」→「GDB MI」を選択します。デバッガタイム
アウト欄、および起動タイムアウト欄の値を増やします。
(3) デバッグ開始:
再度、デバッグ構成ダイアログを開き、デバッグを開始します。

(4) ブレークポイントの設定
現在 main() 関数の先頭で停止した状態です。
ここで main() 関数の最後の方の「if (i > 0) sleep( i );」という行にブレークポイン
トをかけましょう。この行の左端でマウスを右クリックしてメニューを出し、「ブレークポ
イントの切り替え」でブレークポイントを設定します (図 4.2)。

図 4.2

ブレークポイントの設定(5) 実行再開
デバッグビュー内の再開ボタン (緑の右の三角) をクリックして実行再開すると、ブレーク
ポイントで停止するまで実行します (図 4.3)。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

4. 実習用サンプルプログラム

42

図 4.3

実行再開

再開を繰り返すと、ターゲット側の画面上では 1 ステップずつボールが動いていくのが分かります。

(6) 変数の値の変更
ブレークポイントで停止した状態で、変数ビュー内の変数 N の値 (ボールの個数) を 3 から6 に増やしてみましょう (図 4.4)。

図 4.4

変数の値の変更

実行再開すると、ターゲット側の画面上ではボールの個数が 6 個に増えます。
同様に変数 R (ボールの半径) を変えて実行再開すると、ターゲット側の画面上のボールの大きさが変わります。

(7) デバッグの終了
デバッグビュー内の終了ボタン (赤い四角) をクリックします。
さらにデバッグビュー内の「終了したすべての起動を除去」のボタン (灰色の 2 重×) をク
リックします。
最後に Eclipse のウィンドウの右上にある「》」を選択して「T-Engine 開発」を選択すれば、元の T-Engine 開発パースペクティブに戻ります。

4.2

簡易ウェブサーバ

簡単なウェブサーバです。T-Kernel 2/x86 上のファイルをネットワーク経由で配信して、他のマシン上のブラウザから見ることができます。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

4. 実習用サンプルプログラム

43

プロセスベースのプログラムです。ネットワーク通信には PMC T-Shell の TCP/IP 機能を使っています。

(1) ワークスペースの指定
プロセスベースのプログラムですので、Eclipse 起動時にワークスペースとして「C:Y=teY=bappl」
を指定してください。
既に別のワークスペースで Eclipse が起動している場合は、ツールバーの「ファイル」→「ワークスペースの切り替え」でワークスペースを「C:Y=teY=bappl」に切り替えてください。
† ワークスペースを切り替えると Eclipse がいったん終了して te vcom と gterm も終了します
ので、再度 te vcom と gterm を順番に起動する必要があります。その上で Eclipse のコンソー
ルビューの gterm で、 ←-(Enter) キーを何回か押して、CLI のプロンプト [/SYS]% が表示されることを確認しておきます。

(2) ネットワークの設定
Eclipse のコンソールビューの gterm 上で ←-(Enter) キーを何回か押して、CLI のプロン
プト [/SYS]% が表示されることを確認したのち、「netconf」コマンドを使ってネットワー
クの設定を行います。
ご使用のネットワーク環境が DHCP による IP アドレスの自動割当てを行う場合には標準設定の 0.0.0.0 のままで問題ありません。そうでない場合には、「netconf c」コマンドでT-Kernel 2/x86 に IP アドレスを割り当てて下さい。

[/SYS]% netconf c ←hostname= ? tkernel ←host ip= 0.0.0.0 ? 192.168.0.70 ←dns1name= ? ←dns1 ip= 0.0.0.0 ? ←dns2name= ? ←dns2 ip= 0.0.0.0 ? ←domain= ? ←gateway ip = 0.0.0.0 ? ←subnetmask = 255.255.255.0 ? ←wlan= none (n/a/i)? ←[/SYS]%— 自ホスト名— 自 IP アドレス
— DNS サーバ 1— DNS サーバ 2— ドメイン名— ゲートウェイ— サブネットマスク— 有線 LAN† netconf コマンドのかわりに、T-Shell の画面で右クリックして「ネットワーク設定」で設定することも可能です。

(3) ネットワークの動作確認
Eclipse のコンソールビューの gterm 上で、ping コマンドでネットワークの接続を確認します。
[/SYS]% ping localhost ←localhost is alive <192.168.0.70> : 0 ms
はじめてみよう T-Kernel 2/x86— 自分への pingc 2008–2012 Personal Media Corporation

4. 実習用サンプルプログラム

44[/SYS]% ping 192.168.0.1 ←192.168.0.1 is alive <192.168.0.1> : 0 ms

— 他のマシンへの ping

† この例では T-Kernel 2/x86 の IP アドレスは 192.168.0.70、他のマシンの IP アドレスは192.168.0.1 ですが、それぞれご使用のネットワーク環境に合わせて適宜読み替えて下さい。
† 仮想環境 (VMware) の場合は、VMware Player のウィンドウ下辺にある「ネットワークアダ
プタ」アイコンをクリックして、「接続 (C)」を選択してください。
さらに「設定 (S)…」を選択すると、ネットワーク接続方法として「ブリッジ」「NAT」「ホストオンリー」が選択できますので、ご利用のネットワーク環境に応じて適切に設定してください。例えば仮想マシン (VMware 上の T-Kernel 2/x86) も他の物理マシンと同様に LAN に直接接続する場合は、「ホストオンリー」を選択してください。
† 実機環境の場合は、ネットワークのハードウェアに応じた設定が必要です。PMC T-Shell の画
面で右クリックして「システム環境設定」→「ネットワークアダプタ」で設定できます。

(4) 画像ファイルの転送
ウェブサーバで配信するコンテンツとなる画像ファイルを、ターゲット側に転送しておきます。

Eclipse のコンソールビューの gterm 上で、次のように recv コマンドを使って、開発環境側のパソコン上にある画像ファイル (対応している形式は拡張子が .jpg または .png であるもの) を転送します。
例えば「C:Y=tmpY=abc.jpg」を転送する場合は次のようにします。

[/SYS]% recv -c -d /cygdrive/c/tmp/abc.jpg ←同様に画像ファイルを数枚転送しておきます。

(5) プロジェクトの新規作成
プロジェクトを新規作成します。今回はテンプレートは使用しません。
「C/C++ プロジェクト」ビュー内で右クリックして (またはツールバーの「ファイル」から)、「新規」→「T-Engine C/C++ プロジェクト」を選択して、新規プロジェクトダイア
ログで以下のように入力します。

• プロジェクト名:
ここでは「webserv」とします。

• ターゲット:
複数の機種のプラグインをインストールしている場合は、ここでターゲットの機種を選択します。

• プログラムタイプ:「Process Base」を指定します。ワークスペースを「C:Y=teY=bappl」としていれば、「ワークスペース名による自動決定」のままでも自動的にプロセスベースになります。

• テンプレート:
チェックを入れません。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

4. 実習用サンプルプログラム45• 出力ディレクトリの生成:チェックを入れます。
最後に 完了 をクリックするとプロジェクトが自動生成されます。

(6) ソースの作成
Windows 標準の zip アーカイブ展開機能を使って、T-Kernel 2/x86 評価キット CD-ROM
内の実習用プログラム「webserv.zip」を「C:Y=teY=bappl」以下に展開します。
Eclipse の「C/C++ プロジェクト」ビュー内で右クリックして (またはツールバーの「ファイル」から)、「リフレッシュ」を選択すると、展開されたソースディレクトリ「src」が表示されます。
(7) メイク
メイクするターゲットとして「C/C++ プロジェクト」ビュー内の「webserv/pcat/Makefile」を選択した上で、ツールバーの「プロジェクト」→「T-Engine
Target の Make all」でメイクします。
メイクが成功すると、「webserv/pcat/」の下に「webserv」という名前で実行ファイルが生成されます ( . で表示されます)。

(8) 実行ファイルの転送と実行転送する実行ファイルとして「C/C++ プロジェクト」ビュー内の「webserv/pcat/webserv」を選択した上で、右クリックメニューの「実行」→ 「実行の構成」を選択します。
実行構成ダイアログが表示されますので、「T-Engine アプリケーション」で右クリックして「新規」を選択します。「webserv」の転送や実行方法などの設定が自動設定されます。
実行 をクリックすると、自動的に転送 (recv コマンド) と実行が行われます。

(9) ブラウザからの閲覧
ネットワーク上のパソコンのブラウザから、T-Kernel 2/x86 の IP アドレスを指定して、ブラウザ上に画像一覧が配信されることを確認します。例えば T-Kernel 2/x86 の IP アドレ
スが 192.168.0.70 であれば、ブラウザから次のように URL を入力して下さい:「http://192.168.0.70/index.html」† index.html を指定すると、画像ファイルの一覧画面が自動作成されて配信されます。

(10) プロセス終了
最後にこのウェブサーバを終了させたい場合は、コンソールから ^C (Ctrl-C) を送ることでプロセスを終了させてください。Eclipse のコンソールビューの上辺の右端付近の TE ロゴ
マークのボタンを使って ^C を送信することができます (図 4.5)。

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

4. 実習用サンプルプログラム

46

図 4.5

4.3

Eclipse での ˆC の送信

マイクロ秒単位の時間指定サンプル

tk_get_otm_u (マイクロ秒単位の稼働時刻参照) と tk_cre_cyc_u (マイクロ秒単位の周期ハン
ドラ生成) を使った T-Kernel ベースのサンプルプログラムです。
(1) ワークスペースの指定
T-Kernel ベースのプログラムですので、Eclipse 起動時にワークスペースとして「C:Y=teY=kappl」
を指定してください。
既に別のワークスペースで Eclipse が起動している場合は、メニューバーの「ファイル」→「ワークスペースの切り替え」でワークスペースを「C:Y=teY=kappl」に切り替えてください。
† ワークスペースを切り替えると Eclipse がいったん終了して te vcom と gterm も終了します
ので、再度 te vcom と gterm を順番に起動する必要があります。その上で Eclipse のコンソー
ルビューの gterm で、 ←-(Enter) キーを何回か押して、CLI のプロンプト [/SYS]% が表示されることを確認しておきます。

(2) システムタイマー割込み間隔 (TTimPeriod) の変更
T-Kernel 2.0 ではマイクロ秒単位の時間指定が可能ですが、時間の分解能はシステムタイ
マー割込み間隔 (TTimPeriod) となります。標準では 10 ミリ秒、つまり 10000 マイクロ秒です。ここでは「sysconf TTimPeriod ミリ秒 マイクロ秒」コマンドで 100 マイクロ秒に変更してみましょう。変更は再起動後に有効になります。
[/SYS]% sysconf TTimPeriod 0 100 ←+ 0: TTimPeriod 0 100[/SYS]% exit ←<< EXIT cli >>[IMS]% exit
1[IMS]% exit -3 ←<< SYSTEM REBOOT >>(3) プロジェクトの新規作成
プロジェクトを新規作成します。今回はテンプレートは使用しません。
「C/C++ プロジェクト」ビュー内で右クリックして (またはメニューバーの「ファイル」
から)、「新規」→「T-Engine C/C++ プロジェクト」を選択して、新規プロジェクトダイ
アログで以下のように入力します。

• プロジェクト名:
ここでは「usec」とします。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

4. 実習用サンプルプログラム47• ターゲット:
ターゲットの機種 (pcat) を選択します。

• プログラムタイプ:「T-Kernel Base」を指定します。ワークスペースを「C:Y=teY=kappl」としていれば、「ワークスペース名による自動決定」のままでも自動的に T-Kernel ベースになります。

• テンプレート:
チェックを入れません。

• 出力ディレクトリの生成:チェックを入れます。
最後に 完了 をクリックするとプロジェクトが自動生成されます。

(4) ソースの作成
Windows 標準の zip アーカイブ展開機能を使って、T-Kernel 2/x86 評価キット CD-ROMの「jpY=tutorial」フォルダにある実習用プログラム「usec.zip」を「C:Y=teY=kappl」以下に展開します。
Eclipse の「C/C++ プロジェクト」ビュー内で右クリックして (またはメニューバーの「ファイル」から)、「リフレッシュ」を選択すると、展開されたソースディレクトリ「src」が表示されます。
(5) メイク
メイクするターゲットとして「C/C++ プロジェクト」ビュー内の「usec/pcat/Makefile」を選択した上で、メニューバーの「プロジェクト」→「T-Engine
Target の Make all」でメイクします。
メイクが成功すると、「usec/pcat/」の下に「usec」という名前で、リロケータブル形式の実行ファイルが生成されます。

(6) 実行ファイルの転送と実行転送する実行ファイルとして「C/C++ プロジェクト」ビュー内の「usec/pcat/usec」を選択した上で、右クリックメニューの「実行」→ 「実行の構成」を選択します。
実行構成ダイアログが表示されますので、「T-Engine アプリケーション」で右クリックして「新規」を選択します。「usec」の転送や実行方法などの設定が自動設定されます。
実行 をクリックすると、自動的に転送 (recv コマンド) と共有空間上にロード (lodspg コ
マンド) が行われます。

[/SYS]% lodspg usec
SYSPRG usec [14] c0676000 - c067a000
TTimPeriod = 100[us]#1: 8783629700[us]#2: 8783629800[us]
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

4. 実習用サンプルプログラム48#3: 8783629900[us]#4: 8783630000[us]#5: 8783630100[us][/SYS]%(7) プログラムのアンロード
前項で表示された usec の システムプログラム ID (上の例では 14) を指定して unlspg コ
マンドで usec をアンロードします。

[/SYS]% unlspg 14 ←[/SYS]%(8) TTimPeriod の復旧
システムタイマー割込み間隔 (TTimPeriod) を標準の 10 ミリ秒に戻しておきます。

[/SYS]% sysconf TTimPeriod 10 ←+ 0: TTimPeriod 10[/SYS]% exit ←<< EXIT cli >>[IMS]% exit
1[IMS]% exit -3 ←<< SYSTEM REBOOT >>4.4

物理タイマーのサンプル実装

物理タイマーを使って、タスク起動 (tk_sta_tsk) にかかる時間を測定する T-Kernel ベースのサンプルプログラムです。物理タイマーの分解能はシステムタイマー割込み間隔 (TTimPeriod)とは無関係です。

(1) ワークスペースの指定
T-Kernel ベースのプログラムですので、Eclipse 起動時にワークスペースとして「C:Y=teY=kappl」
を指定してください。
既に別のワークスペースで Eclipse が起動している場合は、メニューバーの「ファイル」→「ワークスペースの切り替え」でワークスペースを「C:Y=teY=kappl」に切り替えてください。
† ワークスペースを切り替えると Eclipse がいったん終了して te vcom と gterm も終了します
ので、再度 te vcom と gterm を順番に起動する必要があります。その上で Eclipse のコンソー
ルビューの gterm で、 ←-(Enter) キーを何回か押して、CLI のプロンプト [/SYS]% が表示されることを確認しておきます。

(2) プロジェクトの新規作成
プロジェクトを新規作成します。今回はテンプレートは使用しません。
「C/C++ プロジェクト」ビュー内で右クリックして (またはメニューバーの「ファイル」
から)、「新規」→「T-Engine C/C++ プロジェクト」を選択して、新規プロジェクトダイ
アログで以下のように入力します。
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

4. 実習用サンプルプログラム49• プロジェクト名:
ここでは「ptimer」とします。

• ターゲット:
ターゲットの機種 (pcat) を選択します。

• プログラムタイプ:「T-Kernel Base」を指定します。ワークスペースを「C:Y=teY=kappl」としていれば、「ワークスペース名による自動決定」のままでも自動的に T-Kernel ベースになります。

• テンプレート:
チェックを入れません。

• 出力ディレクトリの生成:チェックを入れます。
最後に 完了 をクリックするとプロジェクトが自動生成されます。

(3) ソースの作成
Windows 標準の zip アーカイブ展開機能を使って、T-Kernel 2/x86 評価キット CD-ROMの「jpY=tutorial」フォルダにある実習用プログラム「ptimer.zip」を「C:Y=teY=kappl」以下に展開します。
Eclipse の「C/C++ プロジェクト」ビュー内で右クリックして (またはメニューバーの「ファイル」から)、「リフレッシュ」を選択すると、展開されたソースディレクトリ「src」が表示されます。
(4) メイク
メイクするターゲットとして「C/C++ プロジェクト」ビュー内の「ptimer/pcat/Makefile」を選択した上で、メニューバーの「プロジェクト」→「T-Engine
Target の Make all」でメイクします。
メイクが成功すると、「ptimer/pcat/」の下に「ptimer」という名前で、リロケータブル
形式の実行ファイルが生成されます。

(5) 実行ファイルの転送と実行転送する実行ファイルとして「C/C++ プロジェクト」ビュー内の「ptimer/pcat/ptimer」を選択した上で、右クリックメニューの「実行」→ 「実行の構成」を選択します。
実行構成ダイアログが表示されますので、「T-Engine アプリケーション」で右クリックして「新規」を選択します。「ptimer」の転送や実行方法などの設定が自動設定されます。
実行 をクリックすると、自動的に転送 (recv コマンド) と共有空間上にロード (lodspg コ
マンド) が行われます。

[/SYS]% lodspg ptimer
SYSPRG ptimer [14] c0676000 - c067a000
はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

4. 実習用サンプルプログラム

50

Physical timer resolution: 167.8[MHz] = 6.0[ns]GetPhysicalTimerCount: 30.2[count] = 179.7[ns]GetPhysicalTimerCount + tk_sta_tsk: 142.8[count] = 850.9[ns]tk_sta_tsk: 112.6[count] = 671.2[ns][/SYS]%
上記の例ではタスク起動 (tk_sta_tsk) に約 670 ナノ秒 (0.67 マイクロ秒) かかっています。
物理タイマーによる時刻測定 (GetPhysicalTimerCount) そのものにも時間がかかるため、その時間を引いた値です。
† 上記の結果はハードウェアやソフトウェアの条件に依存します。例えば仮想環境 (VMware) では一般に上記に比べて遅くなります。

(6) プログラムのアンロード
前項で表示された ptimer のシステムプログラム ID (上の例では 14) を指定して unlspg
コマンドで ptimer をアンロードします。

[/SYS]% unlspg 14 ←[/SYS]%

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

51

索引
C

CLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Cygwin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Tera Term Pro . . . . . . . . . . . . . . . . . . . . . . . . . 9
te vcom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
T-Kernel 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . 38
TTimPeriod . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

D

df コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Uunlspg コマンド . . . . . . . . . . . . . . . . . . . . . . . 31
E

Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

VF

VMware Player . . . . . . . . . . . . . . . . . . . . . . . . . 6
VMwareGateway . . . . . . . . . . . . . . . . . . . . . . . 7

formatsys コマンド . . . . . . . . . . . . . . . . . . . . 13
あG

ウェブサーバ . . . . . . . . . . . . . . . . . . . . . . . . . . 43

gterm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
かH

hdpart コマンド . . . . . . . . . . . . . . . . . . . . . . . 12
I

IMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

仮想環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
画面サイズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
クロス開発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5コンソール . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
さJJava 実行環境 . . . . . . . . . . . . . . . . . . . . . . . . . 20
Llodspg コマンド . . . . . . . . . . . . . . . . . . . . . . . 31
ls コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Nnetconf コマンド . . . . . . . . . . . . . . . . . . . . . . . 43
P

Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
ping コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . 43
R

recv コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . 44
T

T-Kernel ベース . . . . . . . . . . . . . . . . . . . . . . . 30
T-Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

サービス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
実機環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
実行再開 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
ジャグリング . . . . . . . . . . . . . . . . . . . . . . . . . . 38
たデバッグ情報 . . . . . . . . . . . . . . . . . . . . . . . . . . 40
はハイパーターミナル . . . . . . . . . . . . . . . . . . . . . 9
物理タイマー . . . . . . . . . . . . . . . . . . . . . . . . . . 38
ブレークポイント . . . . . . . . . . . . . . . . . . . . . . 41
プロジェクト . . . . . . . . . . . . . . . . . . . . . . . . . . 31
プロセスベース . . . . . . . . . . . . . . . . . . . . . . . . 30
まマイクロ秒 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
メモリ保護 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
らリセット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

索引

52
わ

ワークスペース . . . . . . . . . . . . . . . . . . . . . . . . 22

はじめてみよう T-Kernel 2/x86

c 2008–2012 Personal Media Corporation

はじめてみよう T-Kernel 2/x86
Version 2.0.1
パーソナルメディア株式会社
Web: http://www.t-engine4u.com/
E-Mail: te-sales@personal-media.co.jp
Copyright c 2008–2012 by Personal Media Corporation