next_group up previous
: 2001年4月分 : TOP page : 8月分

legacy free なマシンによるクロス開発環境の構築

榎本歩

平成12年9月23日

はじめに

最近の小型ノートPCなどをクロス開発用に使用する場合問題になるのは、 それらが従来のシリアル/パラレルポートなど扱いが容易な (特にターゲット側にとって)インターフェースを持たなくなってきている ことです。 新しいインターフェースはPlug and Playをうたったものがほとんどで、 それらは接続される機器に一定のプロトコルを要求します。 しかし、ボードコンピュータなどの開発初期段階で欲しいのは、とにかく シンプルなインターフェースです。

といっても、新しいインターフェースはやはり便利であり、(例えばUSBで あればハブによる拡張、電源供給など)その利点は生かしたいものです。 幸い、USB⇔シリアル/パラレルポートのアダプタは各種市販されています ので、これらをlinuxから使えないか、検討してみました。

市販のUSBシリアルアダプタ

今回は、とりあえずシリアルポートに的を絞っています。 kernel-2.4.0-testXのUSBサポートには、いくつかのUSBシリアルアダプタの ドライバが含まれています。やはりこれらは海外製品が主であり、 国内で一般的(と思われる)IO-DATA製などはありません。

ただ、このなかで Keyspan PDA adapterについては、国内でも市販されています (ビックカメラで確認)。そこでこれを利用しようと思ったのですが、 実用的に使用できるのは2.4.0-test5かtest6あたりかららしく、 2.2バックポートがベースにしているtest2のものとはだいぶコードが 違っているようです。

USB学習キット

次に、以前に購入していた、プラネックスコミュニケーションズ製USB学習キット の利用を検討しました。 これは、AMDのUSBインターフェース内蔵CPU、Am186CUを使用したターゲット デバイスと、Windows用のデバイスドライバ、ユーザアプリケーションから 利用するためのライブラリをセットにしたものです。

ターゲット側の開発環境として、次のものが用意されています。

ユーザアプリケーションは、添付のDLLを呼び出せる言語(VC++、Delphi、VBなど) であれば作成できるようになっています。

linuxからの利用

CPUのAm186はシリアルポートを内蔵しており、ドライバICを追加すれば 十分シリアルアダプタとして利用できます。linuxのUSBサポートの調査を 兼ねて、この方法でシリアルアダプタを作成してみることにしました。

まず必要な作業は、このキットをlinuxから利用できるようにすることです。 具体的には、以下の手法をとりました。

ターゲット側コンパイラ
x86リアルモード用コンパイラとして なじみのある、LSI-C86 試食版をとりあえず利用する(intel-hexファイル を生成する必要があるので、添付のコンパイラは使えない)。
ダウンローダ
下記のライブラリを用いて、linuxにポートする。
ホスト側デバイスドライバ
kernel-2.4.0-test2ベースの2.2バックポート patchを使用。
ホスト側ユーザアプリケーション
libusb-0.1.1を使用。

ここで、libusbは、デバイスドライバのUSBDEVFSインターフェースを利用して、 ユーザコードからUSBデバイスを直接制御するライブラリです。

以上の作業により、ターゲット側で任意のコードを実行し、ホストとUSBによる 通信を行うことが可能になりました。

シリアルアダプタの作成(今後の予定)

実際にシリアルアダプタとして利用するには、さらに以下の作業が必要です。

ハードウェアの追加
EIA232ドライバICとDサブコネクタを追加します。
ターゲット側コードの作成
シリアルポートとUSBの間の転送を行うコードを作成します。
ホスト側アプリケーション
第1段階として、上記ライブラリを利用した ターミナルソフトを作成します。
デバイスドライバ
最終的には、通常のシリアルドライバをエミュレートする デバイスドライバを作成します。

参考URL

USB学習キット
http://www.planex.co.jp/usblk/index.htm
LSI-C 86 試食版
http://www.vector.co.jp/soft/maker/lsi/se001169.html
linux USBサポート
http://www.linux-usb.org/
libusb
http://sourceforge.net/projects/libusb/

この文書について...

legacy free なマシンによるクロス開発環境の構築

この文書はLaTeX2HTML 翻訳プログラム Version 99.1 release (March 30, 1999)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds,
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

日本語化したもの( 99.1 release + JA patch 3.0 (September 15, 1999) 版)

Copyright © 1998, 1999, Kenshi Muto, Debian Project.

を用いて生成されました。

コマンド行は以下の通りでした。:
latex2html -split 0 -no_auto_link -html_version 4.0 rep-200009.tex.

翻訳は Ayumu ENOMOTO によって 平成13年4月18日 に実行されました。


next_group up previous
: 2001年4月分 : TOP page : 8月分
Ayumu ENOMOTO 平成13年4月18日