Hello World


x86 マシンで PC-P1LAN 用の Hello World を作ってみる

ingenient-env の読込み

[yasunari@junk yasunari]$ source ~/ingenient-bsp/ingenient-env

作業ディレクトリの作成

/mnt/pc-p1lan を作業ディレクトリとする
[root@junk root]# cd /mnt
[root@junk root]# mkdir pc-p1lan
[root@junk root]# chmod g+w pc-p1lan

ソースファイルの作成

[yasunari@junk yasunari]$ cd /mnt/pc-p1lan/
[yasunari@junk pc-p1lan]$ vi a.c
[yasunari@junk pc-p1lan]$ cat !$
cat a.c
main()
{
        printf("Let's hack PC-P1LAN!\n");
}
[yasunari@junk pc-p1lan]$
Hello World ちゃうやん。

コンパイル

[yasunari@junk pc-p1lan]$ arm-linux-gcc a.c
[yasunari@junk pc-p1lan]$ ls -l a.*
-rw-r--r--    1 yasunari root           46 Feb 22 13:07 a.c
-rwxr-xr-x    1 yasunari root         7943 Feb 22 13:07 a.out*
[yasunari@junk pc-p1lan]$ file a.out
a.out: ELF 32-bit LSB executable, ARM, version 1, for GNU/Linux 2.6.5, dynamically linked (uses shared libs), not stripped
[yasunari@junk pc-p1lan]$
できた。

PC-P1LAN で実行

junk の /mnt を PC-P1LAN の /tmp/junk にマウントする
~ # mkdir /tmp/junk
~ # mount junk:/mnt /tmp/junk
(かなり時間がかかって)
~ # df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/ram0                15863     11953      3910  75% /
/dev/mtdblock2             192       108        84  56% /mnt
junk:/mnt              6103680   1927352   3866276  33% /tmp/junk
~ # cd /tmp/junk/pc-p1lan/
/tmp/junk/pc-p1lan # ls
a.c    a.out
/tmp/junk/pc-p1lan # ls -al
drwxrwxr-x    2 root     root         4096 Feb 22 13:14 .
drwxr-xr-x    5 root     root         4096 Feb 22 13:11 ..
-rw-r--r--    1 1000     root           46 Feb 22 13:07 a.c
-rwxr-xr-x    1 1000     root         7943 Feb 22 13:07 a.out
a.out を実行する
/tmp/junk/pc-p1lan # ./a.out
Let's hack PC-P1LAN!
/tmp/junk/pc-p1lan #
done!


toolchain のインストール
ハックの記録
PC-P1LAN をハックしよう

ttyS1

Copyright (C) 2006 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市