字符设备驱动开发基础
字符设备驱动注册卸载
1 | module_init(XXX); // 注册模块加载函数 |
加载卸载驱动
1 | insmod xx.ko |
字符设备的注册与注销
1 | static inline int register_chrdev(unsigned int major,const char *name, const struct file_oiperations *fops); |
可通过cat /proc/devices命令查看已经被用掉的设备号
添加LICENSE和作者信息
1 | MODULE_LICENSE() |
设备号
dev_t 本质是一个32位的无符号整数,其中高12位为设备号,低20号为次设备号,so 主设备号max 4095。
1 | MAJOR(dev) |
dynamic dev num
1 | int alloc_chrdev_region(dev_t* dev, unsigned baseminor, unsigned count, const char* name); |
printk
printk有八个打印等级,如果不指名,默认采用等级4
1 |
|
在printk.h中存在宏定义 CONSOLE_LOGLEVEL_DEFAULT 当打印等级比该值高,才会显示在终端上