Re: [問題] USB mass storage driver
沒有android的code或板子,但剛拿我手上的Aria手機試了
一下,看起來adb與mass stoarge
走的bulk ep number的確是不一樣的,我想原po可以順著adb
對應ep的設法檢查一次,搞不好是ep的中斷沒有enable,
下面提供給你參考(有錯的話別怪我啊XD):
如果我手機連線模式切成debug的話,此時列舉的參數
重點摘錄如下:
Configuration Descriptor:
bNumInterfaces: 0x02 //we have two interface.
bConfigurationValue: 0x01
注意到,這邊的bNumInterfaces為2,顯然此時為一個複合性裝置;
(偷偷說,其實敝公司也有類似的需求,但是因為硬體FIFO數不夠,
所以不能弄成複合裝置)
再來是各個interface的列舉值,摘列重點如下:
//For mass storage
Interface Descriptor:
bInterfaceNumber: 0x00
bNumEndpoints: 0x02
bInterfaceClass: 0x08 //this class is for mass storage
Endpoint Descriptor:
bEndpointAddress: 0x83 IN
Endpoint Descriptor:
bEndpointAddress: 0x02 OUT
//0x2 is bulk out for CBW and 0x83 is bulk in for CSW.
//For ADB
Interface Descriptor:
bInterfaceNumber: 0x01
bNumEndpoints: 0x02
iInterface: 0x07
0x0409: "ADB"
Endpoint Descriptor:
bEndpointAddress: 0x84 IN
Transfer Type: Bulk
Endpoint Descriptor:
bEndpointAddress: 0x03 OUT
Transfer Type: Bulk
//0x3 is bulk out for adb and 0x84 is for bulk in.
由此可見,當我們開啟debug模式的時候ADB跟mass storage走的ep address是不同的
再來是利用usb tracer之類的軟體來看一下(如果你手邊有CATC的話就請出來用吧):
假設我利用adb shell 下了一個ls的指令,此時有關ls這兩個字串的封包如下:
EndpointAddress: 0x3
Data: 6C 73 0A //ls
然後你會在bus上錄到一堆ep address 為0x2 and 0x83 的封包應該是
mass stoagre用來保持連線or詢問狀態之類的
最後,如果我手機連線模式切成磁碟機,就只會看到一個interface
ep address與複合式裝置的mass storage一樣:
Configuration Descriptor:
wTotalLength: 0x0020
bNumInterfaces: 0x01 //only one for mass storage
Interface Descriptor:
bInterfaceNumber: 0x00
bNumEndpoints: 0x02
bInterfaceClass: 0x08
Endpoint Descriptor:
bEndpointAddress: 0x83 IN
wMaxPacketSize: 0x0200 (512)
Endpoint Descriptor:
bEndpointAddress: 0x02 OUT
wMaxPacketSize: 0x0200 (512)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 175.180.243.70
※ 編輯: askacis 來自: 175.180.243.70 (01/10 22:45)
※ 編輯: askacis 來自: 175.180.243.70 (01/10 22:48)
※ 編輯: askacis 來自: 175.180.243.70 (01/10 23:07)
→
01/11 01:18, , 1F
01/11 01:18, 1F
推
01/11 09:35, , 2F
01/11 09:35, 2F
→
01/11 09:36, , 3F
01/11 09:36, 3F
→
01/11 09:36, , 4F
01/11 09:36, 4F
→
01/11 09:37, , 5F
01/11 09:37, 5F
→
01/11 09:38, , 6F
01/11 09:38, 6F
→
01/11 09:39, , 7F
01/11 09:39, 7F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):