* Mon Dec 31 00:54:13 JST 2001 Naoyuki Sawa 僕がP/ECEを買った目的の一つに、USBプログラミングの勉強をしたい、という理由がありました。 というわけで、Linux用のP/ECEデバイスドライバの作成を開始しました。 ゆくゆくはこのデバイスドライバを介して、二台のP/ECEでアオミドロンの対戦ができたらいいな、と考えています。 (決してCPUロジックを作るのが面倒とか、そういう消極的な理由ではありませ...ちょっとあるかも^^;) 最初に、ご注意いただきたいことがあります。 それは、僕はUSBについてもデバイスドライバについてもド素人だ、ということです。 本稿には、ウソの情報や、機械にダメージを与えるプログラムが含まれている可能性があります。 充分にご注意くださいませ。 また、USBプロフェッショナル、およびデバイスドライバ作成の達人の皆様におかれましては、 ぜひとも本稿の間違い・バグ等をご指摘いただければ幸いです。 まず、LinuxにP/ECEを認識させること。そして、複数のP/ECE接続に対応すること。 以上2点を最初の目標として、デバイスドライバを書いてみました。 現状では何の機能もなく、デバイスドライバとは言えない代物ですが... これだけではあんまりなので、デバイスファイル(/dev/usb/piece0〜15としました)を読むと、 P/ECEのバージョン情報文字列を返すようにしてみました。 現時点のソースはこちらです。
左はP/ECE一号機。BIOS 1.12です。 右はP/ECE二号機。BIOS 1.14です。 光ってすごく見づらいですけど、何とか読めますよね? | |
デバイスドライバが入ってることを確認。 一番最初に表示されている、 piece 4272 0 (unused)です。 ちなみにOSは、Kondara MNU/Linux 2.0です。 | |
一号機を接続!認識されました。 中ほどに表示されている、 Manufacturer: OeRSTED, Inc.です。 | |
続いて二号機を接続!こちもOKです。 中ほどに表示されている、 Manufacturer: OeRSTED, Inc.です。 上のほうに、さっきの一号機のメッセージが残っていますね。 | |
一号機の情報を読み出します。OS version: 1.12(1/12/3)と表示されているので、間違いなく一号機です。 | |
次は二号機の情報を読み出します。OS version: 1.14(1/12/21)二号機ですね。 上のほうに一号機のメッセージが残っています。 もちろんこのとき、一号機も二号機も接続されたままです。 (一号機を抜いてから二号機を挿したりはしていません。) |