- 论坛徽章:
- 0
|
看了看LDD,自己简单照着书上写了个驱动程序,但是在测试时,出错。
具体情况如下:
1。首先insmod 自己的模块,然后在/proc/devices这个文件中找到我驱动程序对应的主设备号
- debian:/home/tyz/NetBeansProjects/test_cdev# cat /proc/devices |grep cdev
- 249 test_cdev
复制代码
2。根据这个主设备号,在/dev/目录下创建一个新的设备。
- # mknod /dev/test c 249 0
- # ls -l /dev/test
- crw-r--r-- 1 root root 249, 0 08-28 10:21 /dev/test
复制代码
3。接着使用自己写的一个小测试程序去操作这个设备。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
/*
*
*/
int main(int argc, char** argv) {
int i ;
int testdev;
char buf[12];
memset(buf,'\0',12) ;
testdev = open("/dev/test",O_RDONLY);
if ( testdev == -1 )
{
printf("Cann't open file \n");
perror("ERROR:") ;
exit(0);
}
read(testdev,buf,10);
for (i = 0; i < 10;i++)
printf("%d ",buf[i]);
printf("\n%s\n",buf) ;
close(testdev);
return (EXIT_SUCCESS);
}
|
4。结果提示:
- debian:/home/tyz/NetBeansProjects/test_cdev# ./utest
- Cann't open file
- ERROR:: No such device or address
复制代码
这是什么问题,大家能说下如何测试自己的驱动程序么,有什么模板的做法么?
[ 本帖最后由 tyz 于 2009-8-28 10:35 编辑 ] |
|