| 
 
| 
| 
| | « | October 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 | 31 |  | |  | 
 |  公告
 |  
| ☆★☆★☆★☆★☆★☆生活的点点记录,以及一些体会...........
 喜欢是淡淡的爱,爱是深深的喜欢. 时间会见证一切....................... 欢迎大家指出错误,共同进步.......... 期待中.............................. ☆★☆★☆★☆★☆★☆ |  
 
 
 
 
 
 
| Blog信息 |  
| blog名称:日志总数:162
 评论数量:312
 留言数量:0
 访问次数:950150
 建立时间: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 » 
 
 |