閱讀656 返回首頁    go iPhone_iPad_Mac_apple


linux2.6驅動注冊、字符設備注冊和它們的釋放

linux2.6驅動注冊設備號

(1)如果主設備號事先知道,要用:
int register_chrdev_region( dev_t first, unsigned int count, char *name );
(2)如果主設備號為0,則要用動態分配:
int alloc_chrdev_region( dev_t *dev, unsigned int firstminor,

            unsigned int count, char *name );


linux2.6釋放設備號

void unregister_chrdev_region( dev_t first, unsigned int count );


linux2.6內核字符設備驅動注冊

struct cdev *my_cdev = cdev_alloc();
my_cdev->ops = &chr_fops;
void cdev_init( struct cdev *cdev, struct file_operations *fops);

int cdev_add( struct cdev *dev, dev_t num, unsigned int count);


2.6內核字符設備驅動移除

void cdev_del( struct cdev *dev );


2.6內核驅動注冊完後,要用以下代碼創建設備文件

devfs_mk_cdev( MKDEV(LED_MAJOR, LED_MINOR),

      S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP, DEVICE_NAME);


linux2.6內核驅動要用以下代碼移除設備文件

devfs_remove(DEVICE_NAME);


可以用命令創建設備文件

mknod /dev/設備文件名 字符設備(c是字符設備,b是塊設備)   主設備號 次設備號
例如:mknod /dev/testChar c  100 0
刪除設備入口:
    rm /dev/testChar

最後更新:2017-04-03 20:19:50

  上一篇:go 進程通信係列-匿名管道
  下一篇:go 大陸清華刷新計算性能紀錄,領跑ASC13超算總決賽