?? linux設備驅動之usb主機控制器驅動分析-(13)_linux技術文章_linux_操作系統13.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0073)http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_13.html -->
<HTML><HEAD><TITLE>linux設備驅動之USB主機控制器驅動分析-(13)_Linux技術文章_Linux_操作系統</TITLE>
<META http-equiv=Content-Type content=text/html;charset=gb2312>
<META content=www.diybl.com,DIY部落版權所有 name=Copyright>
<META content=linux設備驅動之USB主機控制器驅動分析_Linux技術文章_Linux_操作系統 name=keywords>
<META
content="linux設備驅動之USB主機控制器驅動分析_Linux技術文章_#160; "
name=description B..? is 0x%X endpoint>
<META content=index,follow name=robots>
<META content=INDEX,FOLLOW name=GOOGLEBOT><LINK href="article2.css"
type=text/css rel=stylesheet><LINK
href="linux設備驅動之USB主機控制器驅動分析-(13)_Linux技術文章_Linux_操作系統13.files/article2.css"
type=text/css rel=stylesheet>
<SCRIPT
src="linux設備驅動之USB主機控制器驅動分析-(13)_Linux技術文章_Linux_操作系統13.files/article.js"
type=text/javascript></SCRIPT>
<SCRIPT
src="linux設備驅動之USB主機控制器驅動分析-(13)_Linux技術文章_Linux_操作系統13.files/1060103.js"
type=text/javascript></SCRIPT>
<META content="MSHTML 6.00.2900.3395" name=GENERATOR></HEAD>
<BODY><INPUT type=hidden value=144940 name=passage_id><INPUT type=hidden
value=1060103 name=catalog_id>
<DIV id=wrap>
<DIV class=top_bar align=center>
<TABLE cellSpacing=0 width=935>
<TBODY>
<TR>
<TD><A href="http://www.diybl.com/">網站首頁</A></TD>
<TD class=top_bar_sline></TD>
<TD><A href="http://news.diybl.com/" target=_blank>新聞首頁</A></TD>
<TD class=top_bar_sline></TD>
<TD><A href="http://www.diybl.com/course/1_web/">網頁設計</A></TD>
<TD class=top_bar_sline></TD>
<TD><A href="http://www.diybl.com/course/2_picdesign/">圖形動畫</A></TD>
<TD class=top_bar_sline></TD>
<TD><A href="http://www.diybl.com/course/3_program/">軟件編程</A></TD>
<TD class=top_bar_sline></TD>
<TD><A href="http://www.diybl.com/course/4_webprogram/">網站開發</A></TD>
<TD class=top_bar_sline></TD>
<TD><A href="http://www.diybl.com/course/5_office/">辦公軟件</A></TD>
<TD class=top_bar_sline></TD>
<TD><A href="http://www.diybl.com/course/6_system/">操作系統</A></TD>
<TD class=top_bar_sline></TD>
<TD><A href="http://www.diybl.com/course/7_databases/">數據庫</A></TD>
<TD class=top_bar_sline></TD>
<TD><A href="http://www.diybl.com/course/webjsh/">網絡技術</A></TD>
<TD class=top_bar_sline></TD>
<TD><A href="http://www.diybl.com/course/comshiti/">認證考試</A></TD>
<TD class=top_bar_sline></TD>
<TD><A href="http://www.diybl.com/course/fwzl/">范文資料</A></TD>
<TD class=top_bar_sline></TD>
<TD><A href="http://www.diybl.com/course/hack/">黑客攻防</A></TD>
<TD class=top_bar_sline></TD>
<TD><A href="http://www.diybl.com/chm/" target=_blank><FONT
color=red>書籍教程</FONT></A></TD>
<TD class=top_bar_sline></TD>
<TD><A href="http://bbs.diybl.com/"
target=_blank>進入論壇</A></TD></TR></TBODY></TABLE></DIV>
<TABLE class=adNone id=PublicRelation cellSpacing=0 cellPadding=0 width=950
border=0>
<TBODY>
<TR>
<TD vAlign=top width=864>
<DIV class=logo><A href="http://www.diybl.com/" target=_blank><IMG
height=60
src="linux設備驅動之USB主機控制器驅動分析-(13)_Linux技術文章_Linux_操作系統13.files/logo.gif"
width=200></A></DIV>
<DIV class=ad_f1 id=ad_f1>
<SCRIPT
src="linux設備驅動之USB主機控制器驅動分析-(13)_Linux技術文章_Linux_操作系統13.files/ad_f1.js"></SCRIPT>
</DIV><!--<div class="top_bar2">-->
<UL class=menu>
<LI><A href="http://www.diybl.com/course/6_system/linux/"
target=_blank><SPAN>Linux</SPAN></A>
<LI><A href="http://www.diybl.com/course/6_system/linux/Linuxxl/"
target=_blank><SPAN>Linux系列教程</SPAN></A>
<LI><A href="http://www.diybl.com/course/6_system/linux/linuxjq/"
target=_blank><SPAN>Linux應用技巧</SPAN></A>
<LI><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/18fdsdzoktk.html"
target=_blank><SPAN>Linux技術文章</SPAN></A></LI></UL><!--</div>--></TD>
<TD width=6></TD>
<TD vAlign=top align=middle width=100>
<DIV class=hotNCout>
<DIV class=hotNC>
<UL>
<LI><A
href="javascript:window.external.addFavorite('http://www.diybl.com/','DIY部落');">加入收藏</A>
<LI><A href="http://www.diybl.com/map.html" target=_blank>網站地圖</A>
<LI><A href="http://www.diybl.com/chm/" target=_blank>書籍教程</A>
<LI><A href="http://www.diybl.com/user/register.asp"
target=_blank>會員注冊</A> </LI></UL></DIV></DIV></TD></TR></TBODY></TABLE>
<DIV class=split style="HEIGHT: 3px"></DIV>
<DIV class=ad_ftop id=ad_ftop>
<SCRIPT
src="linux設備驅動之USB主機控制器驅動分析-(13)_Linux技術文章_Linux_操作系統13.files/ad_ftop.js"></SCRIPT>
</DIV>
<DIV class=subNav>
<DIV style="FLOAT: right"><INPUT name=wd1> <INPUT onclick=tosearch(document.all.wd1); type=button value=" 千尋搜索 "></DIV><SPAN><A
href="http://www.diybl.com/">DIY部落</A> >> <A
href="http://www.diybl.com/course/6_system/">操作系統</A> >> <A
href="http://www.diybl.com/course/6_system/linux/">Linux</A> >> <A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/18fdsdzoktk.html">Linux技術文章</A>
>> 正文</SPAN></DIV>
<DIV class=split></DIV>
<DIV class=main>
<DIV class=lc_blue>
<DIV class=lcBlk>
<H1>linux設備驅動之USB主機控制器驅動分析</H1>
<DIV class=from_info>http://www.diybl.com/ 2008-9-23 網絡 點擊:<SPAN
style="FONT-WEIGHT: bold; COLOR: #ff0000">
<SCRIPT
src="linux設備驅動之USB主機控制器驅動分析-(13)_Linux技術文章_Linux_操作系統13.files/p_count.htm"
lanuage="javascript"></SCRIPT>
</SPAN> <A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_13.html#comment">[
評論 ]</A></DIV>
<DIV class=artibody>
<DIV class=ad_f2 id=ad_f2>
<SCRIPT
src="linux設備驅動之USB主機控制器驅動分析-(13)_Linux技術文章_Linux_操作系統13.files/ad_f2.js"></SCRIPT>
</DIV>
<DIV class=ad_f3 id=ad_f3>
<SCRIPT
src="linux設備驅動之USB主機控制器驅動分析-(13)_Linux技術文章_Linux_操作系統13.files/ad_f3.js"></SCRIPT>
</DIV>文章搜索: <INPUT maxLength=255 size=30 name=wd2> <INPUT onclick=tosearch(document.all.wd2); type=button value=千尋搜索><A
class=redlink
href="javascript:self.location='/user/chm/rar.asp?c_id=48375'">【點擊打包該文章】</A>
<SCRIPT
src="linux設備驅動之USB主機控制器驅動分析-(13)_Linux技術文章_Linux_操作系統13.files/art_top.js"></SCRIPT>
<P><SPAN>#160; "endpoint
0x%X is Bulk; changing to
Interrupt\n",<BR>
cfgno, inum, asnum,
d->bEndpointAddress);<BR>
endpoint->desc.bmAttributes =
USB_ENDPOINT_XFER_INT;<BR>
endpoint->desc.bInterval =
1;<BR> if
(le16_to_cpu(endpoint->desc.wMaxPacketSize) >
8)<BR>
endpoint->desc.wMaxPacketSize = cpu_to_le16(8);<BR>
}<BR> <BR> /* Skip over any Class Specific or
Vendor Specific descriptors;<BR> * find the next
endpoint or interface descriptor */<BR>
//同之前分析的一樣,下一個描述符的有效地址和偏移<BR> endpoint->extra =
buffer;<BR> i = find_next_descriptor(buffer, size,
USB_DT_ENDPOINT,<BR>
USB_DT_INTERFACE, &n);<BR> endpoint->extralen =
i;<BR> if (n >
0)<BR> dev_dbg(ddev, "skipped %d
descriptor%s after %s\n",<BR>
n, plural(n), "endpoint");<BR> return
buffer - buffer0 +
i;<BR> <BR>skip_to_next_endpoint_or_interface_descriptor:<BR>
i = find_next_descriptor(buffer, size,
USB_DT_ENDPOINT,<BR>
USB_DT_INTERFACE, NULL);<BR> return buffer - buffer0 +
i;<BR>}<BR> <BR>到這里,root
hub對應的配置,接口,端點信息都可以在usb_dev中找到了.UHCI的初始化工作就全部完成了.在之后的分析中,會經常涉及到具體的信息傳輸過程.在前面的代碼中遇到也一筆代過了.為了以后的分析方便,在下一節里,對每個類型的傳輸過程做一個全面的分析.<BR> </SPAN>
</P>
<DIV class=ad_f10 id=ad_f10>
<SCRIPT
src="linux設備驅動之USB主機控制器驅動分析-(13)_Linux技術文章_Linux_操作系統13.files/ad_f10.js"></SCRIPT>
</DIV>
<DIV class=ad_f11 id=ad_f11>
<SCRIPT
src="linux設備驅動之USB主機控制器驅動分析-(13)_Linux技術文章_Linux_操作系統13.files/ad_f11.js"></SCRIPT>
</DIV>
<DIV class=kjh>歡迎光臨<A href="http://www.diybl.com/" target=_blank><STRONG><FONT
color=#cc0000>DIY部落</FONT></STRONG></A>,<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/18fdsdzoktk.html"
target=_blank><STRONG><FONT color=#cc0000>點擊這里</FONT></STRONG></A>查看更多文章教程 <A
class=redlink
href="javascript:self.location='/user/chm/rar.asp?c_id=144940'">【點擊打包該文章】</A></DIV>
<DIV class=klkl><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940.html">[1]</A><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_2.html">
[2]</A><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_3.html">
[3]</A><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_4.html">
[4]</A><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_5.html">
[5]</A><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_6.html">
[6]</A><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_7.html">
[7]</A><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_8.html">
[8]</A><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_9.html">
[9]</A><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_10.html">
[10]</A><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_11.html">
[11]</A><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/course/6_system/linux/Linuxjs/2008923/144939.html"><SPAN
style="DISPLAY: none">'klkl'</SPAN></A><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_12.html">
[12]</A> [13] </DIV></DIV>
<DIV class=ad_f4 id=ad_f4>
<SCRIPT
src="linux設備驅動之USB主機控制器驅動分析-(13)_Linux技術文章_Linux_操作系統13.files/ad_f4.js"></SCRIPT>
</DIV>
<DIV class=mediacontent>如果圖片或頁面不能正常顯示請<A class=redlink
onmouseover="this.style.cursor='hand';"
onclick="openerror('144940','linux設備驅動之USB主機控制器驅動分析');">點擊這里</A> 站內搜索: <INPUT
maxLength=255 size=25 name=wd3> <INPUT onclick=tosearch(document.all.wd3); type=button value=千尋搜索></DIV>
<DIV style="CLEAR: both" align=center></DIV>
<DIV class=toollinks>【<A
href="javascript:window.external.addFavorite(window.location,'linux設備驅動之USB主機控制器驅動分析-DIY部落');">收藏此頁</A>】【<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/18fdsdzoktk.html"
target=_blank>欄目頁面</A>】【<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_13.html#comment">發表評論</A>】【<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144940_13.html#">返回頂部</A>】【<A
href="javascript:window.close()">關閉</A>】 </DIV>
<DIV class=p_bottom>上一篇文章:<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144941.html">
Linux 啟動腳本 完全注釋2 --- rc腳本注釋</A><BR>下一篇文章:<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008923/144939.html">Rsync命令參數詳解</A></DIV></DIV>
<DIV style="CLEAR: both; BACKGROUND: #fff; OVERFLOW: hidden; HEIGHT: 8px"></DIV>
<DIV id=links align=center>
<TABLE class=xgzt cellSpacing=0 cellPadding=0 width=687>
<TBODY>
<TR>
<TD style="PADDING-LEFT: 5px" bgColor=#e1effa>
<H3>推薦文章</H3></TD></TR>
<TR>
<TD bgColor=#fcfeff>
<DIV class="tj_l tj"><NOBR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008829/138581.html"
target=_blank>BSD的sh和csh的重定向操作符全解</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008710/132707.html"
target=_blank>用GRUB(包括WINGRUB)命令行模式引導安裝Linux</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/200865/122281.html"
target=_blank>gdb 調式子進程</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/20071129/88867.html"
target=_blank>基于Linux操作系統的目錄服務的實現</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008822/137059.html"
target=_blank>iftop 查看你的網卡流量</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008827/137903.html"
target=_blank>Linux下配置mysql,集群等....</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/20071226/94117.html"
target=_blank>RED HAT AS4 升級 內核從2.6.9-22升級到2.6.9-34</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008819/136273.html"
target=_blank>用rsync實現網站鏡像和備份</A></DIV>
<DIV class="tj_r tj"><NOBR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008827/137886.html"
target=_blank>linux下driver disk 的制作</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/200896/139451.html"
target=_blank>google瀏覽器--Chrome的介紹</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/200875/130394.html"
target=_blank>Proc asound 文檔</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008622/127520.html"
target=_blank>NS編程與調試 - vim的用法zz</A><BR><A
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -