亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 8801 | 回復(fù): 16
打印 上一主題 下一主題

《linux那些事之我是USB》讀書(shū)筆記 [復(fù)制鏈接]

論壇徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-10-14 11:33 |只看該作者 |倒序?yàn)g覽

Linux驅(qū)動(dòng)終于可以暫告段落了!

緩口氣!

前面一直抱著本書(shū)和宋寶華老師的驅(qū)動(dòng)詳解在看,中間過(guò)程中也是一直在兩本書(shū)上翻來(lái)翻去,因?yàn)榭磿?shū)和動(dòng)手真的是兩回事,書(shū)上看明白是很簡(jiǎn)單的事情,但是真正操練的時(shí)候,會(huì)發(fā)現(xiàn),原來(lái)從書(shū)上看明白的只是一些大道理,書(shū)上講的一些細(xì)節(jié)或者沒(méi)看明白,或者沒(méi)記住,反正到實(shí)際操練的時(shí)候,肯定還是會(huì)有很多事情讓你糾結(jié)的。

本來(lái)上半年一個(gè)比賽打算用USB攝像頭的,當(dāng)時(shí)急急忙忙的把USB協(xié)議過(guò)了一遍,后來(lái)發(fā)現(xiàn)淘寶上有一種接口的CMOS模塊比USB攝像頭用起來(lái)更簡(jiǎn)單,于是放棄了USB攝像頭。在那之前我一直認(rèn)為USB很神秘、很復(fù)雜,很難很難,但是看完書(shū)后,發(fā)現(xiàn)其實(shí)也不是傳說(shuō)中的那么難。后來(lái)暑假去深圳,便打算好好搞一下USB驅(qū)動(dòng)。當(dāng)時(shí)主要是考慮做linux端的,但是后來(lái)又發(fā)現(xiàn)linux里邊支持的幾種標(biāo)準(zhǔn)USB設(shè)備,還涉及到其他一些協(xié)議,太復(fù)雜了。然后才意識(shí)到,想吃透USB也不是簡(jiǎn)單的事情。當(dāng)時(shí)為這個(gè)事情糾結(jié)了很長(zhǎng)時(shí)間,怎么樣找一個(gè)簡(jiǎn)單一點(diǎn)、可操作性強(qiáng)一點(diǎn)、又比較典型的東東來(lái)實(shí)驗(yàn)了?!手頭有塊BF533的板子,上面有USB host和usb device的芯片,BF533外置的,還有一片N年前買的2410的開(kāi)發(fā)板,還有一個(gè)論壇贏得的一塊STM32開(kāi)發(fā)板(還沒(méi)到手,原先以為11之前能到的,到現(xiàn)在還沒(méi)到手,還要等幾天),還有就是一哥們前面在組織USB邏輯分析儀DIY活動(dòng)用的68013。533由于手頭的一個(gè)仿真機(jī)不好使,而且例程里邊的代碼僅僅有個(gè)芯片檢測(cè),別的都沒(méi)有,也沒(méi)什么好參照的;STM32還沒(méi)到手,也不知道要等到什么時(shí)候;68013問(wèn)了下那哥們,結(jié)果那哥們告訴我host驅(qū)動(dòng)更有意思,不知所云;2410本人以前自己弄了一個(gè)基于uboot引導(dǎo)的小程序,可以用于調(diào)試,代碼寫(xiě)好用uboot down到SDRAM里邊,然后go過(guò)去就可以執(zhí)行的。想來(lái)想去還是這個(gè)最合適,于是翻出2410 datasheet開(kāi)始研究(話說(shuō)好幾個(gè)月沒(méi)摸2410了,生疏了不少啦,嘿嘿)。

閑話扯遠(yuǎn)了貌似,哈哈,下面言歸正傳!

USB協(xié)議看得差不多的時(shí)候,剛好在CU看到本書(shū)試讀活動(dòng),哈哈,好機(jī)會(huì)豈容錯(cuò)過(guò),趕緊跟帖發(fā)了申請(qǐng),沒(méi)想到居然把俺抽上了,機(jī)緣巧合,俺趕的太巧啦。再扯點(diǎn)題外話,看USB協(xié)議是為了打發(fā)從北京到深圳火車上的26個(gè)多小時(shí)里邊的一大半時(shí)間的無(wú)奈之舉,沒(méi)想到效果還不錯(cuò),要擱學(xué)校,我估計(jì)10個(gè)26小時(shí)也看不了那么多內(nèi)容,哈哈。

從USB協(xié)議,到USB驅(qū)動(dòng),中間的路其實(shí)還很坎坷的。本人接觸linux驅(qū)動(dòng)時(shí)間也不是太長(zhǎng),之前對(duì)linux驅(qū)動(dòng)的架構(gòu)也不太清晰,基本的字符設(shè)備驅(qū)動(dòng)倒是會(huì)寫(xiě)。分析完USB協(xié)議之后,便想著手linux端驅(qū)動(dòng)的編寫(xiě),此時(shí)有一個(gè)問(wèn)題困惑了俺老長(zhǎng)一段時(shí)間:USB設(shè)備的設(shè)備文件怎么生成?設(shè)備文件操作該如何處理?為這個(gè)問(wèn)題,我到處想找個(gè)合適的USB驅(qū)動(dòng)例子來(lái)學(xué)習(xí)一下,結(jié)果發(fā)現(xiàn)很多都是用的USB主設(shè)備號(hào),就是major = 180,然后增加一個(gè)次設(shè)備號(hào)的做法,我覺(jué)得這樣不爽,但是又不知道更好的辦法是什么,糾結(jié)了N天也沒(méi)找到答案。11前兩天,貌似9月28號(hào)吧,同學(xué)告訴我收發(fā)室有我的掛號(hào)信,我當(dāng)時(shí)還納悶?zāi)膬簛?lái)的掛號(hào)信了,沒(méi)想到去了一看,《linux那些事之我是USB》來(lái)啦。嗨,當(dāng)時(shí)正等這本書(shū)嘞,結(jié)果花了兩天時(shí)間把USB CORE和U盤翻了一遍過(guò)來(lái),感覺(jué)東西有點(diǎn)多,沒(méi)理解過(guò)來(lái),又翻了一遍,感覺(jué)有點(diǎn)意思了,明白了USB host底層如何進(jìn)行的一些操作,但是還是沒(méi)找到我要的答案啦:設(shè)備文件的事,怎么沒(méi)講linux那些事之我是USB設(shè)備文件啦?!然后又把驅(qū)動(dòng)詳解拿出來(lái)看,這才找到答案,然后回頭一想,原來(lái)只顧看書(shū)了,其中的精華根本沒(méi)提取出來(lái)。書(shū)中一遍又一遍的在講解設(shè)備和接口的區(qū)別(P8,P28…),接口才是驅(qū)動(dòng)單元驅(qū)動(dòng)的對(duì)象,但是接口本身不是設(shè)備,linux里邊的設(shè)備只有3類,字符,塊,網(wǎng)絡(luò),其中是不包含接口的,也就是說(shuō)沒(méi)有接口的設(shè)備驅(qū)動(dòng)(是不是接口驅(qū)動(dòng)更合適?哈哈,無(wú)所謂啦,反正也是不存在的東東)這么一說(shuō),而USB本身卻只是一個(gè)接口。!我們要編寫(xiě)的設(shè)備驅(qū)動(dòng)是只能有3種形式,要么是字符設(shè)備的驅(qū)動(dòng),要么是塊設(shè)備的驅(qū)動(dòng),要么是網(wǎng)絡(luò)設(shè)備的驅(qū)動(dòng)。我們的USB設(shè)備屬于哪一種了?哈哈,書(shū)中有云:“坦白地說(shuō),大多數(shù)USB設(shè)備都會(huì)與input、video等子系統(tǒng)關(guān)聯(lián),并不單單只是作為USB設(shè)備而存在。如果US……”(詳見(jiàn)P31)這里我就不抄書(shū)啦,避避嫌。這才讓人恍然大悟。USB接口的設(shè)備有該設(shè)備本身的屬性,USB只是其與系統(tǒng)連接的接口而已,至于其訪問(wèn)方式是字符型,還是塊類,這個(gè)跟USB接口是沒(méi)有任何關(guān)系滴,只與這個(gè)USB接口的設(shè)備本身有關(guān)。那么對(duì)應(yīng)在系統(tǒng)中的設(shè)備文件依然還是像普通字符設(shè)備或者塊設(shè)備一樣來(lái)創(chuàng)建設(shè)備文件以及訪問(wèn)啦。

到這里肯定有人會(huì)疑惑,那設(shè)備本身是字符或者塊類型的,又如何與USB聯(lián)系了?我要說(shuō)的是,USB相對(duì)于這些設(shè)備本身來(lái)說(shuō),就像花姑娘的小外套;ü媚锊还艽┦裁赐馓祝几牟涣怂腔ü媚锏谋举|(zhì),不可能因?yàn)榇┲R甲是花姑娘,而改穿風(fēng)衣后就成老爺們啦。所以了,我們要做的就是給這些USB接口的字符設(shè)備或者塊設(shè)備的驅(qū)動(dòng)在字符設(shè)備或塊設(shè)備驅(qū)動(dòng)本身再加個(gè)小外套,至于這個(gè)小外套,哪件合適了?哈哈,當(dāng)然是usb_driver這個(gè)外套最合她那妖嬈的身段啦。

同時(shí),這里可以聯(lián)系一下設(shè)備模型。對(duì)了,說(shuō)到設(shè)備模型,本書(shū)也覺(jué)得是值得大家贊許之作。里邊講設(shè)備模型講的太形象、太生動(dòng)啦,不僅講了設(shè)備模型的原理,而且通過(guò)聯(lián)系USB設(shè)備,引申出設(shè)備模型的應(yīng)用,讓人茅塞頓開(kāi)。本人之前看了LDD3里邊講關(guān)于設(shè)備模型的章節(jié),看了3、4遍也沒(méi)弄清楚到底是怎么回事,曾經(jīng)一度懷疑自己是否適合玩linux驅(qū)動(dòng)。那里邊也講kobject等等的東西,而本書(shū)也講這些,只是本書(shū)還有點(diǎn)睛之作,見(jiàn)P25,把bus和driver的聯(lián)系以及device,講的非常淺顯,不論懂不懂linux驅(qū)動(dòng)架構(gòu),這幾句話都是一看就明白,再結(jié)合代碼里邊的包含關(guān)系一看,感慨的僅僅會(huì)是:“哦,原來(lái)設(shè)備模型是這么回事呀!”其實(shí)可不是這樣么?usb core會(huì)用bus_register()首先注冊(cè)一條USB總線,然后所有的設(shè)備都將通過(guò)hub掛到該總線上來(lái)(假設(shè)硬件系統(tǒng)只有一個(gè)usb host)。至于在linux里邊如何編寫(xiě)驅(qū)動(dòng)來(lái)讓設(shè)備工作,那關(guān)系可以用比較簡(jiǎn)單的話來(lái)概括,首先要有USB設(shè)備的兩個(gè)ID,然后得有usb_driver,還得有probe何disconnect,有了這些,USB接口的設(shè)備中的USB接口就可以在插入系統(tǒng)時(shí),讓系統(tǒng)知道他來(lái)了。然后usb core會(huì)生成一個(gè)usb_device(貌似是usb_interface。這個(gè)還沒(méi)弄清楚到底怎么回事,還得再翻翻書(shū),如果有誤,歡迎指正),然后根據(jù)其ID,來(lái)查找usb bus上的usb_driver中的id_tables,看到底哪個(gè)驅(qū)動(dòng)是專門為這個(gè)設(shè)備準(zhǔn)備的。如果ID匹配上了,系統(tǒng)就講他們綁定,然后便可以通過(guò)設(shè)備文件來(lái)來(lái)操作時(shí)機(jī)硬件了。至于硬件到底怎么操作,那得看通過(guò)USB總線傳輸?shù)臄?shù)據(jù),USB設(shè)備和host都是拿來(lái)如何處理,在USB設(shè)備驅(qū)動(dòng)中,我們其實(shí)只要將數(shù)據(jù)按協(xié)議規(guī)定寫(xiě)入和讀出即可,至于數(shù)據(jù)到底怎么用,那是應(yīng)用程序以及設(shè)備中的固件層上面的應(yīng)用程序的事情啦,驅(qū)動(dòng)就不必操太多的心了,只要不把設(shè)備本身的數(shù)據(jù)格式搞亂就OK。

這本書(shū)內(nèi)容雖然多,但是確實(shí)都是精華,字字珠璣不敢說(shuō),但是里邊的經(jīng)典字句確實(shí)隨處可見(jiàn)。通過(guò)此書(shū),我們不僅僅能發(fā)現(xiàn)驅(qū)動(dòng)編寫(xiě)并非難事,更能看出著書(shū)者的深厚功底,無(wú)論技術(shù),還是文字運(yùn)用。能把別人花很長(zhǎng)時(shí)間看不明白的東西,寫(xiě)的言簡(jiǎn)意賅,確實(shí)值得贊賞和推崇。

這是本人近一個(gè)多月來(lái)做USB驅(qū)動(dòng)的一些心得,也算是對(duì)于此書(shū)的一個(gè)簡(jiǎn)短的讀書(shū)筆記,雖然閑話扯的有點(diǎn)多。這本書(shū)后面我還會(huì)再認(rèn)認(rèn)真真的研讀的,因?yàn)榈侥壳盀橹梗沒(méi)把這本書(shū)的價(jià)值全部榨取干凈。

論壇徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
2 [報(bào)告]
發(fā)表于 2010-10-14 11:34 |只看該作者
嘿嘿,沙了發(fā)先

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2010-10-14 11:40 |只看該作者
我也想看看 可惜沒(méi)有書(shū)咯

論壇徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
4 [報(bào)告]
發(fā)表于 2010-10-14 11:41 |只看該作者
另,附上本人的源代碼,里邊有注釋和相關(guān)說(shuō)明

吃飯啦,嘿嘿

吃飯先

usb.tar

80.46 KB, 下載次數(shù): 265

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2010-10-15 10:14 |只看該作者
不錯(cuò)。

論壇徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
6 [報(bào)告]
發(fā)表于 2010-10-15 16:58 |只看該作者
多謝多謝,呵呵,終于有人頂帖啦

論壇徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
7 [報(bào)告]
發(fā)表于 2010-10-18 09:37 |只看該作者
不知道這本書(shū)如何,《Linux內(nèi)核修煉之道》感覺(jué)有點(diǎn)失望

論壇徽章:
381
CU十二周年紀(jì)念徽章
日期:2014-01-04 22:46:58CU大;照
日期:2013-03-13 15:32:35CU大;照
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大;照
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大;照
日期:2013-04-17 11:17:37CU大;照
日期:2013-04-17 11:17:42CU大;照
日期:2013-04-17 11:17:47CU大;照
日期:2013-04-17 11:17:52CU大;照
日期:2013-04-17 11:17:56
8 [報(bào)告]
發(fā)表于 2010-10-18 09:46 |只看該作者
樓主寫(xiě)的不錯(cuò),把帖子再排下版就更好了

論壇徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
9 [報(bào)告]
發(fā)表于 2010-10-18 14:35 |只看該作者
多謝多謝啦

8L排版有何見(jiàn)教?我是剛好搞USB驅(qū)動(dòng)的時(shí)候趕上活動(dòng)啦,而且順利申請(qǐng)到一本,這本書(shū)對(duì)我的幫助真的很大,現(xiàn)在還在看,因?yàn)榍懊嬲{(diào)驅(qū)動(dòng)的時(shí)候太順利,很多細(xì)節(jié)問(wèn)題也沒(méi)來(lái)得及多看多想

論壇徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
10 [報(bào)告]
發(fā)表于 2010-10-18 14:37 |只看該作者
不知道這本書(shū)如何,《Linux內(nèi)核修煉之道》感覺(jué)有點(diǎn)失望
dreamice 發(fā)表于 2010-10-18 09:37



    內(nèi)核修煉之道我覺(jué)得更適合新手入門,對(duì)你這樣的大牛來(lái)說(shuō)基本起不了什么用啦

我當(dāng)初也是對(duì)內(nèi)核修煉之道報(bào)著很高的期望,后來(lái)弄到書(shū)(不是本人買的,托一家媒體的一個(gè)美女編輯幫忙弄的一本)以后,發(fā)現(xiàn)跟俺所想相去甚遠(yuǎn)
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP