搞个led驱动都不让我轻松过,求助

zfnlj   2010-6-8 18:02 楼主
typedef struct
{    struct cdev cdev;   
     unsigned int value;
}led_dev;

在_init函数里面有
cdev_init(&led_dev->cdev, &GPIO_LED_ctl_ops);
这句话,但是被提示错误
error: parse error before "led_dev"

请问是哪里错了呀,  我调了很久了.
ret=cdev_add(&led_dev.cdev,devno,1);  这句话也会有这个错误.

我就是想在驱动程序里面能自动创建设备文件节点, 不需要insmod后再手工去mknod. 所以又把led驱动拿来改

回复评论 (7)

弱弱的问一句led_dev定义了吗?
点赞  2010-6-8 18:08
应该是没有定义。
点赞  2010-6-8 19:10
typedef struct  
{ struct cdev cdev;   
  unsigned int value;
}led_dev;   // led_dev是一个类型
cdev_init(&led_dev->cdev, &GPIO_LED_ctl_ops);  // 这里是把led_dev当作一个变量来用,前后不一致。

你需要另外定义一个led_dev的变量或者指针
led_dev dev;
cdev_init(&dev.cdev, &GPIO_LED_ctl_ops);
或者
led_dev *dev;
cdev_init(&dev->cdev, &GPIO_LED_ctl_ops);
点赞  2010-6-8 22:59

5楼 phb 

引用: 引用 3 楼 brookmill 的回复:

typedef struct  
{ struct cdev cdev;   
  unsigned int value;
}led_dev;   // led_dev是一个类型
cdev_init(&led_dev->cdev, &GPIO_LED_ctl_ops);  // 这里是把led_dev当作一个变量来用,前后不一致。

你需要另外定义一个led_dev的……


没错。正想说呢。楼主c语言没学好
点赞  2010-6-9 00:00
c语言有带提高
点赞  2010-6-16 11:31
typedef是定义类型吧,变量本身还没定义呢
点赞  2010-6-17 08:58
有待提高C
点赞  2010-6-17 09:30
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复