主题 : 驱动文件打开错误 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 105870
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
贡献值: 0 点
综合积分: 44 分
注册时间: 2014-07-07
最后登录: 2015-02-09
楼主  发表于: 2015-02-01 13:54

 驱动文件打开错误

驱动文件打开错误


我制作了内核模块memdev.ko,由memdev.c memdev.h, make生成
*********************memdev.h****************
#ifndef MEMDEV_MAJOR
#define MEMDEV_MAJOR 254   /*主设备号*/
#endif

#ifndef MEMDEV_NR_DEVS
#define MEMDEV_NR_DEVS 2    /*次设备号*/
#endif

我在开发板ARM mini2440 Linux2.6.32.2上运行
[root@FriendlyARM driver]# insmod memdev.ko
[root@FriendlyARM driver]# lsmod
memdev 2093 0 - Live 0xbf006000
正确,没有问题。

驱动应用程序mem,由app-mem.c, arm-linux-gcc生成
*********app-mem.c,**************
/*初始化Buf*/
strcpy(Buf,"Mem is char dev!");
printf("BUF: %s\n",Buf);

/*打开设备文件*/
fp0 = fopen("/dev/memdev0","r+");
if (fp0 == NULL)
{
printf("Open Memdev0 Error!\n");
return -1;
}

[root@FriendlyARM driver]# ./mem
BUF: Mem is char dev!
Open Memdev0 Error!
显示以上错误信息。

我在ARM开发板rootfs/dev/下没有发现驱动文件memdev0
于是,
[root@FriendlyARM /dev]# mknod -m 666 memdev0 c 99 2
[root@FriendlyARM /dev]# ls *mem*
mem      memdev0

[root@FriendlyARM driver]# ./mem
BUF: Mem is char dev!
Open Memdev0 Error!
仍然显示以上错误信息。