阅读:1517回复:9
哪里可以得到Windriver for Linux?
rt
|
|
沙发#
发布于:2003-01-09 09:01
谢谢你的回答,可是好像不是我想问的。 :D :D :D
我想问的是: 应该在什么地方加载我的file_operations 结构? 肯定应该在探测函数里面加载了,可是应该用什么函数来实现了,我看了很多例子,可是都是诸如声卡,网卡的例子,它们都有自己特有的函数,但是对于数据采集卡却不知道该如何下手! 请教unix1998: 你是否有这类的例子? |
|
板凳#
发布于:2003-01-08 16:38
我架设你的kernel是2.4。如果是2.2我和你说那个办法。
你应该这么做: 注册你的driver的探测程序和一起的pci子系统的相关设备数据。 这些信息在pci_driver结构体里。你的初始化程序在里面应该有所体现。 下一步才能进行register_pci_driver注册。 (see pci.h) pci_driver结构很重要。里面的probe函数就是探测程序。 说到着你应该明白了吧。 建议你看pci_driver结构,pci.h文件,和一些pci驱动的例子。 这个不是char设备那样直接注册了。 |
|
地板#
发布于:2003-01-08 15:45
我已经下载了试用版,给我的PCI板卡生成了源代码,不行呀,根本就不支持PnP嘛。这样的代码其实早就有了!
unix1998,我想和讨论如何让PCI设备支持PnP的问题! 我的想法是这样的: struct pci_driver hppm_driver = { /* .... */ }; int hppm_init_module(void) { return pci_module_init(&hppm_driver); } int hppm_cleanup_module(void) { pci_unregister_driver(&hppm_driver); } 而一般的字符设备是这样的: static struct file_operations mypci_fops = { NULL, /* seek */ mypci_read, /* read */ mypci_write, /* write */ NULL, /* readdir */ NULL, /* select */ mypci_ioctl, /* ioctl */ NULL, mypci_open, mypci_close, NULL /* fsync */ }; if ((err = register_chrdev(MajorNumber, \"mypci\", &mypci_fops))) { printk(\"%s: Failure to load module. error %d\\n\", ADAPTER_ID, -err); return err; } 所以我就不明白了:如果用 register_chrdev(),就可以用到file_operations 结构,可是如果用pci_module_init(),就用不到这个结构!那么我应该在什么地方加载我的file_operations 结构呢?没有这个结构就不能和我的应用程序交互数据! 这个问题应该怎么解决呢? |
|
地下室#
发布于:2003-01-08 14:38
到这里下载:http://www.driverdevelop.com/download.php?sortid=1&page=11
|
|
5楼#
发布于:2003-01-08 12:52
说错了,是WD521LN.tgz
6m多。 |
|
6楼#
发布于:2003-01-08 12:38
不行,我要卖1000万美元。
:D :D :D KD521LN.tgz 6.85m 怎么给你? |
|
7楼#
发布于:2003-01-08 11:50
unix1998,能否拿出来共享?
本着GPL的原则,还是拿出来共享嘛! :D :D :D |
|
8楼#
发布于:2003-01-08 11:29
我有。
|
|
9楼#
发布于:2003-01-08 10:00
上他的网站可以得到一个免费的试用版。
|
|