[Armadillo:05628] Re: Armadillo-220でのUSB、HID通信について

mizo email@hidden
2010年 8月 17日 (火) 10:14:08 JST


溝渕です。

まず、
http://armadillo.atmark-techno.com/dev/kernel-beta-release-20100108
にある通り、ベータ版のカーネルでは、USB関連の動作確認を十分行なっていな
いことをご了承ください。

Windows PCで動作確認されていますが、ATDE上でも動作確認行なってみてください。

os prod wrote:
> カーネルのUPデートはうまくいったのですが
> 肝心のUSB,HIDへアクセスがうまくいきません
> (キーボードのサンプルは正常に動いてます)
> 内容としましては4byteの命令コードを送信して18byteが返ってくる仕様です。
> それで送信、受信のresultの数はともに4byte,18byteと正しいのですが
> バッファに入ってくる値が正しくないのです。
> アクセス方法は
> dev->config->interface->altsetting->bInterfaceClass=3
> からHIDと判断して
> 送信時:
> char msg1[]={0x00,0x13,0x01,0x00};
> result=usb_interrupt_write(dh, 1,msg1, sizeof(msg1), l_Timeout);
> if(result<0){printf ("_Control message error. (%s)\n", usb_strerror());}
> printf("Sresult1=%d \n",result);//4
> 受信時:
> char readbuf[18];
> memset( readbuf, 0, 18 );
> printf("ep=%d \n",ep);//129
> result=usb_interrupt_read(dh, ep, readbuf, sizeof(readbuf), l_Timeout);
> printf("result=%d \n",result);//18
> if(result<0){printf ("interrupt read error. (%s)\n", usb_strerror());}
> l_RBLen = (int)sizeof(readbuf);
> for(i=0;i<l_RBLen;i++)
> {
> printf("_readbuf[%d]=%d \n",i,readbuf[i]);
> }
> です。
> その他でバルクでの読書やusb_get_string_simple等々色々試してはいるのです 
> が。。。
> Windowsでの
> Private Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (pTo As 
> Any, uFrom As Any, ByVal lSize As Long)
> Private Declare Function RtlMoveMemory Lib "kernel32" (dest As Any, src 
> As Any, ByVal Count As Long) As Long
> での方法うまくいくようです。
> あと下記の箇所もご教授頂けると助かります。
> libusbのバージョンが古いのかと思いlibusb-0.1-4_0.1.12-5_arm.debから
> libusb-0.1-4_0.1.12-13_arm.debへバージョンアップを
> 行いたいのですが下記のエラーでうまくUpDateができません
> 実行コマンド:
> dpkg-cross -a arm -b libusb-0.1-4_0.1.12-13_arm.deb 
> libusb-dev_0.1.12-13_arm.deb
> dpkg -i libusb-0.1-4-arm-cross_0.1.12-13_all.deb 
> libusb-dev-arm-cross_0.1.12-13_all.deb
> 結果:
> //----------------------------------------------------------------------------------------
> email@hidden:/home/atmark <mailto:email@hidden:/home/atmark># dpkg -i 
> libusb-0.1-4-arm-cross_0.1.12-13_all.deb 
> libusb-dev-arm-cross_0.1.12-13_all.deb
> (データベースを読み込んでいます ... 現在 80661 個のファイルとディレクト 
> リがインストールされています。)
> libusb-0.1-4-arm-cross 2:0.1.12-5 を 
> (libusb-0.1-4-arm-cross_0.1.12-13_all.deb で) 置換するための準備をしてい 
> ます ...
> libusb-0.1-4-arm-cross を展開し、置換しています...
> libusb-dev-arm-cross 2:0.1.12-5 を 
> (libusb-dev-arm-cross_0.1.12-13_all.deb で) 置換するための準備をしていま 
> す ...
> libusb-dev-arm-cross を展開し、置換しています...
> dpkg: 依存関係の問題により libusb-0.1-4-arm-cross の設定ができません:
>  libusb-0.1-4-arm-cross は以下に依存 (depends) します: libc6-arm-cross 
> (>= 2.7-1) ...しかし:*システム上の libc6-arm-cross のバージョン は 
> 2.3.6.ds1-13etch2 です。
> dpkg: libusb-0.1-4-arm-cross の処理中にエラーが発生しました (--install):
>  依存関係の問題 - 設定を見送ります
> dpkg: 依存関係の問題により libusb-dev-arm-cross の設定ができません:
>  libusb-dev-arm-cross は以下に依存 (depends) します: 
> libusb-0.1-4-arm-cross (= 2:0.1.12-13) ...しかし:
>   パッケージ libusb-0.1-4-arm-cross はまだ設定されていません。
>  libusb-dev-arm-cross は以下に依存 (depends) します: 
> libusb-0.1-4-arm-dcv1 ...しかし:
>   パッケージ libusb-0.1-4-arm-dcv1 はまだインストールされていません。
>   パッケージ libusb-0.1-4-arm-cross は libusb-0.1-4-arm-dcv1 を提供して 
> いますが、まだ設定されていません。
> dpkg: libusb-dev-arm-cross の処理中にエラーが発生しました (--install):
>  依存関係の問題 - 設定を見送り� $^$9�
> 以下のパッケージの処理中にエラーが発生しました:
>  libusb-0.1-4-arm-cross
>  libusb-dev-arm-cross
> //----------------------------------------------------------------------------------------

これは、メッセージに書いてある通り、libusbが、libc6の特定バージョンに依
存していることが原因です。

以上です。

> ATDEのバージョンはatde2-20090403です。
> dmegとUSBの情報はファイルに添付しています。
> ベンダーID,プロダクトIDは
> idVendor=1234, idProduct=0001
> です。




armadillo メーリングリストの案内