wiki:armadillo/crossenv

Version 2 (modified by michkawa, 7 years ago) (diff)

--

AtmarkTechno Armadillo シリーズのEPICS化

AtmarkTechno社製の組込みプラットフォームArmadilloシリーズをEPICS対応させるための情報です。

Yokogawa F3 よりも安くて消費電力も少なくて済むので色々なところで使えるのではないかと思いますが、使っている人がほとんど居ないようなので、開発に使えるようにするために奮闘していくつもりです。
CPUが arm なので、androidのこともチヨットだけ視野に入れてます。

開発は基本的に開発元が提供している開発環境 ATDE 上で行います。ATDE は vmware 上の仮想環境でDebian系のlinuxです。クロスコンパイル環境が作れれば普通のLinux上でもできますが、今のところ成功していないので、、、 ATDEの設定等は会社のホームページを参照して下さい。

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。