wiki:armadillo/crossdev/platform_240

Version 1 (modified by michkawa, 8 years ago) (diff)

--

armadillo 9/2x0 シリーズ

今回は、armadillo-240を使っています。 ATDE は 2.0 を使用しますので、製品に付属しているCD-ROMか、HPからダウンロードするかして、vmwareで起動します。
今回の開発は、PCとの接続にはデバッグ用シリアルポートにシリアルクロスケーブルで接続していることを前提としていますのでご注意。

ディスクイメージの作成

ログイン後、armadilloで使用するディスクイメージを作成するためにatmark-distとlinuxカーネルソースをダウンロードして、展開します。 イメージの作り方はAtmark Dist 開発ガイドを読んで下さい。

2012/6/8時点での最新なので、変わる場合があります。
[user>] wget http://armadillo.atmark-techno.com/files/downloads/dist/atmark-dist-20120222.tar.gz
[user>] wget http://armadillo.atmark-techno.com/files/downloads/kernel-source/linux-2.6.12.3-a9/linux-2.6.12.3-a9-18.tar.gz

[user>] tar zxvf atmark-dist-20120222.tar.gz
[user>] tar zxvf linux-2.6.12.3-a9-18.tar.gz
[user>] cd atmark-dist-20120222
[user>] ln -s ../linux-2.6.12.3-a9-18 linux-2.6.x
[user>] make config
config/mkconfig > config.in
#
# No defaults found
#
*
* Vendor/Product Selection
**
* Select the Vendor you wish to target
*
Vendor (3com, ADI, Akizuki, Apple, Arcturus, Arnewsh, AtmarkTechno, Atmel, Avnet, Cirrus,
Cogent, Conexant, Cwlinux, CyberGuard, Cytek, Exys, Feith, Future, GDB, Hitachi, Imt,
Insight, Intel, KendinMicrel, LEOX, Mecel, Midas, Motorola, NEC, NetSilicon, Netburner,
Nintendo, OPENcores, Promise, SNEHA, SSV, SWARM, Samsung, SecureEdge, Signal, SnapGear,
Soekris, Sony, StrawberryLinux, TI, TeleIP, Triscend, Via, Weiss, Xilinx, senTec) [SnapGear]
(NEW) AtmarkTechno

*
* Select the Product you wish to target
*
AtmarkTechno Products (Armadillo, Armadillo-210.Base, Armadillo-210.Recover,
Armadillo-220.Base, Armadillo-220.Recover, Armadillo-230.Base, Armadillo-230.Recover,
Armadillo-240.Base, Armadillo-240.Recover, Armadillo-300, Armadillo-500, Armadillo-9,
Armadillo-9.PCMCIA, Armadillo-J.Base, Armadillo-J.Jffs2, Armadillo-J.Recover,
SUZAKU-V.SZ310, SUZAKU-V.SZ310-SIL, SUZAKU-V.SZ410, SUZAKU-V.SZ410-SIL) [Armadillo]
(NEW) Armadillo-240.Recover

*
* Kernel/Library/Defaults Selection
*
*
* Kernel is linux-2.6.x
*
Cross-dev (default, arm-vfp, arm, armnommu, common, h8300, host, i386, i960, m68knommu,
microblaze, mips, powerpc, sh) [default] (NEW)

Libc Version (None, glibc, uC-libc, uClibc) [uClibc] (NEW) None

Default all settings (lose changes) (CONFIG_DEFAULTS_OVERRIDE) [N/y/?] (NEW) y
Customize Kernel Settings (CONFIG_DEFAULTS_KERNEL) [N/y/?] n
Customize Vendor/User Settings (CONFIG_DEFAULTS_VENDOR) [N/y/?] n
Update Default Vendor Settings (CONFIG_DEFAULTS_VENDOR_UPDATE) [N/y/?] n

[user>] make dep
[user>] make all

これで、デフォルト状態のディスクイメージの作成が作成されました。

EPICS のコンパイル

EPICSのコンパイルは普段通りで問題ありません。ここでは、baseのみコンパイルします。

[user>] mkdir ~/epics
[user>] cd ~/epics
[user>] wget http://www.aps.anl.gov/epics/download/base/baseR3.14.12.2.tar.gz
[user>] tar zxvf base-R3.14.12.2.tar.gz

[user>] cd base-3.14.12.2/configure
[user>] vi CONFIG_SITE
CROSS_COMPILER_TARGET_ARCHS=linux-arm
CROSS_COMPILER_HOST_ARCHS=linux-x86

[user>] cd ..
[user>] make

これでコンパイルは通るはずです。
途中でライブラリがなくてエラーになるなら、パッケージをインストールして下さい。

ディスクイメージへの追加

今回は Out of Tree 状態でのインストールの説明をします。
コンパイルしたEPICSをarmadillo-240上で動作させるために、作っておいたイメージにコピーします。

[user>] cd ~/epics/base-3.14.12.2
[user>] cp lib/*.so ~/atmark-dist-20120222/romfs/lib/
[user>] chmod u+w ~/atmark-dist-20120222/romfs/lib/
[user>] cp bin/* ~/atmark-dist-20120222/romfs/usr/bin/
[user>] chmod u+w ~/atmark-dist-20120222/romfs/usr/bin/

ファイルのコピーをしたら、ディスクイメージを作り直します。

[user>] cd ~/atmark-dist-20120222
[user>] make romfs
[user>] make image

ディスクイメージができたら、ファイルをarmadilloに転送します。
ここがちょっと面倒で時間がかかりますので、Armadillo-200シリーズ ソフトウェアマニュアル6.フラッシュメモリの書き換えを読んで下さい。

一応、手順としては、

  • armadilloの電源を落とす。
  • JP2をジャンパピンでショート。
  • armadilloの電源をON
  • ATDEからhermitでフラッシュメモリを書き換え。
[root#] cd ~/atmark-dist-20120222/images
[root#] hermit download --input-file linux.bin.gz --region kernel
[root#] hermit download --input-file romfs.img.gz --region userland

となります。
普通はuserlandだけを書き換えるのでromfsだけを転送します。

フラッシュメモリの書き換えが終わったら、armadilloを再起動します。

ATDEから、hermitをtarminalで起動します。

[root#] hermit terminal

起動画面が表示されますので、ログインプロンプトが表示されたらrootでログインします。

あとは、適当にcaget等を実行して結果がかえってくればOK。