またブログをサボってました。
例年夏になると暑さのあまり、何もしなくなりますが、今年は色々刺激を受けたせいか、手は動かし続けていました。そのせいというわけでもないですが、ちょっとばて気味ですね。
以下、特に整理せずに近況を書いておきます。
TOPPERS/JSP for Blackfin 3.3.1リリース
TOPPERS/JSPカーネル1.4.3用Blackfin依存部3.3.1をリリースしました。7月の3.3.0に対する緊急リリースです。このリリースではADSP-BF533/537/504/518/548/592に対応しています。
緊急リリースを出したのは、デバッガ使用時に動作が安定しない問題をついに解決したからです。通常動作時には問題無いとはいえ、実に数年もかかった問題でした。わかってみると理由は簡単なんですけどね。
bfin-elf-gdb / gnICE+の組み合わせで実に快適にデバッグできます。また、gdb利用時のMMRアクセス方法にも改良が加えられており、必要に応じてシンボルファイルをロードしながら作業できます。
ドキュメントをTJBNシリーズとしてまとめる
これまでBlackfin依存部のドキュメントとユーザーズマニュアルの二本立てでしたが、文書に通し番号を付けて体系的に管理することにしました。
細かいTIPSなどは、この方法のほうが上手く管理できます。文書を書きたい人はTJBN000を参照してください。
Gitに移行
Blackfin依存部3.3.0リリースをもってプロジェクトのCVSは凍結し、ソースコード管理システムをGitに移行しました。管理ポリシーはTJBN003に書いてあります。
まだ手になじんでない部分もありますが、CVSへの批判と大規模システムの管理知識の上にたって開発されたシステムだけあり、よく考えられているなという印象です。特にローカル・リポジトリの中で好きなだけ実験できると言う点はすばらしいです。
Kermitが使用する/dev/ttyUSBnポートを固定する
USBシリアル変換アダプタは、小型マイコンボードの開発に欠かせませんが、抜き差しする環境によってLinuxのポートの名前が変わる点にうんざりしている人は多いと思います。
「ああ、これがいつも/dev/ttyUSB0であってくれたら」と天を仰いでいる人は多いのではないでしょうか。特にKermitのような端末ソフトを立ち上げたままアダプタを抜き差してもデバイス名が変わるために、うんざりするような手続きが必要になります。
この問題を解決する方法をTJBN006にまとめましたので是非参照してください。一ひねりすることでストレスなく端末ソフトを使うことができるようになりました。
I2C制御タスク開発中
カーネル開発が落ち着き、デバッグ環境も安定したためにようやくオーディオフレームワークへと重心を移せるようになりました。
現在CODEC LSI制御用のI2Cタスクを開発中です。APIは以前TOPPERS/ASP for LPC用に開発したものと同じにしてあります。
- 送受信データをバッファで受け取る
- RSTARTによるWRITE-READに対応
- セマフォによる排他処理により、複数のタスクが安全にAPIを使える
TOPPERS/JSP対応ですので、当然ポーリングなんかしません。まだリリースまで時間がかかりますが、personalforgeで公開中です。
Bluetank
ShintaさんからBluetank基板をいただきました。ACB-BF592を擁するオーディオ実験基板です。
まだI2C制御タスクが完成していないので、ちょっとしたテストコードを書いただけです。これもpersonalforgeで公開中。
その他
なんだかんだ相変わらず注意力散漫のままゆっくり進んでいます。あれこれしたいことはあるんですけどね。