Linux的設備驅動程序應是一個內核模塊
發布時間:2009/2/18 0:00:00 訪問次數:1466
為了增跟內核的靈活性和為了方便,設各驅動程序應被設計為一個可動態安裝的內核模塊。
于是,一個典型的linux設各驅動程序應包含如下幾部分代碼:
·驅動程序模塊的注冊與注銷函數;
·設各的打開、關閉、讀、寫及需要的其他操作函數;
·設備的中斷服務程序。
下面用偽代碼給出一個從鍵盤上輸入一個字符的例子,以使讀者對設備驅動程序的構成有一個基本的概念。
(1)定義讀操作函數
ssize mydev_read(……)
{
獲取本設備的信號量以確倮沒有其他進程訪悶本設備;
申請中斷標志,允許中斷;
對設備發出讀命令;
將進eh于等待隊列,等待中斷到來:
}
(2)定義中斷服務程序
void mydev_ihterpt(……)
{
處理器讀入字符;
設置中斷標志:
喚醒等侍的進程:
}
(3)定義模塊初始化函數
int init_module(void)
向系統注冊設各;
其他初始化代碼;
(4)定義模塊析構函數
void clemup_modtlle(void)
{
取消注冊的設備;
其他析構代碼;
}
歡迎轉載,信息來自維庫電子市場網(www.dzsc.com)
為了增跟內核的靈活性和為了方便,設各驅動程序應被設計為一個可動態安裝的內核模塊。
于是,一個典型的linux設各驅動程序應包含如下幾部分代碼:
·驅動程序模塊的注冊與注銷函數;
·設各的打開、關閉、讀、寫及需要的其他操作函數;
·設備的中斷服務程序。
下面用偽代碼給出一個從鍵盤上輸入一個字符的例子,以使讀者對設備驅動程序的構成有一個基本的概念。
(1)定義讀操作函數
ssize mydev_read(……)
{
獲取本設備的信號量以確倮沒有其他進程訪悶本設備;
申請中斷標志,允許中斷;
對設備發出讀命令;
將進eh于等待隊列,等待中斷到來:
}
(2)定義中斷服務程序
void mydev_ihterpt(……)
{
處理器讀入字符;
設置中斷標志:
喚醒等侍的進程:
}
(3)定義模塊初始化函數
int init_module(void)
向系統注冊設各;
其他初始化代碼;
(4)定義模塊析構函數
void clemup_modtlle(void)
{
取消注冊的設備;
其他析構代碼;
}
歡迎轉載,信息來自維庫電子市場網(www.dzsc.com)
上一篇:Linux字符設備驅動程序的注冊
熱門點擊
- Linux設備驅動程序的函數跳轉表
- Linux系統調用例程system_call
- PIE中斷向量的映射方式
- 什么是Linux內核模塊
- PIE模塊級中斷
- Linux系統調用接口、系統調用例程和內核服
- ARM復位原理
- Linux系統調用接口、系統調用例程和內核服
- Linux字符設備驅動程序的注冊
- Linux外部設備的基本概念
推薦技術資料
- DFRobot—玩的就是
- 如果說新車間的特點是“靈動”,FQPF12N60C那么... [詳細]