请教44b0上AD驱动的相关问题
最近在写几个硬件的驱动代码,由于刚接触这个,很多还是不懂,还希望大侠们帮我看下,下面是我碰到的错误,不甚感激阿。
AD驱动已经以模块的方式加载进内核,在lsmod命令下也可以看到
Module Size Used by Not tainted
adc 1128 0 (unused)
然后我运行一测试程序,。/test (chmod 777 test)出现。./test: Permission denied 错误,开发版其他的可执行程序/脚本都可以运行,没有任何问题。问题出在什么地方呢 ?驱动,还是测试代码 ?
test.c的代码如下:
----------------------------------------------------------------
int main(void){
int fd;
volatile unsigned int ad_data;
fd=open("/dev/ADC0.1",O_RDONLY);
if(fd==-1){
printf("can not open ADC0.0 \n");
exit(-1);
}
ioctl(fd,0,20);//set the speed of AD converting;
while(1){
ad_data=0;
read(fd,&ad_data,sizeof(ad_data));
printf("%d",ad_data);
sleep(10);
}
return 0;
}
----------------------------------------------------------------
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
没关系。前一个用于/proc/devices中的对应关系表,从这张表里面找到对应的主设备号,然后根据主设备号创建名为后一个name的设备文件。
如果排除执行权限的问题,可能是程序代码非正常,比如说open或ioctl出错,可跟踪调试一下。
strace ./test
看看在什么地方有问题
找到错误原因了
nfs客户端没有写权限
请教yidou斑竹
驱动中,register_chrdev() 中的参数 name 和,mknod name,c,major,minor 的name 有关系没?