一、區分應用程式和驅動
linux下驅動和應用是完全分開的:目的是為了安全性。
微控制器下驅動和應用都是放到乙個檔案裡面
1、應用程式執行在使用者空間
應用程式想要訪問核心資源的方法:
系統呼叫
異常(中斷)
陷入。2、linux作業系統核心和驅動程式執行在核心空間。
應用程式不會直接呼叫系統呼叫,而是通過api函式來間接的呼叫系統呼叫,比如posix、api和c庫等
舉例:應用程式使用open函式 開啟乙個裝置檔案。
每個系統呼叫都有乙個系統呼叫號。
通過系統呼叫號知道怎麼操作
系統呼叫處於核心空間,應用程式無法直接訪問,因此需要「陷入「到核心,方法就是軟中斷。陷入核心以後還要指定系統呼叫號。
二、字元裝置驅動開發流程
1,linux裡面一切皆檔案,驅動裝置表現就是乙個/dev/下的檔案,/dev/led。
應用程式呼叫open函式開啟裝置,比如led。應用程式通過write函式向/dev/led寫資料,比如寫1表示開啟,寫0表示關閉。如果要關閉裝置那麼就是close函式。
2,編寫驅動的 時候也需要編寫驅動對應的open、close,write函式。字元裝置驅動fileoptions_struct.
總結
1、驅動最終是被應用呼叫的,在寫驅動的時候要考慮應用開發的便利性。
2、驅動是分驅動框架的,要按照驅動框架來編寫,對於字元裝置驅動來說,重點編寫應用程式對應的open、close、read、write等函式。
linux2 6字元裝置驅動開發模板
cpp view plain copy include include include include include 字元裝置驅動模板開始 define char dev device name char dev 是應當連線到這個編號範圍的裝置的名字,出現在 proc devices和sysfs中...
字元裝置驅動開發
一 驅動模組的載入和解除安裝 linux 驅動有兩種執行方式,第一種就是將驅動編譯進 linux 核心中,這樣當 linux 核心啟動的時候就會自動執行驅動程式。第二種就是將驅動編譯成模組 linux 下模組擴充套件名為 ko 在 linux 核心啟動以後使用 insmod 命令載入驅動模組。在除錯...
驅動 linux裝置驅動 字元裝置驅動開發
preface 前面對linux裝置驅動的相應知識點進行了總結,現在進入實踐階段!linux 裝置驅動入門篇 linux 裝置驅動掃盲篇 fedora下的字元裝置驅動開發 開發乙個基本的字元裝置驅動 在linux核心驅動中,字元裝置是最基本的裝置驅動。字元裝置包括了裝置最基本的操作,如開啟裝置 關閉...