最近とんと使っていないGP2Xだが、開発支援用拡張インターフェースボードを購入した。入手できるときにしておかないと、という品だからねえ。
GP2X の下部になんとなく付いている拡張端子。ここに繋がる機器がビデオ出力ケーブルしかなかったのでいまひとつではあったが、諸兄の解析により USB「ホスト」が出力されていることが判明し界隈は俄然盛り上がった。
USBホストを有効にするドライバなどもその利用方法が公開されていたりしたが、ファームウェアの Ver2.0 にて正式なサポートとなった。
でもコネクタがちょっと特殊なんで今ひとつ拡張ポートは利用しにくかったのよね。
そこで、このインターフェースボードが企画されたというわけ。
拡張端子に引き出されていた信号は、
・ビデオ、音声信号
・USBホスト
・シリアル通信
・JTAGポート
といったところ。その全てを標準コネクタに繋ぐための緩衝ボードがこのインターフェースボードってわけ。
USBコネクタの下に付いている四角いチップはなんの変哲もないUSB2.0ハブコントローラ。D-SUB9ピンの脇に付いているチップはRS-232Cレベルコンバータ。音声の近くにはアンプ。
写真で見ると左に付いているD-SUB25ピンは何かというとこれが JTAGインターフェース。隣のチップは 74LVC244AD でレベルインターフェース。つまり、これは ByteBlasterMV とか同等のパラレル接続 JTAG インターフェースなのだ。
JTAG で何ができるかというと、すっぱりと BIOS 書き込み用と考えるのが順当なところだろうね。そりゃま JTAG なんで、JTAG デバッガを繋げばローレベルデバッグもできるだろうけれども、Linux の様なユーザーエリアメモリ管理を持つ OS の上でのソフトはデバッグしにくい(つか対応デバッガが高価で少ない)ので、BIOS かブートシーケンスか、Linux カーネルあたりをデバッグするのが関の山じゃないかと。
むしろRS-232Cポートの方だね。
これがあることで printf デバッグができるようになるし、gdb-stub をしこんでリモートでバッグもできるようになる。それよりもコンソールとして GP2X 上の shell を扱えるようになるので直近でも遊べるインターフェースだ。
起動時のコンソール出力は↓こんな感じ。
gp2x_boot.txt
起動後 Ctrl+C でメニューシェルが停止して Shell に戻ってくるので後はコマンドラインでいじり倒し。
この RS-232C ポート、GPIO でもあるらしいのだけれども、ブートローダーの時点でシリアルとして使っているのでコントロール用には使えないと思う。
USB はモジュールを見る限り、ストレージ・キーボード・マウス・HID(ジョイスティック?)・Etherアダプタが繋げる様だ。まあ、カーネルモジュールを自分で用意してドライバ追加で色々うはうはできるだろうけど。
当然 swapon コマンドもいるので、HDD を繋いでよりスワップを追加したり、強大なシステムを構築したりするも良し。
Ether の方はファームウェアのメニューから起動できるし、WEB,FTP,TELNET,SAMBA といったデーモンも本体メニューから起動できるようになっている。ビバ、ファームウェア Ver2.0。
若干奇妙だけれども、PSPをストレージとして USB接続している図。SD-cardしか持たない GP2X がメモリースティック内にアクセスできる。(意味ねー)
全部揃えて 4万円くらいというのは高いのか安いのかわからないけれども、映像や音声の処理能力を考えると組み込み評価ボードとしてはいけてる線なのかもしれない。
—–