« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
| 公告 |
☆★☆★☆★☆★☆★☆ 生活的点点记录,以及一些体会...........
喜欢是淡淡的爱,爱是深深的喜欢.
时间会见证一切.......................
欢迎大家指出错误,共同进步..........
期待中..............................
☆★☆★☆★☆★☆★☆ |
Blog信息 |
blog名称: 日志总数:162 评论数量:312 留言数量:0 访问次数:946766 建立时间:2005年5月17日 |

| |
[wince study]USB Mass Storage(转载) 文章收藏
oceanblue 发表于 2008/6/10 11:13:59 |
USB Mass Storage.中介 MDD 到 SCSI 間的就是 BOT了 (果然)。可以看到,跟USB Mass Storage Protocol 內容一樣,解開CBW 的就是BOT這一層Pdd InitializeUSB PostInit - Mass Storage ClassBOT_InternalInitBOT_ReadConfigurationValueGetEndpointDescriptorBOT_ReadConfigurationValueBOT_TransferThreadBOT_DeviceNotify..BOT_ResetPipeStateBOT_DeviceNotifyBOT_HandleRequestBOT_DeviceNotify..
BOT_InternalInit 呼叫 UfnMdd_Start ( &BOT_DeviceNotify ... )這樣就設定了 MDD 的pContext->lpDeviceNotifyenum.cpp:
ProcessConfiguration( )會呼叫這個function : pContext->lpDeviceNotify( ).
UfnMdd_Notify( )也會用SendDeiviceNotification( )呼叫 pContext->lpDeviceNotify( )很奇怪,UfnMdd_Notify( )不在 ufnmdd.cpp 中,卻在enum.cpp。所以整個"Notify"的流向就是..Pdd --> Mdd --> BOTPdd 送給 Mdd 的Notification Event:
UFN_MSG_BUS_EVENT
UFN_DETACH
UFN_ATTACH
UFN_RESET
UFN_SUSPEND
UFN_RESUME
UFN_MSG_BUS_SPEED
UFN_MSG_SETUP_PACKET
UFN_MSG_PREPROCESSED_SETUP_PACKET
UFN_MSG_SET_ADDRESS
UFN_MSG_CONFIGURED |
|
回复:USB Mass Storage(转载) 文章收藏
游客(游客)发表评论于2010/1/21 22:02:28 |
接上,没有发完。不好意思。
主要是描述符是怎样在mdd层建立管道出输给电脑的,又是怎样控制电脑进行驱动切换的。
请具体说说可以吗? |
|
回复:USB Mass Storage(转载) 文章收藏
游客(游客)发表评论于2010/1/21 22:00:18 |
我知道好像oak/driver/USBFN/CONTROLLER/MDD中有一个emum.CPP文件,好像和usb的枚举有关。而主机是靠ce发过来的设备描述符,来识别设备并加载驱动的。
而oak/driver/USBFN/CONTROLLER中的文件就是控制器,控制电脑那边来把ce识别为什么,在serial,storage,randis间切换的。 |
|
» 1 »
|