とりあえず動くようになったが、いまいち使いにくいので試行錯誤してみます。
fsusbについて
fsusbは千秋ゼミに改良版があるようです。UBW開発ツールアーカイブの中にある「UBW用tool」の fsusb-20090218.zip を取ってきて展開、srcフォルダで make、sudo make install でインストールできました。インストールは容易なのですが、やはり root権限がないと動作しません。
sdccUSB-cdcを書き込んでみる
こちらのページにある仮想COMポートのスケルトンを取ってきて、展開、hexフォルダにあるhexファイルを書き込んで動かしてみます。ブートモードに変更してから
$ sudo fsusb cdcusb.hex
で書き込んだ後、リセットをかけて、
$ screen /dev/ttyACM0
で仮想COMポートに接続してみると無事にエコーバックが帰ってきました。「Ctrl-A \」で切断して終了です。
sdccUSB-cdcをコンパイルして書き込んでみる
Synapticからsdccをインストールした後、srcディレクトリで make をかけるとパスのエラーが出ました。途中の「MY_BASE=C:/SDCC」を「MY_BASE=/usr」に修正すると make に成功しました。
その後、
$ sudo fsusb cdcusb.hex
で書き込んだ後、
$ screen /dev/ttyACM0
でエコーバックを確認できました。さらに、小文字大文字変換をするように変更して再度 make して書き込んで接続すると変更が反映されていることが確認できました。
まとめ
これでとりあえずUBW + sdccで仮想シリアルポート付きの何かを作る環境が整いました。
ただ、sdccUSB-cdcを改造しようとしてすぐに気づいたのですが、これはMicrochip社のUSBフレームワークをベースにしているようです。このフレームワークはずいぶん前にMPLAB上で弄ったことがあるのですが、割り込みではなくポーリングで動作しています。そのため、処理に時間がかかるとUSBプロトコル上で問題がありそうで、いまいち使いにくかったように思います。とはいえ、Linux上で開発できるのはありがたい話です。