91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 嵌入式系統

Linux字符設備驅動程序的注冊

發布時間:2009/2/18 0:00:00 訪問次數:1693

  字符設各是linux中最簡單的設備。

  在linux中,字符設各是用一個叫做字符設備結構的數據結構char device struct來描述的。為了管理上的方便,系統維護了一個數組chrdevslj,該數組的每一項都代表一個字符沒各。

  在文件linux/fs/char_dev.c中定義的char_device_struct的數據結構及數組chrdevs[]代碼如下:

  結構中的一個域name是指向設備驅動程序名的指針;另一個域fops是指向-個封裝了文件操作函數集結構的指針。這些文件操作函數就是對這個字符設備進行具體的如打開、讀、寫、關閉等文件操作驅動程序。

  字符設備注冊表結構如圖所示。當安裝一個字符設各時,須調用注冊函數regester chardev()向注冊表插入一個新的表項。函數regester_chardev()的原型如下:


  圖 字符設備驅動程序的注冊

  當代表-個字符設備的文件被進程打開日1,系統根據設備主、次設各號,查詢上述的chrdevs[]數組,并獲得fops指針和為進程設置-個描述這個字符特瞇文件跑數握結構file,進而通過fops指針調用指定的驅動程序。

  取消注冊的函數為unregister_chrdev()。其原型如下:

  int unregister_chrdev int major,const char*name):

  設備驅動程序的注冊和取消注冊應分別在模塊的初始化函數和析構函數中完成。

  歡迎轉載,信息來自維庫電子市場網(www.dzsc.com)



  字符設各是linux中最簡單的設備。

  在linux中,字符設各是用一個叫做字符設備結構的數據結構char device struct來描述的。為了管理上的方便,系統維護了一個數組chrdevslj,該數組的每一項都代表一個字符沒各。

  在文件linux/fs/char_dev.c中定義的char_device_struct的數據結構及數組chrdevs[]代碼如下:

  結構中的一個域name是指向設備驅動程序名的指針;另一個域fops是指向-個封裝了文件操作函數集結構的指針。這些文件操作函數就是對這個字符設備進行具體的如打開、讀、寫、關閉等文件操作驅動程序。

  字符設備注冊表結構如圖所示。當安裝一個字符設各時,須調用注冊函數regester chardev()向注冊表插入一個新的表項。函數regester_chardev()的原型如下:


  圖 字符設備驅動程序的注冊

  當代表-個字符設備的文件被進程打開日1,系統根據設備主、次設各號,查詢上述的chrdevs[]數組,并獲得fops指針和為進程設置-個描述這個字符特瞇文件跑數握結構file,進而通過fops指針調用指定的驅動程序。

  取消注冊的函數為unregister_chrdev()。其原型如下:

  int unregister_chrdev int major,const char*name):

  設備驅動程序的注冊和取消注冊應分別在模塊的初始化函數和析構函數中完成。

  歡迎轉載,信息來自維庫電子市場網(www.dzsc.com)



相關IC型號

熱門點擊

 

推薦技術資料

DFRobot—玩的就是
    如果說新車間的特點是“靈動”,FQPF12N60C那么... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
建水县| 齐齐哈尔市| 禹城市| 红安县| 嘉峪关市| 靖边县| 神木县| 四会市| 信丰县| 三都| 郴州市| 潜江市| 肃北| 汝州市| 保定市| 大足县| 磐石市| 远安县| 府谷县| 共和县| 阳泉市| 昆山市| 松江区| 宝清县| 东港市| 寿阳县| 盘山县| 时尚| 平乡县| 若羌县| 望都县| 高雄市| 廊坊市| 泽普县| 钟祥市| 蚌埠市| 体育| 邵阳县| 孟村| 遂平县| 无极县|