梅沢無線電機 HT3080 8ポート シリアル(UART)ボードを、Armadillo-460と組み合わせて使用する方法を説明します。HT3080の詳しい情報は、メーカーWebサイトをご覧ください。
本Howtoでのおおまかな手順は以下のようになります。
本Howtoで使用するソフトウェアは以下の通りです。
- Linuxカーネルソース: linux-2.6.26-at15.tar.gz
- ユーザーランドイメージ: romfs-a460-1.00.img.gz
- パッチ: linux-a460-ht3080.patch
1. 事前準備
1.1. HT3080のジャンパー設定を行う
Howtoで使用する設定について説明します。同様の設定を行ってください。
詳しいジャンパー設定は、HT3080のマニュアルをご覧ください。
- JP1~JP4, JP6~JP9 (ベースアドレス = 0x0000)
3 極ジャンパポストで、●印の側にジャンパソケットを取り付けると1、反対側に 取り付けると0 が設定されます。尚、JP6~9は面実装の0Ω抵抗によって設定されます。
ジャンパ | JP1 | JP2 | JP3 | JP4 | JP6 | JP7 | JP8 | JP9 |
---|---|---|---|---|---|---|---|---|
設定 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
- JP5 (IRQ = 7)
ジャンパ | JP5 |
---|---|
設定 | 7 |
- JP10~JP80 (RS232)
ジャンパ | JP10~JP80 |
---|---|
設定 | 1-3, 4-6 |
2. HT3080対応Linuxカーネルを作成
2.1. カーネルのソースコードを展開してパッチを適用する
[atde3]$ wget http://download.atmark-techno.com/armadillo-460/source/kernel/linux-2.6.26-at15.tar.gz
[atde3]$ wget http://download.atmark-techno.com/armadillo-460/sample/linux-a460-ht3080.patch
[atde3]$ tar zxvf linux-2.6.26-at15.tar.gz
[atde3]$ cd linux-2.6.26-at
[atde3]$ patch -p1 < ../linux-a460-ht3080.patch
2.2. ビルド
Armadillo-460 + HT3080用のカーネルイメージを作成します。
前項で適用したパッチには、armadillo460_ht3080_defconfigが含まれているので、
それを用いて設定を行います。
[atde3]$ make armadillo460_ht3080_defconfig
[atde3]$ make CROSS_COMPILE=arm-linux-gnueabi-
:(ビルドには数分かかります)
[atde3]$ gzip -c arch/arm/boot/Image > linux.bin.gz
ソフトウェアマニュアルを参照し、新しい Linux カーネルイメージ(linux.bin.gz)を Armadillo-460 に書き込んでください。
3. 動作確認
作成したLinuxカーネルイメージを書き込み後、再起動してください。
起動ログには、以下のようにHT3080を認識したことが表示されます。
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0xb2000000 (irq = 199) is a 16550A
serial8250.0: ttyS1 at MMIO 0xb2000010 (irq = 199) is a 16550A
serial8250.0: ttyS2 at MMIO 0xb2000020 (irq = 199) is a 16550A
serial8250.0: ttyS3 at MMIO 0xb2000030 (irq = 199) is a 16550A
serial8250.0: ttyS4 at MMIO 0xb2000040 (irq = 199) is a 16550A
serial8250.0: ttyS5 at MMIO 0xb2000050 (irq = 199) is a 16550A
serial8250.0: ttyS6 at MMIO 0xb2000060 (irq = 199) is a 16550A
serial8250.0: ttyS7 at MMIO 0xb2000070 (irq = 199) is a 16550A
ログインして、"/sbin/getty -L [TTY名] 115200 vt102"を行うと該当ポートにログインプロンプトが表示されます。
ポート | CH1 | CH2 | CH3 | CH4 | CH5 | CH6 | CH7 | CH8 |
---|---|---|---|---|---|---|---|---|
TTY名 | ttyS0 | ttyS1 | ttyS2 | ttyS3 | ttyS4 | ttyS5 | ttyS6 | ttyS7 |
$ [root@armadillo460-0 (ttymxc1) ~]# /sbin/getty -L 115200 ttyS0 vt102