混雜裝置驅動程式是那些簡單的字元驅動程式,它們擁有一些相同的特性。核心將這些共同行抽象至乙個api中(具體實現**見 drivers/char/misc),這些簡化了驅動程式的初始化的方式。所有的混雜裝置都被分配乙個主裝置號10,但每個裝置可選擇乙個單獨的次裝置號。
普通的字元驅動程式完成初始化的順序如下。
1,通過alloc_chrdev_region()及相關函式分配主/次裝置號。
2,使用device_create()建立/dev和/sys節點。
3,使用cdev_init()和cdev_add()將自身註冊為字元驅動程式。
混雜驅動只需要呼叫misc_register()即可完成字元驅動的所有步驟:
static struct misdevice mydrv_dev=;
static struct miscdevice misc = ;
static int __init dev_init(void)
static void __exit dev_exit(void)
總的來看混雜裝置驅動程式主要是簡化了驅動程式初始化的方式。
主要是參考<>和友善的按鍵驅動程式。
混雜裝置驅動模型
在linux系統中,存在一類字元裝置,它們擁有相同的主裝置號10,但次裝置號不同,我們稱這類裝置為混雜裝置 miscdevice 所有的混雜裝置形成乙個鍊錶,對裝置訪問時核心根據次裝置號查詢到相應的混雜裝置。如果乙個字元裝置驅動要驅動多個裝置,則它不應該選用混雜裝置來實現。linux中使用struc...
混雜裝置驅動模型
混雜裝置,它們擁有相同的主裝置號 數字10 但次裝置號不同,我們稱這類裝置為混雜裝置 miscdevice 然後呼叫其file operations結構中註冊的檔案操作介面進行操作。對比普通字元裝置操作比較簡單 struct miscdevice 例 static struct miscdevice...
linux混雜裝置驅動
在linux系統中,存在一類字元裝置,它們擁有相同的主裝置號 10 但次裝置號不同,我 們稱這類裝置為混雜裝置 miscdevice 所有的 混雜裝置形成乙個鍊錶,對裝置訪問時核心根據 次裝置號查詢到相應的混雜裝置。linux中使用struct miscdevice來描述乙個混雜裝置。struct ...