|
本帖最后由 wanjunking 于 2010-9-14 10:51 编辑
自己参考天嵌写的led驱动编译错误:
/opt/wanjun/module/s3c2440led.c: In function 'myioctl':
/opt/wanjun/module/s3c2440led.c:55: warning: label 'deault' defined but not used
/opt/wanjun/module/s3c2440led.c: At top level:
/opt/wanjun/module/s3c2440led.c:74: error: braced-group within expression allowed only inside a function
/opt/wanjun/module/s3c2440led.c:78: error: expected ')' before '(' token
/opt/wanjun/module/s3c2440led.c:79: error: expected identifier or '(' before 'if'
make[2]: *** [/opt/wanjun/module/s3c2440led.o] 错误 1
make[1]: *** [_module_/opt/wanjun/module] 错误 2
主要错误行代码:
74行:static struct class *led_class=class_create(THIS_MODULE,DEVICE_NAME);
78行:device_create(led_class,MKDEV(LED_MAJOR,0),NULL,DEVICE_NAME); //以前2.6较低的版本是class_device_create,新的是device_create
if( IS_ERR(led_class))
{
printk("error in create class\n");
return -1;
}
亚瑟王曾经说参考linux2.6.30驱动下的led控制驱动程序,里面创建设备文件采用混合设备的方法
问题1:linux2.6.30以及更高的版本能否可以用device_create等几个函数自动创建!!
问题2:linux2.6的内核有的用udev,cdev_add来自动创建,请教亚瑟王建议用哪种方法!!
问题3:以上错误代码的问题所在!! |
|