驱动文件打开错误
我制作了内核模块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!
仍然显示以上错误信息。