久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区


曙海教育集團(tuán)論壇VxWorks專區(qū)VxWorks技術(shù)討論區(qū) → vxworks(接上)


  共有9821人關(guān)注過本帖樹形打印

主題:vxworks(接上)

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個(gè)性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發(fā)短信
等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
vxworks(接上)  發(fā)帖心情 Post By:2010-11-17 10:39:27

 (2)“熱插拔”調(diào)用。執(zhí)行順序與其意義如下:
Boot Code里調(diào)用:
a.USB class driver初始化入口點(diǎn);
b.USB class driver調(diào)用usbdlnitialize();
Hot-Swap code調(diào)用:
c.Hot-Swap 鑒別USB主控制器的連接或斷開;
d.Usbdlnitialize();
e.UsbdPciConfigHeaderGet():讀USB主控制器配置頭;
f.UsbdHedAttaeh():連接HCD,將其作為特定的主控制器。
   

       因?yàn)闊岵灏慰梢栽谌魏螘r(shí)刻發(fā)生,所以USBD和其Client都必須被寫成可以動(dòng)態(tài)識(shí)別USB設(shè)備被插入還是被拔出。當(dāng)主控制器連接到系統(tǒng)時(shí),USBD 自動(dòng)地鑒別與其相連的設(shè)備,并通知相關(guān)的client;同樣,拔出設(shè)備時(shí),也要通知相關(guān)設(shè)備。重要的是,USBD 的client,比如USB class driver,在client初始化時(shí),從不設(shè)想特定的設(shè)備已經(jīng)出現(xiàn);而在其他時(shí)候,這些驅(qū)動(dòng)隨時(shí)檢查設(shè)備是否已經(jīng)連接到系統(tǒng)上。

       4.4 總線任務(wù)
   

       對(duì)每一個(gè)連接到USBD 的主控制器,例如插入或拔出設(shè)備,USBD都會(huì)產(chǎn)生一個(gè)總線任務(wù),來監(jiān)控總線事件。一般情況下,這些任務(wù)是休眠的(不消耗CPU),只有當(dāng)USB hub報(bào)告它的一個(gè)端口有變化時(shí),它們才被喚醒。每一個(gè)USBD總線任務(wù)有VxWorks任務(wù)名:UsbdBus。
   

       雖然HCD委托USBD來管理,但有可能HCD 親自監(jiān)視主控制器事件。例如WindRiver提供了UHCI和OHCI的HCD來創(chuàng)造這樣的任務(wù)。對(duì)于WindRiver的UHCI模塊(usbHcdUheiLib),后臺(tái)任務(wù)只是被周期地喚醒,目的是為了檢查超時(shí)IRP(用一個(gè)中斷來通知OHCI根hub發(fā)生改變)。

       用以在USBD和USB之問進(jìn)行通信的client模塊,除了調(diào)用usbdlnitialize()外,必須調(diào)用usbClientRegister()使其在USBD注冊(cè)。當(dāng)一個(gè)client注冊(cè)到USBD時(shí),USBD把每一個(gè)以后將要用到的client的數(shù)據(jù)結(jié)構(gòu)定位,并跟蹤那個(gè)client的請(qǐng)求。
   

       對(duì)于每一個(gè)client,在client注冊(cè)過程中,USBD還創(chuàng)建了一個(gè)callback任務(wù)。在成功注冊(cè)client后,USBD返回一個(gè)句柄USBD_CLIENT_HANDLE。以下對(duì)USBD的調(diào)用,將會(huì)用到這個(gè)句柄。當(dāng)所有句柄都不需要時(shí),可以調(diào)用usbdClientUnregister()來釋放每一個(gè)client的數(shù)據(jù)結(jié)構(gòu)和callback任務(wù)。注意:此時(shí)所有client要求的任務(wù)都會(huì)被取消。

       例如:注冊(cè)一個(gè)叫USBD_TEST的client,再注銷。
       注冊(cè):usbdClientRegister("USBD_TEST',&usbdClientHandle);
       注銷:usbdClientUnregister(usbdClientHandle);

       4.5 client回調(diào)(callback)任務(wù)
   

       USB操作是嚴(yán)格遵守時(shí)序的。例如為使中斷傳輸和同步傳輸正確工作.需要依靠時(shí)鐘中斷。在一個(gè)有幾個(gè)不同client出現(xiàn)的主系統(tǒng)中.總是有可能出現(xiàn)一個(gè)client打斷其它c(diǎn)lient傳輸事件的發(fā)生。WindRiver USBD建議用client callback任務(wù)來解決這個(gè)問題。許多USB事件可以導(dǎo)致一個(gè)USB client的callback任務(wù)。例如, 每當(dāng)USBD 完成USB IRP后,client的IRP callback函數(shù)被激活。同樣,當(dāng)USBD識(shí)別出一個(gè)動(dòng)態(tài)連接事件后,會(huì)激活一個(gè)或更多的動(dòng)態(tài)attach callback操作。但不是馬上激活這些回調(diào)操作, 而是安排合適的相應(yīng)的USBD client的回調(diào)任務(wù)來執(zhí)行callback。
   

       一般的情況下,每一個(gè)client的callback任務(wù)處于“休眠”態(tài)(阻塞態(tài))。每一個(gè)client的callback,繼承了usbdClientRegister()產(chǎn)生的VxWorks任務(wù)優(yōu)先級(jí)。這確保了每一個(gè)callback按其client的任務(wù)優(yōu)先級(jí)來執(zhí)行,而且可以利用優(yōu)先級(jí)來寫client,保證對(duì)時(shí)間要求嚴(yán)格的USB傳輸。由于每一個(gè)client有它自己的callback任務(wù),因此在callback期間,它們有很大的靈活性決定可以做什么。例如,允許在不破壞USBD或其它USBD client性能的條件下,使callback執(zhí)行代碼運(yùn)行至阻塞態(tài)。
    Client callback task有VxWorks任務(wù)名:tUsbdCln。

       4.6 USBD內(nèi)部Client
   

       當(dāng)?shù)谝淮纬跏蓟疷SBD時(shí),由USBD產(chǎn)生并注冊(cè)一個(gè)內(nèi)部client,以跟蹤USB請(qǐng)求。
   

       USBD 可以產(chǎn)生什么類型的USB請(qǐng)求呢? 所有USBD與USB設(shè)備的傳輸,均利用調(diào)用USBD client的形式來完成。例如, 當(dāng)一個(gè)設(shè)備第一次連接到系統(tǒng)時(shí).USBD用一個(gè)控制管道(control pipe) 自動(dòng)地創(chuàng)建設(shè)備需要的所有的control pipe,即USBD client要用usbdPipeCreate()來創(chuàng)建一個(gè)與USB endpoint0通話的通道,然后所有USBD 內(nèi)部、外部client通過這個(gè)管道來發(fā)送諸如usbdDescriptorGet()或usbdFeatureGet()等的函數(shù),進(jìn)行操作。
   

       所以,USBD 的一個(gè)機(jī)制就是USBD 循環(huán)利用它自己的entry point,而內(nèi)部chent跟蹤這些請(qǐng)求。

       4.7 動(dòng)態(tài)連接的注冊(cè)
   

       每當(dāng)一個(gè)特定類型的設(shè)備插入或拔出時(shí),USBD client都通知上一層。利用調(diào)用usbdDynamicAttachRegister()操作,client可以指定一個(gè)callback操作,以便可以獲取這樣的通知。
   

       USB設(shè)備類型用class,subclass,protocol來區(qū)別。標(biāo)準(zhǔn)的USB 類在usb.h 中定義為USB_CLASS_XXXX。Subclass和protocol根據(jù)class來定義, 因此這些常數(shù)根據(jù)特定的class在頭文件中定義。
   

       有時(shí), 一個(gè)client當(dāng)利用usbdDynamicAttachRegister()進(jìn)行注冊(cè)時(shí),只對(duì)特定的class,subclass,protocol感興趣。例如,USB鍵盤類驅(qū)動(dòng)usbkeyboardLib, 注冊(cè)了Human Device Interface (HID) 類,subclass 是USB_SUBCLASS_HID_ BOOT,protocol是USB_PROTOCOL_HID_BOOT _KEYBOARD。通過callback機(jī)制的響應(yīng),每當(dāng)一個(gè)設(shè)備完全符合這樣的標(biāo)準(zhǔn), 從設(shè)備上插入或拔出時(shí),SBD便通知給keyboard class driver。而在其它情況下,client關(guān)注的范圍更廣泛了。常量USBD_NOTIFY(定義在usbdLib.h)可以替代任意的class,subclass,protocol。例如,USB打印機(jī)USB驅(qū)動(dòng),usbPrinterLib, 其class等于USB_CLASS_PRINTER,subclass 等于USB_SUBCLASS_PRINTER (usbPrinter.h),protocol等于USBD_ NOTIFY_ ALL。典型的,當(dāng)一個(gè)client只調(diào)用一次usbdDynamicAttachRegister()時(shí),對(duì)一個(gè)client能擁有的并發(fā)通知請(qǐng)求數(shù)目沒有限制。

       4.8 Node ID
   

       USB設(shè)備一般用USBD_NODE_ID來區(qū)別。從其作用來看,USBD_ NODE_ ID 是USBD 用來跟蹤一個(gè)設(shè)備的句柄。它與USB設(shè)備真正的USB地址無關(guān)。這表明client并不真正關(guān)心想要了解設(shè)備是物理上與哪一個(gè)USB主控制器相連。應(yīng)用為每個(gè)設(shè)備抽象定義的Node ID, 使client可以不用考慮物理設(shè)備的連接細(xì)節(jié)以及USB地址分配, 并允許USBD 在其內(nèi)部對(duì)這些進(jìn)行詳細(xì)的管理。
   

       當(dāng)一個(gè)client通知有一個(gè)設(shè)備連接或斷開時(shí),USBD經(jīng)常通過USBD_NODE_ID來定位設(shè)備。同樣,當(dāng)一個(gè)client想通過USBD與一個(gè)特定的設(shè)備通信時(shí),它必須向USBD傳遞那個(gè)設(shè)備的USBD_NODE_ID。

       4.9 總線編號(hào)(bus enumeration)操作
   

       usbdLib模塊提供了usbdBusCountGet(),usbdRootNodeldGet(),usbdHubPortCountGet(),usbdNodldGet()操作。它們被一起稱作總線編號(hào)操作。它們使USBD Client對(duì)連接到每一個(gè)主控制器上的設(shè)備進(jìn)行編號(hào)。
   

       這些操作對(duì)于診斷程序和測(cè)試工具很有用,例如usbTool(WindRiver提供的一個(gè)測(cè)試工具)。但是,利用它們編號(hào)之后,調(diào)用者無法知道USB的拓?fù)浣Y(jié)構(gòu)是否變化。因此, 建議USB class driver的開發(fā)者不要用這些操作。

       4.10 數(shù)據(jù)傳輸
   

       一旦client配置完成一個(gè)設(shè)備,就開始利用USBD提供的管道和傳輸功能與設(shè)備進(jìn)行數(shù)據(jù)交換。傳輸種類(分為控制、塊、中斷和同步傳輸)用一個(gè)USB_IRP數(shù)據(jù)結(jié)構(gòu)來描述。 USB_IRP 的具體描述請(qǐng)參見HCD_FUNC_IRP_SUBM1T。USB數(shù)據(jù)傳輸被定位于每一個(gè)設(shè)備的特定endpoint。在USBD client和特定的設(shè)備endpoint之間的通道被稱作管道(pipe)。每一個(gè)管道有以下若干特性:
USBD_NODE_ID;
設(shè)備的endpoim 數(shù)目;
數(shù)據(jù)傳輸方向;
帶寬需求;
延時(shí)需求。
   

        為了和設(shè)備交換數(shù)據(jù),client必須先創(chuàng)建管道。作為結(jié)果,USBD得到了一個(gè)USBD_PIPE_HANDLE,它被用于隨后對(duì)這個(gè)管道的所有client操作。
   

       當(dāng)client企圖創(chuàng)建一個(gè)管道時(shí),USBD會(huì)檢查是否有足夠的可用帶寬。對(duì)于中斷和同步傳輸,帶寬限制是必需的。USBD不允許把90% 以上的可用帶寬分配給中斷和同步管道;而對(duì)于控制和塊傳輸,則沒有帶寬的限制。同時(shí),保證至少10% 的帶寬用于控制傳輸,對(duì)塊傳輸則不保證會(huì)提供任何可用帶寬。
數(shù)據(jù)傳輸?shù)木唧w過程:

       (1)創(chuàng)建pipe :usbdPipeCreate(usbdClient Handle,nodeld,endpoint,configvalue,interface,USB_XFRTYPE_BULK,USB_ DIR_OUT,maxPacketSize,0,0,&outPipeHandle);
       (2)定義callback:ourlrpCallback(pvoid P);
       (3)初始化IRP的數(shù)據(jù)結(jié)構(gòu);
       (4)發(fā)送IRP:usbdTransfer(usbdChentHandle,outPipeHandle,&irp)。

       5 、小結(jié)
   

       USB在VxWroks下的從下至上驅(qū)動(dòng)棧分為HC、UCD、USBD和Client Module四層,每一層都相對(duì)獨(dú)立,并為上一層提供了屏蔽該層次具體特征的接口。作者所說的USB驅(qū)動(dòng),實(shí)際上主要在USBD這一層次上完成。具體分為Chent注冊(cè),注銷,創(chuàng)建pipe ,配置,數(shù)據(jù)發(fā)送,以及各回調(diào)函數(shù)。當(dāng)正確地依次調(diào)用時(shí), 會(huì)根據(jù)回調(diào)函數(shù)的狀態(tài)和返回值,按正確的時(shí)序進(jìn)行完整的數(shù)據(jù)傳輸。
   

       上述設(shè)計(jì)思想構(gòu)成了VxWorks下USB設(shè)備應(yīng)用的基礎(chǔ)。作者的研究詳細(xì)地分析了VxWorks的USB協(xié)議棧,證明了該方案的可行性,同時(shí)又給出了合理的實(shí)現(xiàn)方法。作為實(shí)踐成果,作者已在VPN網(wǎng)關(guān)證書讀取系統(tǒng)中,利用該思想編寫的驅(qū)動(dòng),順利讀出存儲(chǔ)在USB設(shè)備中的設(shè)備證書和管理員證書,且運(yùn)行情況良好。作者認(rèn)為,文中提到的模型完全可以勝任解決USB設(shè)備在VxWorks下的應(yīng)用所面臨的技術(shù)難題


支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

vxworks(接上)








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
亚欧洲精品在线视频免费观看| 91在线高清观看| 亚洲色图制服诱惑 | 亚洲国产日韩欧美| 中文字幕日韩一区二区三区| 在线观看国产91| 精品少妇一区二区三区视频免付费 | 国产精品日韩精品欧美在线| 亚洲精品国产精华液| 日韩高清在线不卡| 国产精品一二三四五| 999国产在线| 亚洲一二三区精品| 欧美一区二区免费观在线| 国产欧美日韩不卡免费| 夜夜嗨av一区二区三区四季av| 日韩在线观看一区二区| 成人综合婷婷国产精品久久 | 亚洲国产精品影院| 久久se精品一区精品二区| zzijzzij亚洲日本少妇熟睡| 精品欧美日韩在线| 欧美探花视频资源| 国产片一区二区| 美女一区二区久久| 国产精品永久入口久久久| 91久久免费观看| 日本一二三四高清不卡| 蜜臀精品一区二区三区在线观看| 99精品欧美一区二区三区小说| 日韩三级电影网站| 欧美本精品男人aⅴ天堂| 亚洲精品成人少妇| 成人在线视频首页| 亚洲欧美日韩另类精品一区二区三区 | 久久只精品国产| 日本欧美在线看| 国产一区免费在线| 欧美妇女性影城| 亚洲综合激情另类小说区| 国产suv精品一区二区6| 亚洲一区三区| 中文字幕一区二区三区在线播放 | 丁香激情综合国产| 亚洲看片网站| 欧美激情中文不卡| 国产一区二区三区视频在线播放| 美脚丝袜一区二区三区在线观看 | 香蕉乱码成人久久天堂爱免费| 成人高清免费观看| 在线免费观看日本一区| 亚洲人妖av一区二区| thepron国产精品| 欧美在线观看一二区| 一区二区三区中文免费| 高清一区二区三区视频| 欧美精品v日韩精品v韩国精品v| 亚洲精品美国一| a级国产乱理论片在线观看99| 欧美精品电影在线播放| 青草国产精品久久久久久| 欧美精品亚洲精品| 国产精品区一区二区三| 97成人超碰视| 精品人在线二区三区| 久久福利资源站| 色视频欧美一区二区三区| 一区二区成人在线| 久热国产精品视频一区二区三区| 久久精品视频网| 北条麻妃一区二区三区| 欧美一区二区成人6969| 精品一区二区成人精品| 91国产福利在线| 五月婷婷综合激情| 亚洲日本精品一区| 午夜伊人狠狠久久| 亚洲欧洲精品一区二区三区波多野1战4 | 在线看一区二区| 日韩精品五月天| 色域天天综合网| 日韩电影免费在线观看网站| 久久不见久久见免费视频7 | 国产女主播一区| 18成人在线| 国产午夜精品一区二区三区嫩草| 波多野洁衣一区| 国产亚洲综合性久久久影院| 91青青草免费观看| 国产欧美精品国产国产专区 | 午夜精品影院在线观看| 相泽南亚洲一区二区在线播放| 亚洲色图制服诱惑| 日本在线免费观看一区| 亚洲成人tv网| 在线免费一区三区| 国产激情91久久精品导航| 日韩欧美一级特黄在线播放| 成人午夜免费av| 国产日韩综合av| 久久99久久精品国产| 亚洲少妇30p| 中文字幕在线中文字幕日亚韩一区| 亚洲va国产va欧美va观看| 日本道精品一区二区三区| 精品制服美女丁香| 精品少妇一区二区三区| 成人av男人的天堂| 亚洲精品乱码久久久久久| 亚洲午夜精品久久久中文影院av| 日精品一区二区| 制服丝袜成人动漫| 97人人干人人| 亚洲国产三级在线| 欧美另类高清zo欧美| av高清不卡在线| 亚洲欧美日韩中文字幕一区二区三区| 亚洲bbw性色大片| 国产麻豆欧美日韩一区| 精品久久久久久最新网址| 国产二区一区| 视频一区视频二区在线观看| 日韩一区二区三区在线视频| 国产亚洲自拍偷拍| 丝袜美腿亚洲一区二区图片| 5858s免费视频成人| 国产精品白丝jk白祙| 视频一区二区三区在线| 欧美电视剧免费全集观看| 国产日韩精品推荐| 日韩在线一二三区| 精品少妇一区二区三区在线视频| 国产精品久久久久久久久久久久冷| 亚洲午夜私人影院| 欧美一区二区三区色| 久久综合一区| 国产伦精品一区二区三区视频青涩 | 婷婷六月综合亚洲| 2024国产精品| 中文字幕免费在线不卡| av不卡在线播放| 日韩精品一级中文字幕精品视频免费观看 | 久久亚区不卡日本| 水蜜桃亚洲一二三四在线| 国产91精品一区二区麻豆网站| 亚洲视频一区在线| 欧美一区二区人人喊爽| 四虎永久国产精品| 91丨porny丨国产入口| 日韩—二三区免费观看av| 国产欧美视频一区二区| 欧美三级在线视频| 久久久久久久久一区| 国产+成+人+亚洲欧洲自线| 亚洲韩国精品一区| 国产嫩草影院久久久久| 欧美绝品在线观看成人午夜影视| 精品乱色一区二区中文字幕| 国产一区二区三区黄视频 | 成人一道本在线| 午夜在线电影亚洲一区| 亚洲国产精品成人综合| 91精品国产综合久久久久| 亚洲国产午夜伦理片大全在线观看网站| 成人app网站| 韩国av一区二区三区四区| 亚洲欧美日韩国产一区二区三区| 日韩精品一区二区三区在线播放| 中文字幕精品一区日韩| 久久久av水蜜桃| 91大片在线观看| 国产成人午夜精品影院观看视频| 亚洲一区免费视频| 国产精品成人在线观看| 精品成人佐山爱一区二区| 欧美婷婷六月丁香综合色| 午夜精品区一区二区三| av成人综合网| jiyouzz国产精品久久| 久久国产精品一区二区| 56国语精品自产拍在线观看| 一区不卡字幕| 日本一区免费| 久久99这里只有精品| 亚洲成年人网站在线观看| 色综合久久中文字幕| 精品一区在线播放| caoporn国产精品免费公开| 不卡一区在线观看| 国产成人精品三级| 国产麻豆一精品一av一免费| 麻豆精品久久精品色综合| 日韩高清在线不卡| 日韩不卡免费视频| 午夜成人免费电影| 亚洲成人av在线电影| 亚洲不卡一区二区三区| 亚洲一区影音先锋| 亚洲午夜在线电影| 一区二区三区不卡视频|