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