雜項設備也是在嵌入式系統中用得比較多的壹種設備驅動。
在 Linux 內核的include/linux目錄下有Miscdevice.h文件,要把自己定義的misc device從設備定義在這裏。
其實是因為這些字符設備不符合預先確定的字符設備範疇,所有這些設備采用主編號10 ,壹起歸於misc device,其實misc_register就是用主標號10調用register_chrdev()的。
也就是說,misc設備其實也就是特殊的字符設備,可自動生成設備節點。
字符設備(char device)
使用register_chrdev(LED_MAJOR,DEVICE_NAME,&dev_fops)註冊字符設備驅動程序時,如果有多個設備使用該函數註冊驅動程序,LED_MAJOR不能相同,否則幾個設備都無法註冊。
如果模塊使用該方式註冊並且 LED_MAJOR為0(自動分配主設備號 ),使用insmod命令加載模塊時會在終端顯示分配的主設備號和次設備號,在/dev目錄下建立該節點,比如設備leds,如果加載該模塊時分配的主設備號和次設備號為253和0,則建立節點:mknod leds c 253 0。
使用register_chrdev (LED_MAJOR,DEVICE_NAME,&dev_fops)註冊字符設備驅動程序時都要手動建立節點 ,否則在應用程序無法打開該設備。