国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

如何玩轉(zhuǎn)linux驅(qū)動

發(fā)布時間:2014-12-3 16:08    發(fā)布者:看門狗
作者:machinnneee

說玩轉(zhuǎn)驅(qū)動這話,其實有點過頭,玩驅(qū)動是個長期積累的過程,寫出來是一回事,調(diào)試起來也是一種磨練。為了讓大家明白玩驅(qū)動的樂趣和掌握編寫驅(qū)動的捷徑,我分享一些經(jīng)驗,算是拋磚引玉。不過正所謂一口吃不了個胖子,只有寫夠了足夠多的代碼,調(diào)試了足夠多的模塊,玩轉(zhuǎn)驅(qū)動也不再話下。希望今天的嘮叨對想踏入或者即將踏入驅(qū)動行業(yè)的你有些幫助。

  我們很明白Linux 設備驅(qū)動的學習是一項浩大的工程,正是由于這個原因,一些人不免望而生畏,其實,只要我們有足夠的積累和全面的知識,玩轉(zhuǎn)驅(qū)動,也是早晚的事。閑話少說,開始來干貨。

  對于驅(qū)動工程師來說,首先要明白驅(qū)動在整個系統(tǒng)中的作用,



  大家從上圖中可以看出,linux驅(qū)動②在這個構(gòu)架中起到承上硬件①啟下應用程序③的作用。在程序的編寫中,我們常用高內(nèi)聚低耦合的標準,因此,驅(qū)動的引入顯得意義更加重大:一方面,使嵌入式應用工程師不用考慮過多的硬件差異,另一方面,通過將設備驅(qū)動融入內(nèi)核,面向操作系統(tǒng)內(nèi)核的接口,這樣的接口由操作系統(tǒng)規(guī)定,對一類設備而言結(jié)構(gòu)一致,獨立于具體的設備。同時由于linux操作系統(tǒng)有內(nèi)存管理和進程管理,因此對于多任務并發(fā)的要求時,操作系統(tǒng)和驅(qū)動的引入使得任務變得簡單。但是對于不需要多任務調(diào)度、文件系統(tǒng)、內(nèi)存管理等復雜功能時,在一個大while(1)循環(huán)中既可以完成相關的任務。

  上面分析了驅(qū)動的意義,那么,玩轉(zhuǎn)linux驅(qū)動需要那方面的知識呢,現(xiàn)在羅列下:

  第一、Linux 驅(qū)動工程師要有良好的硬件基礎。

  這個要求不言而喻,linux驅(qū)動工程師的主要任務就是隱藏硬件的差異,給應用工程師一個統(tǒng)一的接口,因此需要能看懂電路圖,理解SRAM、Flash、SDRAM、磁盤等模塊的讀寫方式,知道UART、I2C、USB 等設備的接口以及常規(guī)操作,了解輪詢、中斷、DMA 的原理,PCI 總線的工作方式以及CPU 的內(nèi)存管理單元(MMU)等。不過對于這種常見的模塊,linux內(nèi)核中有相關的配置,因此需要有閱讀linux內(nèi)核的能力和修改linux內(nèi)核的能力。

  第二 、Linux驅(qū)動工程師具有良好的C 語言基礎。

  作為一個面向硬件底層和應用層的關鍵人物,C語言功底是必須要牢固的。在編寫linux的字符設備和塊設備驅(qū)動中常用的fopen()、fwrite()、fread()、fclose()以及內(nèi)存分配中經(jīng)常使用結(jié)構(gòu)體和指針。因此能靈活地運用C 語言的結(jié)構(gòu)體、指針、函數(shù)指針及內(nèi)存動態(tài)申請和釋放顯現(xiàn)的尤為重要。

  例如字符設備驅(qū)動中的讀函數(shù)函數(shù)的定義

  /* 讀設備*/

  ssize_t xxx_read(struct file *filp, char _ _user *buf, size_t count,loff_t*f_pos)

  {

  ...

  copy_to_user(buf, ..., ...);

  ...

  }

  從中看出C語言功底的重要性。

  第三、 Linux 驅(qū)動工程師具有一定的Linux 內(nèi)核基礎,雖然并不要求工程師對內(nèi)核各個部分有深入的研究,但至少要了解設備驅(qū)動與內(nèi)核的接口,尤其是對于塊設備、網(wǎng)絡設備、Flash設備、串口設備等復雜設備。

  現(xiàn)在工作起來,嵌入式驅(qū)動工程師的工作量相對會小一點,因為一般常見的硬件設備供應商都會提供相應的linux版本驅(qū)動,驅(qū)動工程師的任務就是調(diào)試這些驅(qū)動能正常運行在自己的系統(tǒng)中,同時保證系統(tǒng)的穩(wěn)定。

  第四、 Linux 驅(qū)動工程師具有良好的操作系統(tǒng)知識。

  這個要求對于沒有學習過操作系統(tǒng)的人來說唯一的痛苦之處就是對于專有名詞不是很理解,例如上半部,下半部,原子操作等。其實剛開始或許是個痛苦的過程,但是只要認真的分析了一個或者幾個驅(qū)動程序后,你就會發(fā)現(xiàn)其中的規(guī)律。畢竟linux驅(qū)動大體分為字符設備驅(qū)動、塊設備驅(qū)動和網(wǎng)絡設備驅(qū)動三類,正所謂抓其綱要,舉一反三,便可融會貫通。因此linux中多任務并發(fā)控制和同步等基礎很重要,因為在設備驅(qū)動中會大量使用自旋鎖、互斥、信號量、等待隊列等并發(fā)與同步機制。

  第五、動手能力。

  紙上得來終覺淺,因此,看再多的書也沒有真正的調(diào)試一個驅(qū)動來的認識深刻。這時你需要搭建宿主機平臺,購買開發(fā)板。不要好大喜功,從簡單的小驅(qū)動開始一步一步走,以螞蟻啃骨頭的精神進行學習,收獲會很大。

  經(jīng)歷了痛苦的折磨,現(xiàn)在看下嵌入式驅(qū)動工程師的甜蜜吧,工作個三五年,你已經(jīng)是大師了,可以去招聘網(wǎng)站瀏覽下,這方面的待遇都是面議獎金都是大大的,紅色票票也隨心所愿了。想到這些,你還不下定決心來經(jīng)受linux驅(qū)動的虐待,相信只要以“驅(qū)動虐我千百遍,我待驅(qū)動如初戀”的決心,相信你可以玩轉(zhuǎn)linux驅(qū)動。
本文地址:http://m.qingdxww.cn/thread-134634-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節(jié)省時間和空間
  • Dev Tool Bits——使用DVRT協(xié)議查看項目中的數(shù)據(jù)
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監(jiān)視
  • 貿(mào)澤電子(Mouser)專區(qū)
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲4388全网最大色 | 亚洲视频欧洲视频 | 极品美女在线观看 | 国产情侣一区二区 | 欧美一区二区三区精品国产 | 国产日韩91 | 日本二区视频 | 欧美一区二区aa大片 | 国产一区中文字幕 | 中文在线不卡 | 国产精品盗摄一区二区在线 | 精品一区二区三区视频在线观看 | 午夜视频在线观看一区 | 久久99精品国产麻豆宅宅 | 久久久久综合网 | 亚洲视频手机在线观看 | 香蕉视频在线视频 | 五月天婷婷色图 | 久热香蕉在线爽青青 | 男女视频免费网站 | 日本韩国一区二区 | 八戒八戒影视免费观看动漫 | 成人黄色一级视频 | 青青草91视频 | 国产成人尤物精品一区 | 精品国产一区二区三区在线 | 国产福利网站 | 日本一本免费一二区 | 四色成人网 | 午夜日批 | 色花堂的网站永久地址 | 日韩久久一级毛片 | 在线视频国产99 | 香蕉国产精品偷在线播放 | 亚洲精品tv久久久久久久久久 | 亚洲va在线va天堂va四虎 | 在线观看一区二区三区视频 | 久久久久久久国产 | 国产亚洲欧美在线视频 | 香蕉久久久 | 日本一区二区三区视频在线观看 |