首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

mknod和register_chrdev_region()得到的设备号有什么区别?该怎么处理

2012-03-29 
mknod和register_chrdev_region()得到的设备号有什么区别?我参看这里:http://apps.hi.baidu.com/share/det

mknod和register_chrdev_region()得到的设备号有什么区别?
我参看这里:
http://apps.hi.baidu.com/share/detail/33924984

这个把内存当做是字符设备驱动有个问题看不懂,

C/C++ code
static int __init memdev_init(void)  {           int result;           int err;           int i;                     //申请设备号           dev_t devno = MKDEV(251, 0);                     if(mem_major)                     result= register_chrdev_region(devno, MEMDEV_NUM, "memdev");//注意静态申请的dev_t参数和动态dev_t参数的区别           else{        //静态直接传变量,动态传变量指针                     result= alloc_chrdev_region(&devno, 0, MEMDEV_NUM, "memdev");                     mem_major= MAJOR(devno);           }                     if(result< 0){                     printk("can'tget major devno:%d\n", mem_major);                     returnresult;           }  



驱动如上,但是手动创建的设备文件是: #mknod /dev/memdev0 c 254 0

为什么驱动里注册的主设备号不是254 而且251 ?谢谢

[解决办法]
探讨

顺便问下,makefile中,赋值KDIR:=/lib/modules/$(shell uname -r)/build 到底是 := ,还是等于号?

热点排行