開発環境の構築も完了したところで、いよいよ「Hello, world」だ。
まずは作業用SDカード領域の確保。
[/SYS]% df PATH DEV TOTAL FREE USED UNIT MAXFILE NAME /SYS rda 1829 0 100% 1024 256 PM:TBMX1
[/SYS]% hdpart pcb pcb [C:483 H:64 S:63 B:1953792 (954 MB)] No System Boot StartCHS EndCHS SecNo SecCnt Size 1 13 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB 2 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB 3 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB 4 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB ** Create/Delete/Boot/Edit/Quit ? c Create PartNo (1-4) ? 1 Size [GB/MB/KB,All] (<201MB) ? 200M No System Boot StartCHS EndCHS SecNo SecCnt Size 1 13 BTRON 00 0: 2: 4 101: 63:63 129 411135 200 MB 2 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB 3 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB 4 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB ** Create/Delete/Boot/Edit/Update/Quit ? b Boot PartNo (1-4,Clear) ? 1 No System Boot StartCHS EndCHS SecNo SecCnt Size 1 13 BTRON 80 0: 2: 4 101: 63:63 129 411135 200 MB 2 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB 3 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB 4 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB ** Create/Delete/Boot/Edit/Update/Quit ? u ** pcb: Updated Master Boot Block
[/SYS]% format -b pcb0 WORK Format pcb0 [STD] WORK Logical Formatting... Writing BootCode... Disk Format Success. </coee> * **パーティションのマウント**<code bash> [/SYS]% att pcb0 pcb0 pcb0 -> pcb0
[/SYS]% cp -b -v -r * /pcb0 copied: SBOOT copied: KERNEL.SYS copied: SYSCONF copied: DEVCONF copied: STARTUP.CMD copied: STARTUP.CLI copied: rsdrv copied: netdrv copied: unixemu copied: tcpipmgr copied: NETCONF copied: cli copied: .xcli copied: bin
[/SYS]% det pcb0
[/SYS]% # bd
[/SYS]% df PATH DEV TOTAL FREE USED UNIT MAXFILE NAME /SYS pcb0 205564 203312 1% 4096 17408 WORK
上記通りにやったのにもかかわらず、内蔵ROMディスク(rda)から起動するようならば、一度Teaboardの電源を落として(USBケーブルを抜いて)から起動すると、SDカードから起動すると思う。
次は、Hello, worldのコンパイル。
Teaboardで走るプログラムは「プロセスベース」と「T-Kernelベース」の2つに大別される。基本的にプログラムは、それぞれのベースに合わせたlocal/te/bapplとlocal/te/kappl以下で開発を行う。今回はプロセスベースのHello, worldを作成する。
/opt/local/te/bappl /hello /src /tbmx1
hello/srcにソースファイルを格納し、バイナリはhello/tbmx1に格納する。デフォルトのmakerulesでは、バイナリ格納用のディレクトリ名によって、ターゲットを自動的に切り替えるようになっいるっぽい。なので、基本的にはこのディレクトリ構成は変更しない方がいいと思われる。
#include <stdio.h> int main(void) { printf("Hello, world¥n"); return 0; }
include ../../etc/makerules VPATH = ../src hello: hello.o
make