我刚刚实施了一个"伪"设备驱动程序,并希望测试它。我可以做什么作为测试:
echo "something"> /dev/mydev
cat /dev/mydev
我的驱动程序支持更高级的功能,我实现了一个测试程序来测试这些工作程序。但是我无法在UML上运行它(错误:浮点异常)。我相信有一个特殊的"为UML编译用户程序的方法?
请你为此提出一个起点?我该如何编译测试程序?
P.S。测试程序非常简单,上面的错误不是由程序中的错误引起的。 p.p.s.为了编译模块我准备好了Makefile,所以很容易:)
提前致谢。
编辑:主机和UML内核的版本都是2.6.35
编辑:我认为我需要显示内核源代码目录,加上一些编译器选项,还有ARCH = um?编辑:目前我正在编译,没有任何选项。 gcc test.c.甚至是" Hello world"程序不适用于UML。也许我会在UML编译上改变一些东西?
答案 0 :(得分:1)
找到问题的解决方案(感谢我的同学和教授):
编译环境的glibc版本应该与UML匹配。所以编译 --static选项解决了这个问题。
答案 1 :(得分:-1)
如果您想从/向您的设备读/写,您必须实施,然后在您的程序中使用,至少系统调用open()
,read()
,write()
和close()
一样,就像Linux上的任何其他设备一样。对于您给出的示例,您的程序将是这样的(语法可能包含一些错误):
char* string = "something";
char* result = (char*)malloc(sizeof(char) * strlen(string) + 1);
int fd = open("/dev/mydev", O_RDWR);
write(fd, "something", strlen(string));
read(fd, result, strlen(string));
printf("result = %s\n", result);
close(fd);