怎樣編寫linux裝置驅動程式?
1樓:善秋春
linux是unix作業系統的一種變種,在linux下編寫驅動程式的原理和思想完全類似於其他的unix系統,但它dos或window環境下的驅動程式有很大的區別。在linux環境下設計驅動程式,思想簡潔,操作方便,功能也很強大,但是支援函式少,只能依賴kernel中的函式,有些常用的操作要自己來編寫,而且除錯也不方便。本人這幾周來為實驗室自行研製的一塊多**卡編制了驅動程式,獲得了一些經驗,願與linux fans共享。
一、linux device driver 的概念系統呼叫是作業系統核心和應用程式之間的介面,裝置驅動程式是作業系統核心和機器硬體之間的介面。裝置驅動程式為應用程式遮蔽了硬體的細節,這樣在應用程式看來,硬體裝置只是乙個裝置檔案, 應用程式可以象操作普通檔案一樣對硬體裝置進行操作。裝置驅動程式是核心的一部分,它完成以下的功能:
1.對裝置初始化和釋放。
2.把資料從核心傳送到硬體和從硬體讀取資料。
3.讀取應用程式傳送給裝置檔案的資料和回送應用程式請求的資料。
4.檢測和處理裝置出現的錯誤。
二、例項剖析我們來寫乙個最簡單的字元裝置驅動程式。雖然它什麼也不做,但是通過它可以瞭解linux的裝置驅動程式的工作原理。
linux裝置驅動程式的目錄
2樓:様璩
前言第一章 裝置驅動程式簡介。
裝置驅動程式的作用。
核心功能劃分。
裝置和模組的分類。
安全問題。版本編號。
許可證條款。
加入核心開發社團。
本書概要。第二章 構造和執行模組。
設定測試系統。
hello world模組。
核心模組與應用程式的對比。
編譯和裝載。
核心符號表。
預備知識。初始化和關閉。
模組引數。在使用者空間編寫驅動程式。
快速參考。第三章 字元裝置驅動程式。
scull的設計。
主裝置號和次裝置號。
一些重要的資料結構。
字元裝置的註冊。
open和release
scull的記憶體使用。
read和write
試試新裝置。
快速參考。第四章 除錯技術。
核心中的除錯支援。
通過列印除錯。
通過查詢除錯。
通過監視除錯。
除錯系統故障。
偵錯程式和相關工具。
第五章 併發和競態。
scull的缺陷。
併發及其管理。
訊號量和互斥體。
completion
自旋鎖鎖陷阱。
除了鎖之外的辦法。
快速參考。第六章 高階字元驅動程式操作。
ioctl阻塞型i/o
poll和select
非同步通知。定位裝置。
裝置檔案的訪問控制。
快速參考。第七章 時間、延遲及延緩操作。
度量時間差。
獲取當前時間。
延遲執行。核心定時器。
tasklet
工作佇列。快速參考。
第八章 分配記憶體。
kmalloc函式的內幕。
後備快取記憶體。
get—free—page和相關函式。
vmalloc及其輔助函式。
per-cpu變數。
獲取大的緩衝區。
快速參考。
如何編寫linux作業系統下的裝置驅動程式
3樓:浮雲蔚
買本書看看,或者網上找資料。
請教 linux符裝置驅動IIC進不了中斷
如何編寫linux裝置驅動程式回想學習linux作業系統已經有近一年的時間了,前前後後,零零碎碎的一路學習過來,也該試著寫的東西了。也算是給自己能留下一點記憶和回憶吧!由於完全是自學的,以下內容若有不當之處,還請大家多指教。linux是unix作業系統的一種變種,在linux下編寫驅動程式的原理和思...
linux下怎麼查詢usb對應的裝置,比如滑鼠
1 首先linux 系統使用 dev 目錄下特定的裝置檔案來標識插入的裝置。會發現該目錄下的某些檔案,包括 dev sda 或者 dev hda 表示第一個主裝置,每個分割槽使用一個數字來表示,比如 dev sda1 或 dev hda1 表示主裝置的第一個分割槽等。2 使用 df 命令來找出插入的...
C智慧裝置程式,關於C 智慧裝置專案開發問題,所用開發平臺為VS
上樓寫的不錯,很有參考 注意,有些智慧裝置的sql版本不怎麼高哦,所以資料庫就需要注意版本問題 你就像操作sql2000那樣建立好資料庫,還有相關的表,然後到 那裡去呼叫資料庫就可以了。一樓的哥們給出了呼叫的 了。我用c 寫了一個wince智慧裝置程式 讓textbox只能輸入數字 如下 你把裝置直...