需要移植一个现成的应用程序,所以要自己写个关于1335驱动的函数。下面是驱动中的ioctl函数。writecommand是写命令,writdata是写数据。在应用层调用的时候命令和数据都是unsigned char型。在用应用程序测试的时候,好像是没有能够成功调用ioctl函数。高手给指点一二!
#define U8 unsigned char
static int LCDIoctl(struct inode *inode,struct file * file,unsigned long cmd,unsigned long arg) { int ret=0; switch(cmd) { case writecommand: { U8 pdata; if(copy_from_user((U8 *)&pdata, (U8*) arg, sizeof(arg))) { printk("copy_from_user:error
"); ret = -EFAULT; } else { printk("writ command
"); LcdWriteCommand(pdata); } break; } case writedata: { U8 pdata; if(copy_from_user((U8 *)&pdata, (U8*) arg, sizeof(arg))) { printk("copy_from_user:error
"); ret = -EFAULT; } else { printk("writ command
"); LcdWriteData(pdata); } break; } default: return -EINVAL; } return ret; } 难道是在调用ioctl时候,值传递有问题??
|