碰到的问题:
1.在编写字符驱动框架时:
在生成总设备号时,dev(dev_t类型) = MKDEV(ma,mi);(其中ma=3,mi=0) 将这个式子放到全局作用域中,make时会出现错误,没有办法生成.ko文件。但是放到函数中,就可以了,这个是什么原因?
答: 当时定义的 dev是全局变量,在函数体外定义的。这里的变量仅能够进行赋值,但是不能进行加减乘除、移位等运算。(仅可用作声明和初始化)
将主设备号设置为0 时,insmod 模块.ko 在/sys/class/cedv_test/cdev_test0 中,cat uevent 什么都没有显示,这是什么原因?
主设备号应该不能是0.详情,见追函数 register_chrdev_region(...);