编写驱动测试程序的问题?(问题解决,谢谢各位大侠)
驱动中的相关代码如下:
static struct rtc_class_ops ds1302_rtc_ops = {
.read_time = ds1302_rtc_read_time,
.set_time = ds1302_rtc_set_time,
.ioctl = ds1302_rtc_ioctl,
};
static int ds1302_rtc_read_time(struct device *dev, struct rtc_time *tm)
{
....
}
驱动加载,注册成功。我需要测试驱动是否能用。
但是,ds1302_rtc_read_time()的参数是struct device *dev,不是一般的设备节点参数。请问测试程序应该如何编写。谢谢!
[ 本帖最后由 zhj1011 于 2009-5-6 10:47 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
你是打算写应用程序做测试吧?应用程序中是用不到内核里面的数据结构的,还有一个问题,就是驱动里面read的第一个参数一般是struct file *filp,你的看起来比较怪。。。
最好是从应用层来测试,如果你这个驱动最终要提供给应用层调用的话
是的,写应用程序做测试的。
呵呵 我刚接触驱动,很多东西不懂,让楼上见笑了。
我又看了看代码,rtc下的驱动,是不是通过rtc-dev.c中的操作结构中的函数来操作的???
static const struct file_operations rtc_dev_fops = {
.owner = THIS_MODULE,
.llseek = no_llseek,
.read = rtc_dev_read,
.poll = rtc_dev_poll,
.unlocked_ioctl = rtc_dev_ioctl,
.open = rtc_dev_open,
.release = rtc_dev_release,
.fasync = rtc_dev_fasync,
};
是不是就相当于使用open,read等函数接口,直接操作???
建议你先把LDD3认真看一遍
对,可以通过常用的open,read等系统调用测试。不过首先你得有设备节点阿。通过会在/dev目录下有个设备文件的
驱动测试不好测啊,比如网卡设置100M全双工,和半双工。
你调用驱动函数设置,他告诉你设置成功,可如何测试是否真的使硬件生效了呢?
这个问题一直都是嵌入式测试的难点
这种情况下,也许可以找个硬件工程师直接从硬件那边测一下吧? 不过如果是人家做的板子的话,那是比较麻烦
LZ提到的测试,还只是功能方面,相对来说还好测。
像稳定性,性能,覆盖率等,就难测了。