ページ更新: 2014-06-09 (月) (1595日前)

(2014-05-07 新規作成)

  • MCU: MB9AF312K (ARM Cortex-M3), 40MHz, FLASH:128KB + 32KB, RAM:16KB
  • 電源:USB
  • インターフェイス:USB 2.0 Host/Funciton
  • 他: LED, 押しボタン, 照度センサ, JTAG対応チップ
  • IAR Embedded Workbench

目次

[編集]

情報源 #

[編集]

FM3 USB スティックボード #

sk-fm3-48pmc-usbstick.pdf より: 開発環境 IAR Embedded Workbench

[編集]

Spansion FM3 #

  • マイコン開発環境
    • サポートソフトウェア, サポートツール一覧, サポートハードウェア, ダウンロード
[編集]

μT-Kernel #

[編集]

OpenOCD #

[編集]

#

[編集]

メモ #

[編集]

開発用ソフトウェアのセットアップ (Windows 7 Professional 64bit 編) (2014-05-15) #

注意: SK-FM3-48PMC-USBSTICK紹介資料, p.2, ■仕様 によると、「64bit Windows7等一部OSには対応しておりません。」とのこと。

[編集]

問題 (2014-05-15) #

Windows 7 Professional 64bit4vm (on VMware workstation 9.0.3) に入れてみたところ、以下の物以外はインストールできた。

1. Fujitsu OpenOCD Start のドライバー

Install Driver で libusb 32bit版をインストールしようとする。

libusb-win32 installer (v1.2.6.0)
installing inf Driver\libusb\Fujitsu-OpenOCD-USB.inf..
installing device vid_0403&pid_6010&mi_00..

「Test」で openocd-0.6.1.exe が起動されるが、FTDI デバイスに接続できない。

####### START DEBUG: 2014/05/15 23:55:50#######
Start: .\openocd-0.6.1.exe
Start with parameters: -f .\sk-fm3-100pmc-mb9afb44n.cfg
Open On-Chip Debugger 0.6.1 (2012-10-07-10:34)
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
jtag_ntrst_delay: 500
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
adapter speed: 400 kHz
cortex_m3 reset_config sysresetreq
Error: unable to open ftdi device: device not found
in procedure 'init'

####### END: 2014/05/15 23:55:51#######
[編集]

1. セットアップ #

IMGP1105.jpg

IMGP1113.jpg

IMGP1119.jpg

[編集]

1.1 CD-ROM\setup.exe #

起動 - バージョンは「V14」だった。

fm3-setup-001.png

インストール先

fm3-setup-002.png

セキュリティ警告 (数回表示される)

fm3-setup-006.png

インストール後

fm3-setup-007.png

fm3-setup-008.png

[編集]

1.2 OpenOCD Starter のセットアップ #

fm3-setup-009.png

fm3-setup-010.png

fm3-setup-011.png

fm3-setup-012.png

fm3-setup-013.png

[編集]

1.3 Serial Port Viewer のセットアップ #

fm3-setup-014.png

fm3-setup-015.png

fm3-setup-016.png

fm3-setup-017.png

[編集]

1.4 USB DIRECT Flash Programmer のセットアップ #

fm3-setup-018.png

fm3-setup-019.png

[編集]

1.5 OpenOCD GUI #

fm3-setup-020.png

fm3-setup-021.png

(ドライバの自動インストールのスクリーンショットは撮り忘れた)

[編集]

1.6 OpenOCD Driver #

fm3-setup-034.png

fm3-setup-032.png

fm3-setup-033.png

fm3-setup-035.png

  • スクリーンショットは撮っていないが、「Driver Install」が完了しない(勝手に終わる)。この部分が 64bit OS に対応していないようだ。
[編集]

2. 動作確認 #

[編集]

2.1 PROG #

FM3 USBスティックを付属のUSBケーブルでPCに繋いで、VMwareの仮想PCに接続する:

fm3-setup-022.png

(たぶん、このときはスイッチをPROGに切り替えていたと思う)

[編集]

2.2 USBホストモード #

FM3 USBスティックをPCに繋いで、VMwareの仮想PCに接続する:

fm3-setup-028.png

(たぶん、このときはスイッチをRUNに切り替えていたと思う)

デバイスマネージャ:

fm3-setup-029.png

Serial Port Viewer を起動する。ポートは「USB Serial Port」のうち番号の大きいほうらしい:

fm3-setup-023.png

fm3-setup-025.png

MIDIキーボードをつなげて見た。リセットボタンを押すごとに、起動メッセージが表示される:

fm3-setup-024.png

USBマウスを繋げると、なぜかUSB Keyboardと誤認する:

fm3-setup-030.png

USBメモリを繋げると、ちゃんと認識した:

fm3-setup-031.png

[編集]

2.3 USBファンクション動作確認 #

デモプログラム Fujitsu_UsbCom_Demo.exe が「セットアップガイド」で示された場所に見つからないので、検索した:

fm3-setup-026.png

デモプログラムを起動して操作した。特に問題なくLED, Button, Light Sensor が動作した:

fm3-setup-027.png

[編集]

UCT μT-Kernel 1.01.02 Software Package のビルド (未完) #

参考:

注意: Cygwin は以前からインストールした物を更新して用いたので、以下に示すパッケージだけでは足りないかも知れない

[編集]

ショートカット #

以下に、作業をできるだけ Cygwin Terminalへのコピー&ペーストで済ませられるようにしたときの手順を示す。

なお、後に述べる手順は調査を兼ねているために、順番が異なるし、必要最小限のものしか入れていない。

1. UCT_uTK1.01.02SoftwarePackage.zip をダウンロードする。アカウント登録とメールアドレスが必要(ダウンロードURLはメールで通知されるため)。

2. Cygwin x86 をインストールする。

(参照: Cygwin/インストール)

setup-x86.exe をダウンロードして起動し、以下のパッケージをインストールする

* Base カテゴリー
* make, perl, unzip

Cygwin Terminal を起動する。

Cygwin Terminal の起動に時間がかかるのがいやなので、bash_completion を無効にする:

cd /etc/profile.d
mv bash_completion.sh bash_completion.sh.disable

3. Cygwin の ~/.bash_profile の末尾に以下の行を追加する。 (Windows 7の場合、C:\cygwin\home\<ユーザー名>\.bash_profile を開いて編集する。改行をLFにできるエディタを用いること)

export GNU_BD=/usr/local/cortex-m3/tool/Cygwin-i686
export GNUARM_2=$GNU_BD/arm-none-eabi
export BD=/usr/local/te/utkernel_source

なお、~ (ホームディレクトリ) をエクスプローラーで開きたいなら、「cygstart ~」を実行すればよい。

4. UCT_uTK1.01.02SoftwarePackage.zip を用い、開発環境とソースを展開する。

  • 説明のために、UCT_uTK1.01.02SoftwarePackage.zip を ~/ にコピーし、~/utk/ に展開した。適宜読み替えること。

Cygwin Terminal を起動し、以下の行をコピー&ペーストする。

ln -s /usr/bin/perl /usr/local/bin/perl
unzip ~/UCT_uTK1.01.02SoftwarePackage.zip -d ~/utk/
tar zxf ~/utk/uT-Kernel/develop/devenv_cortex-m3.tgz -C /usr/local/
mkdir /usr/local/te
tar zxf ~/utk/uT-Kernel/srcpkg/utkernel.1.01.02.tar.gz -C /usr/local/te/

5. μT-Kernel をビルドする。

Cygwin Terminal に以下の行をコピー&ペーストする。

cd /usr/local/te/utkernel_source/kernel/sysmain/build/app_mb9af312k/
make

これで、5のカレントディレクトリに kernel-ram.* と kernel-rom.* が生成される。

makeの所要時間:

  • Core i5-3340M @ 2.70GHz, Windows 7 x64, HDD=300MB では 2分50秒。
  • Core i7-3770 @ 3.40GHz, Windows 7 x64, HDD=1TB では、55秒。

必要なディスク容量 (注意: ダウンロードした Cygwin のパッケージについては略):

  • Cygwin のうち、以下もの以外 145 MB
  • 〜 255 MB (UCT uT-Kernel の ZIPを置いたので)
  • /usr/local/cortex-m3 423 MB
  • /usr/local/te 3.4 MB
[編集]

1. Cygwin のセットアップ #

1. Cygwin から http://cygwin.com/setup-x86.exe をダウンロードして起動する。

なお、この時点の Cygwin x86 のバージョンは 1.7.30-1 だった。

2. パッケージのダウンロード先は適当に。

3. 何も選択しないで (=Base カテゴリーが選択されてるので) インストールを済ませる。 (理由: 他のパッケージのインストールの前に Base カテゴリーががインストールされていた方がトラブルが少ないので)

4. 再度 setup-x86.exe を起動して、今度は Devel カテゴリー を選び、さらに unzip パッケージも選ぶ。 これでインストールすると、で開発に必要なパッケージがインストールされたはず。

  • 2014-06-15 apt-cyg を使ってやり直した。インストールしたパッケージは Base カテゴリー と、apt-cyg に必要なパッケージ(bzip2, tar, gawk, wget, xz)、unzip (UCT T-kernelがzipで圧縮されていたため), そして make, perl の2つ。

パッケージ一覧:

$ cygcheck -cd
Cygwin Package Information
Package              Version
_autorebase          000564-1
_update-info-dir     01234-1
alternatives         1.3.30c-10
base-cygwin          3.3-1
base-files           4.2-3
bash                 4.1.10-4
bzip2                1.0.6-2
ca-certificates      1.97-1
coreutils            8.15-1
crypt                1.2-1
cygutils             1.4.14-1
cygwin               1.7.30-1
dash                 0.5.7-1
editrights           1.01-2
file                 5.18-1
findutils            4.5.12-1
gawk                 4.1.1-1
getent               2.18.90-2
grep                 2.16-1
groff                1.22.2-2
gzip                 1.4-1
ipc-utils            1.0-1
less                 444-1
libargp              20110921-2
libattr1             2.4.46-1
libbz2_1             1.0.6-2
libdb4.8             4.8.30-1
libffi6              3.0.13-1
libgcc1              4.8.3-1
libgdbm4             1.8.3-20
libgmp10             6.0.0a-1
libgmp3              4.3.2-1
libgnutls28          3.2.4-1
libhogweed2          2.7-1
libiconv2            1.14-2
libidn11             1.26-1
libintl8             0.18.3.2-1
liblzma5             5.0.5-1
libmpfr4             3.1.2-1
libncurses10         5.9-20140524-1
libncursesw10        5.9-20140524-1
libnettle4           2.7-1
libp11-kit0          0.20.2-1
libpcre0             8.21-2
libpcre1             8.34-1
libpopt0             1.16-1
libreadline7         6.1.2-3
libssp0              4.8.3-1
libstdc++6           4.8.3-1
libtasn1_6           3.3-1
login                1.10-10
make                 4.0-2
man                  1.6g-2
mintty               1.1.3-1
p11-kit              0.20.2-1
p11-kit-trust        0.20.2-1
perl                 5.14.2-3
popt                 1.16-1
rebase               4.4.1-1
run                  1.3.0-1
sed                  4.2.2-3
tar                  1.27.1-1
terminfo             5.9-20140524-1
texinfo              5.2-1
tzcode               2013d-1
unzip                6.0-10
vim-minimal          7.4.316-1
wget                 1.15-1
which                2.20-2
xz                   5.0.5-1
zlib0                1.2.8-1
[編集]

2. toolchainのインストール #

1. UCT_uTK1.01.02SoftwarePackage.zip をダウンロードする。

2. Cygwin Terminal を開き、ホームディレクトリに1をコピーする。 ホームディレクトリをエクスプローラーで開くには、「cygstart ~」を実行する。

3. ホームディレクトリの作業用ディレクトリ utk を作って、zipをコピー(or 移動)する。

$ mkdir ~/utk
$ cp UCT_uTK1.01.02SoftwarePackage.zip ~/utk/

4. zip を展開する

$ unzip UCT_uTK1.01.02SoftwarePackage.zip
Archive:  UCT_uTK1.01.02SoftwarePackage.zip
   creating: uT-Kernel/develop/
  inflating: uT-Kernel/develop/binutils-2.14.tar.gz
... (略)
inflating: uT-Kernel/utk-dist-ucode.png

(メモ: 2014-06-15 pdfのファイル名が文字化けしていたので、convmvで自動修復しようとしたが失敗した。手で直したけど)

$ convmv -f cp932 -t utf8 ~/utk/uT-Kernel/*.pdf

5. devenv_cortex-m3.tgz を /usr/local/ に展開する

$ tar zxf uT-Kernel/develop/devenv_cortex-m3.tgz -C /usr/local/

展開すると、次のディレクトリが生成される (findコマンドでディレクトリを4階層表示)

$ find /usr/local/cortex-m3/ -maxdepth 4 -type d
/usr/local/cortex-m3/
/usr/local/cortex-m3/tool
/usr/local/cortex-m3/tool/Cygwin-i686
/usr/local/cortex-m3/tool/Cygwin-i686/arm-none-eabi
/usr/local/cortex-m3/tool/Cygwin-i686/arm-none-eabi/bin
/usr/local/cortex-m3/tool/Cygwin-i686/arm-none-eabi/include
/usr/local/cortex-m3/tool/Cygwin-i686/arm-none-eabi/lib
/usr/local/cortex-m3/tool/Cygwin-i686/bin
/usr/local/cortex-m3/tool/Cygwin-i686/include
/usr/local/cortex-m3/tool/Cygwin-i686/lib
/usr/local/cortex-m3/tool/Cygwin-i686/lib/gcc
/usr/local/cortex-m3/tool/Cygwin-i686/share
/usr/local/cortex-m3/tool/Cygwin-i686/share/gcc-4.7.3
/usr/local/cortex-m3/tool/Cygwin-i686/share/info
/usr/local/cortex-m3/tool/Cygwin-i686/share/man
/usr/local/cortex-m3/tool/etc
[編集]

3. ソースコードの展開、ビルドの準備 #

引き続き、2で展開したZIPを用いる。

1. tkernel.1.01.02.tar.gz を /usr/local/te/ に展開する

$ mkdir /usr/local/te
$ tar zxf uT-Kernel/srcpkg/utkernel.1.01.02.tar.gz -C /usr/local/te/

展開すると、次のディレクトリが生成される (findコマンドでディレクトリを2階層表示)

$ find /usr/local/te -maxdepth 2 -type d
/usr/local/te
/usr/local/te/utkernel_source
/usr/local/te/utkernel_source/config
/usr/local/te/utkernel_source/etc
/usr/local/te/utkernel_source/include
/usr/local/te/utkernel_source/kernel
/usr/local/te/utkernel_source/lib

2. /usr/local/bin/perl を用意する

$ ln -s /usr/bin/perl /usr/local/bin/perl
$ ls -l /usr/local/bin/perl
lrwxrwxrwx 1 username None 13 5月  29 23:44 /usr/local/bin/perl -> /usr/bin/perl*

3. ~/.bash_profile 以下の内容を追記する

export GNU_BD=/usr/local/cortex-m3/tool/Cygwin-i686
export GNUARM_2=$GNU_BD/arm-none-eabi
export BD=/usr/local/te/utkernel_source

以下のようにして ~/.bash_profile を反映する。(あるいはCygwin Terminalを開き直す)

$ . ~/.bash_profile

確認

$ set | grep GNUARM
GNUARM_2=/usr/local/cortex-m3/tool/Cygwin-i686/arm-none-eabi
$ set | grep BD
BD=/usr/local/te/utkernel_source
GNU_BD=/usr/local/cortex-m3/tool/Cygwin-i686
[編集]

4. ビルド #

$ cd /usr/local/te
$ ls
utkernel_source/

作業をやり直すかも知れないので、Mercurial でバージョン管理する

$ hg init
$ hg commit -A -m "initial"

試しに Makefile を dry-run する。

$ cd /usr/local/te/utkernel_source/kernel/sysmain/build/app_mb9af312k/
$ ls
kernel-ram.lnk  kernel-rom.lnk  Makefile
$ make -n
(cd ../../../../lib/build/app_mb9af312k; make)
make[1]: Entering directory '/usr/local/te/utkernel_source/lib/build/app_mb9af312k'
cd ../../libtk/build/app_mb9af312k ; \
make ; \
make install
make[2]: Entering directory '/usr/local/te/utkernel_source/lib/libtk/build/app_mb9af312k'
../../src/Makefile.common:94: Dependencies: No such file or directory
touch Dependencies
make source
make[3]: Entering directory '/usr/local/te/utkernel_source/lib/libtk/build/app_mb9af312k'
(cd ../../src; \
 for infile in fastlock.c fastmlock.c fastlock.c fastmlock.c ; do \
   /usr/local/te/utkernel_source/etc/mkfuncfiles $infile ; \
 done );
make[3]: Leaving directory '/usr/local/te/utkernel_source/lib/libtk/build/app_mb9af312k'
make obj
make[3]: Entering directory '/usr/local/te/utkernel_source/lib/libtk/build/app_mb9af312k'
/usr/local/cortex-m3/tool/Cygwin-i686/arm-none-eabi/bin/gcc4arm      -mcpu=cortex-m3 -mthumb 
-I/usr/local/te/utkernel_source/include -I../../src -I../../src/sysdepend/app_mb9af312k 
-I../../src/func -I../../../../config -D_APP_MB9AF312K_ 
-c ../../src/sysdepend/app_mb9af312k/disint.S -o disint.o
/usr/local/cortex-m3/tool/Cygwin-i686/arm-none-eabi/bin/gcc4arm    -O2  -mcpu=cortex-m3 -mthumb 
-mstructure-size-boundary=8 -ffreestanding -fomit-frame-pointer -Wall   
-I/usr/local/te/utkernel_source/include -I../../src -I../../src/sysdepend/app_mb9af312k 
-I../../src/func -I../../../../config -D_APP_MB9AF312K_ 
-c ../../src/sysdepend/app_mb9af312k/int.c -o int.o
make[3]: *** No rule to make target 'lock.o', needed by 'libtk.a'.  中止.
make[3]: Leaving directory '/usr/local/te/utkernel_source/lib/libtk/build/app_mb9af312k'
../../src/Makefile.common:63: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/usr/local/te/utkernel_source/lib/libtk/build/app_mb9af312k'
make[2]: Entering directory '/usr/local/te/utkernel_source/lib/libtk/build/app_mb9af312k'
/usr/local/cortex-m3/tool/Cygwin-i686/arm-none-eabi/bin/gcc4arm      -mcpu=cortex-m3 -mthumb  
-I/usr/local/te/utkernel_source/include -I../../src -I../../src/sysdepend/app_mb9af312k 
-I../../src/func -I../../../../config -D_APP_MB9AF312K_ 
-c ../../src/sysdepend/app_mb9af312k/disint.S -o disint.o
/usr/local/cortex-m3/tool/Cygwin-i686/arm-none-eabi/bin/gcc4arm    -O2  -mcpu=cortex-m3 -mthumb 
-mstructure-size-boundary=8 -ffreestanding -fomit-frame-pointer -Wall   
-I/usr/local/te/utkernel_source/include -I../../src -I../../src/sysdepend/app_mb9af312k 
-I../../src/func -I../../../../config -D_APP_MB9AF312K_ 
-c ../../src/sysdepend/app_mb9af312k/int.c -o int.o
make[2]: *** No rule to make target 'lock.o', needed by 'libtk.a'.  中止.
make[2]: Leaving directory '/usr/local/te/utkernel_source/lib/libtk/build/app_mb9af312k'
../Makefile.common:30: recipe for target 'libtk' failed
make[1]: *** [libtk] Error 2
make[1]: Leaving directory '/usr/local/te/utkernel_source/lib/build/app_mb9af312k'
../../src/Makefile.common:148: recipe for target 'lib' failed
make: *** [lib] Error 2

make -n (dry-run) で生成されたファイルを確認する

$ hg status --unknown
? utkernel_source/kernel/sysmain/build/app_mb9af312k/Dependencies
? utkernel_source/lib/libtk/build/app_mb9af312k/Dependencies

ビルドする。Core-i7 3770s, HDD(1.5TB) 上で30秒で完了した。

$ time make
... (略)
real    0m30.732s
user    0m11.208s
sys     0m12.998s

make で生成されたファイルを確認する

$ hg st -u
? utkernel_source/kernel/sysdepend/cpu/mb9af312k/func/get_reg.c
? utkernel_source/kernel/sysdepend/cpu/mb9af312k/func/hll_inthdr.c
...
? utkernel_source/kernel/sysinit/build/app_mb9af312k/Dependencies
? utkernel_source/kernel/sysinit/build/app_mb9af312k/devinit.o
...
? utkernel_source/kernel/sysmain/build/app_mb9af312k/Dependencies
? utkernel_source/kernel/sysmain/build/app_mb9af312k/clock_mode.o
...
? utkernel_source/kernel/tkernel/build/app_mb9af312k/Dependencies
? utkernel_source/kernel/tkernel/build/app_mb9af312k/alarmhandler_getname.o
...
? utkernel_source/kernel/tkernel/build/app_mb9af312k/wspec_slp.o
? utkernel_source/kernel/tkernel/src/func/alarmhandler_getname.c
...
? utkernel_source/kernel/tkernel/src/func/wspec_slp.c
? utkernel_source/kernel/tstdlib/func/tstdlib_bitclr.c
...
? utkernel_source/kernel/tstdlib/func/tstdlib_bitset.c
? utkernel_source/lib/build/app_mb9af312k/libstr.a
? utkernel_source/lib/build/app_mb9af312k/libsvc.a
? utkernel_source/lib/build/app_mb9af312k/libtk.a
? utkernel_source/lib/build/app_mb9af312k/libtm.a
? utkernel_source/lib/libstr/build/mb9af312k/Dependencies
...
? utkernel_source/lib/libstr/build/mb9af312k/strtol.o
? utkernel_source/lib/libstr/src/func/bzero.c
...
? utkernel_source/lib/libstr/src/func/strtol.c
? utkernel_source/lib/libsvc/build/mb9af312k/Dependencies
...
? utkernel_source/lib/libsvc/build/mb9af312k/tk_wup_tsk.o
? utkernel_source/lib/libtk/build/app_mb9af312k/Dependencies
...
? utkernel_source/lib/libtk/build/app_mb9af312k/unlock.o
? utkernel_source/lib/libtk/src/func/createlock.c
...
? utkernel_source/lib/libtk/src/func/unlock.c
? utkernel_source/lib/libtm/build/app_mb9af312k/Dependencies
...
? utkernel_source/lib/libtm/build/app_mb9af312k/tm_putstring.o

ビルドが完了すると、kernel-ram.* と kernel-rom.* が生成されている。

$ ls kernel-*
kernel-ram.lnk  kernel-ram.mot*  kernel-rom.lnk  kernel-rom.mot*
kernel-ram.map  kernel-ram.sys*  kernel-rom.map  kernel-rom.rom*

これらのファイルの種別を調べる。なおromはFlashに書いて用い、ramはSRAMに転送して用いる。

$ file kernel-*.*
kernel-ram.lnk: assembler source, ASCII text
kernel-ram.map: ASCII text
kernel-ram.mot: Motorola S-Record; binary data in text format
kernel-ram.sys: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped
kernel-rom.lnk: assembler source, ASCII text
kernel-rom.map: ASCII text
kernel-rom.mot: Motorola S-Record; binary data in text format
kernel-rom.rom: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped
$ head kernel-ram.mot
S01100006B65726E656C2D72616D2E6D6F7482
S3251FFFE0000020002001E1FF1FC3E1FF1FC5E1FF1FC7E1FF1FC9E1FF1FCBE1FF1F00000000BE
$ objdump.exe -f kernel-ram.sys kernel-rom.rom

kernel-ram.sys:     ファイル形式 elf32-little
アーキテクチャ: UNKNOWN!, フラグ 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
開始アドレス 0x1fffe100


kernel-rom.rom:     ファイル形式 elf32-little
アーキテクチャ: UNKNOWN!, フラグ 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
開始アドレス 0x00000100
$ objdump.exe -x kernel-ram.sys | head -30

kernel-ram.sys:     ファイル形式 elf32-little
kernel-ram.sys
アーキテクチャ: UNKNOWN!, フラグ 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
開始アドレス 0x1fffe100

プログラムヘッダ:
    LOAD off    0x00000000 vaddr 0x1fff8000 paddr 0x1fff8000 align 2**15
         filesz 0x00008740 memsz 0x0000ad40 flags rwx

セクション:
索引名          サイズ      VMA       LMA       File off  Algn
  0 .text         00002710  1fffe000  1fffe000  00006000  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000030  20000710  20000710  00008710  2**2
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00002600  20000740  20000740  00008740  2**3
                  ALLOC
  3 .ARM.attributes 0000002f  00000000  00000000  00008740  2**0
                  CONTENTS, READONLY
  4 .comment      00000027  00000000  00000000  0000876f  2**0
                  CONTENTS, READONLY
SYMBOL TABLE:
1fffe000 l    d  .text  00000000 .text
20000710 l    d  .data  00000000 .data
20000740 l    d  .bss   00000000 .bss
00000000 l    d  .ARM.attributes        00000000 .ARM.attributes
00000000 l    d  .comment       00000000 .comment
1fffe000 l       .text  00000000 $d