免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1738 | 回复: 2
打印 上一主题 下一主题

[驱动] 请教高手 驱动调用 ioctl方法的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-11-22 15:28 |只看该作者 |倒序浏览
请教一个问题!我在驱动中定义了一个ioctl的函数。如下:
static int mini210_display_ioctl(struct inode *inode, struct file *file, unsigned int ioctl_num, unsigned long ioctl_param)
{
           printk("ioctl_num = [%d]\n",ioctl_num);
           printk("ioctl_param = [%d]\n",ioctl_param);
}

在应用层调用时如下
    ioctl(g_fdiaplay,6,6);        
    delay_micro(500);
    ioctl(g_fdiaplay,2,2);            
    ioctl(g_fdiaplay,8,12);        
    ioctl(g_fdiaplay,9,7);        
    ioctl(g_fdiaplay,10,10);   
    ioctl(g_fdiaplay,11,13);   
    ioctl(g_fdiaplay,12,5);        
    ioctl(g_fdiaplay,13,14);   
    ioctl(g_fdiaplay,14,11);   
    ioctl(g_fdiaplay,15,;        
为什么只有
到了 ioctl(g_fdiaplay,2,2);驱动中的ioctl_num,和ioctl_param接收不到7,和9,也没有其他值,.其他的都可以!

一开始以为是延时的问题,但是我在
ioctl(g_fdiaplay,2,2);前放了延时还是没有效果!请教原因啊

论坛徽章:
0
2 [报告]
发表于 2012-11-26 20:22 |只看该作者
回复 1# 邵氏孤儿


    9定义了吗?

论坛徽章:
0
3 [报告]
发表于 2012-11-27 16:59 |只看该作者
首先要看你是什么版本的内核
高版本的不支持这么用
ioctl_num 这边必须用幻数(这个百度一堆)
例如给2的话,ioctl是不会执行的,因为2被系统用了。
这个参数不是直接传过来的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP