2012年5月12日土曜日

USBカメラをmbedに繋げてみた(2)

ITDを割り込みで受け取るように変更した。すこしは安定するようになってきた。
いままでは微妙なタイミングでなんとか動いていたのであろう。

WriteBackDoneHead割り込みで受け取る時の面倒なところはDoneキューに繋がっているTD,ITDから、
それらを発行したエンドポイントを処理しているクラスインスタンスを探さないといけないところです。

USBHostLiteの場合は発行した時にTDのリスト作っておいて、そこから検索しています。
USBHostShellの場合はクラスインスタンスの中にTDを内蔵しているのでTDのポインタ(アドレス)が
わかればインスタンスのアドレスが自動でわかるように作ってあります。TDをひとつしか使わないので
あればこれはうまい方法です。

今回の実装方法はTDとITDは別々の領域から切り出しているので、Doneキューに繋がっているTD、ITDの
アドレスから区別できるので、ITDの場合は無条件にアイソクロナス転送のエンドポイント処理をします。
アイソクロナス転送はいまのところひとつしか無いのでこの方法で動いています。

LifeCam UVC(USB Video Class) host alpha version

5月13日
・プログラムを更新。
---

0 件のコメント: