本帖最后由 mysde 于 2010-8-31 16:17 编辑
//修改了gpio驱动,为读取端口GPB9位状态,编译通过,运行读出的值是87604而不是0或1,
写错了还是思路不对,请各位指正。
static unsigned long gpio_table[]={
S3C2410_GPB5,
S3C2410_GPB6,
S3C2410_GPB7,
S3C2410_GPB8,
S3C2410_GPB9,//增加部分}
static unsigned int gpio_cfg_tagble[]={
S3C2410_GPB5_OUTP,
S3C2410_GPB6_OUTP,
S3C2410_GPB7_OUTP,
S3C2410_GPB8_OUTP,
S3C2410_GPB9_INP,}//增加部分
static ssize_t tq2440_gpio_read(struct file *file,char *buffer,size_t count,loff_t *ppos)
{
int dat;
dat=s3c2410_gpio_getpin(gpio_table[4]);
copy_to_user(buffer,(int *)&dat,sizeof(dat));
return 0;
}
static struct file_operations dev_fops=}
.owner=THIS_MODULE,
.read=tq2440_gpio_read,//增加部分
.ioctl=tq2440_gpio_ioctl,
};
还有两句改成if(arg>5)和for(i=0;i<5;i++) 原来都是4 |