blog:2007:2007-01-30

Teaboard:Hello, world

開発環境の構築も完了したところで、いよいよ「Hello, world」だ。

まずは作業用SDカード領域の確保。

  • ROMディスクから起動していることの確認
    [/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

  • SDカードからブートしているか確認

    [/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では、バイナリ格納用のディレクトリ名によって、ターゲットを自動的に切り替えるようになっいるっぽい。なので、基本的にはこのディレクトリ構成は変更しない方がいいと思われる。

  • hello.cの作成
    hello/srcにhello.cを作る。

    #include <stdio.h>
     
    int main(void)
    {
        printf("Hello, world¥n");
     
        return 0;
    }

  • Makefileの作成
    これもhello/srcに作る。

    include ../../etc/makerules
    VPATH = ../src
    hello: hello.o

  • make

    make



  • blog/2007/2007-01-30.txt
  • 最終更新: 2015-01-06 11:51
  • (外部編集)