ビットレート320Kのファイルを再生した際に生じる問題は、やはりMCIのドライバに起因するものでした。複数のセクターを連続して読み出した場合には、DMAがセクター毎に発生し、そのたびにDMA終了割り込みが発生します。MCIのドライバをTOPPERS/JSP対応に変更した際に、DMAの終了待ちをセマファを使って wai_sem() したのはいいのでですが、その最大値が1 になっていました。そのため、wai_sem()する前に連続してDMA終了割り込みが発生してしまうと、セマファの値が2以上になるべきところが、1にしかならないために、DMAの終了を検出し損ねていました。
たまたま320Kのファイルを再生する際に発生する頻度が高かっただけで、他のビットレートでも問題は時々発生していたようです。セマファの最大値をバッファのサイズに合わせて4に修正したところ、半日近く連続して繰り返し再生しても問題は発生しなくなりました。これで、そこそこ実用的になったと思います。
きょう〆切だったencafeの電子工作応募作品群を眺めていたら、chiakiさんのTimpy Rev8.0の動画を発見。前回のMTMで実物を見てはいるのですが、改めてその小ささと完成度の高さを痛感させられます。ユニバーサル基板でしかモノを作れない我が身が悲しい。それに、動画もやはり全体像がわかる、いい作品にしあがっていますよね。わたしも、もう少しマシな動画を用意したいと思います。そういえば、W-SIM電話機ジャケットはひとつも全体像が見える動画を上げていないことに気がつきました。これも、近いうちになんとかしたいと思います。
たまたま320Kのファイルを再生する際に発生する頻度が高かっただけで、他のビットレートでも問題は時々発生していたようです。セマファの最大値をバッファのサイズに合わせて4に修正したところ、半日近く連続して繰り返し再生しても問題は発生しなくなりました。これで、そこそこ実用的になったと思います。
きょう〆切だったencafeの電子工作応募作品群を眺めていたら、chiakiさんのTimpy Rev8.0の動画を発見。前回のMTMで実物を見てはいるのですが、改めてその小ささと完成度の高さを痛感させられます。ユニバーサル基板でしかモノを作れない我が身が悲しい。それに、動画もやはり全体像がわかる、いい作品にしあがっていますよね。わたしも、もう少しマシな動画を用意したいと思います。そういえば、W-SIM電話機ジャケットはひとつも全体像が見える動画を上げていないことに気がつきました。これも、近いうちになんとかしたいと思います。
http://www.chiaki.cc/cgi-bin/yybbs/yybbs.cgi