Linux 裝置驅動的重點 難點

2021-08-10 04:44:35 字數 1109 閱讀 4431

● 編寫 linux 裝置驅動要求工程師有非常好的硬體基礎,懂得 sram、 flash、 sdram、磁碟的讀寫方式,uart、 i2c、 usb 等裝置的介面以及輪詢、中斷、 dma 的原理,pci 匯流排的工作方式以及 cpu 的記憶體管理單元( mmu)等。

● 編寫 linux 裝置驅動要求工程師有非常好的 c 語言基礎,能靈活地運用 c 語言的結構體、指標、函式指標及記憶體動態申請和釋放等。

● 編寫 linux 裝置驅動要求工程師有一定的 linux 核心基礎,雖然並不要求工程師對核心各個部分有深入的研究,但至少要明白驅動與核心的介面。尤其是對於塊裝置、網路裝置、flash 裝置、串列埠裝置等複雜裝置,核心定義的驅動體系結構本身就非常複雜。

● 編寫 linux 裝置驅動要求工程師有非常好的多工併發控制和同步的基礎,因為在驅動中會大量使用自旋鎖、互斥、訊號量、等待佇列等併發與同步機制。

linux 核心源**中包含了乙個 documentation 目錄,其中包含了一批核心設計文件,全部是文字檔案。很遺憾,這些文件的組織不太好,內容也不夠細緻。

學習 linux 裝置驅動的乙個注意事項是要避免管中窺豹、只見樹木不見森林,因為各類 linux 裝置驅動都從屬於乙個 linux 裝置驅動的架構,單純而片面地學習幾個函式、幾個資料結構是不可能理清驅動中各組成部分之間的關係的。因此, linux 驅動的分析方法是點面結合,將對函式和資料結構的理解放在整體架構的背景之中。

源**是學習 linux 的權威資料,在 windows 上閱讀 linux 源**的最佳工具是 source insight,在其中建立乙個工程,並將 linux 的所有源**加入該工程,同步這個工程之後,我們將能非常便捷地在**之間進行關聯閱讀。

類似 ( )這樣的**提供了 linux 核心源**的交叉索引,在其中輸入 linux 核心中的函式、資料結構或變數的名稱就可以直接得到以超連結形式給出的定義和引用它的所有位置。還有一些**也提供了 linux 核心中函式、變數和資料結構的搜尋功能,在 google 中搜尋「 linux identifier search」可得。

在 linux 主機上閱讀和編輯 linux 原始碼的常用方式是 vim + cscope 或者 vim + ctags, vim是乙個文字編輯器,而 cscope 和 ctags 則可建立**索引。

linux裝置驅動的難點重點

linux裝置驅的學習是一項浩繁的工程 l編寫linux裝置驅動要求工程師有非常好的硬體基礎,懂得sram,flash,sdram,磁碟的讀寫方式,uart,iic,usb等裝置的介面以及輪詢,中斷,dma原理,pci匯流排的工作方式以及cpu的記憶體管理單元 mmu 等。l非常好的c語言基礎,能夠...

CEGUI重點難點集

感覺cegui確實不想很多商業成熟的sdk,有些地方的表現不盡如人意,但是畢竟是個開源專案,使得我們能根據自己需求定製自己的功能。但在定製需求之前,我們需要對cegui進行乙個比較詳細的了解才能夠得心應手的定製需求。下面就將學習cegui過程中遇到的重點難點羅列起來,方便自己和一起學習。affect...

推薦系統的重點 難點問題

1 特徵提取問題 2 模型過擬合問題 可擴充套件性問題 推薦系統中推薦演算法無法完全掌握使用者每個方面的興趣和需求,因為使用者之前沒有對足夠多類別的物件進行評價。過擬合現象是指系統推薦給使用者的物件與使用者剛剛看過的不是太相似,就是太不相關。模型過擬合 過學習 的問題本質上來自於資料的不完備性,這在...