阅读:1568回复:8
昨天还可以对设备手动加载和卸载,今天怎么不能了?
不知道怎么回出现这个问题,我写了我的PCI卡的一个简单程序,昨天还是可以 insmod 和rmmod,可是,今天,我添加了一些打印信息的句子,然后GCC编译,通过,接着出现如下问题:
(1)使用insmod p9054.o的时候,却说“段错误”,我看了/proc/modules的内容,发现有 \"p9054 5256 (initializing)\" 的信息,可是原来应该注释为(unused) 的啊? (2)可是/proc/devices却没有我的p9054设备,就是说init时并没有注册上我的设备,我早就mknod了一个设备节点了的。 (3)想使用rmmod将模块卸载时,却出现了\"Device or resource is busy\"的信息! 请高手指点原因在哪儿啊,因为没有执行应用程序,应该是还没有操作硬件吧,可是怎么会忙呢?多帮忙,一定给分!!! |
|
沙发#
发布于:2003-06-19 12:31
重启一次,试试看。
|
|
|
板凳#
发布于:2003-06-19 14:48
不知道怎么回出现这个问题,我写了我的PCI卡的一个简单程序,昨天还是可以 insmod 和rmmod,可是,今天,我添加了一些打印信息的句子,然后GCC编译,通过,接着出现如下问题: 我曾经也出现过设备忙的错误,不过是在insmod时,原来是我的probe返回的值有问题,正常情况下是0,而我返回了非0 |
|
|
地板#
发布于:2003-06-19 14:56
多谢两位支持!!!
fwzfwz1:重启的确可以卸掉,可是,再insmod就又有这种问题了! flycat0101:我的事实上也是insmod的过程中出的问题,应该是在init_module的过程中,我初始化我的PCI卡,查询每个BAR是数据什么类型的空间时出了问题,我不知道你说的probe是你单独作的一块,还是在初始化过程? |
|
地下室#
发布于:2003-06-20 15:09
问题解决了,是因为I/O端口处理的问题,感觉在把物理设备PCI卡上资源映射到系统虚拟空间的时候,I/O的BAR1不需要映射就可以使用,而对于MEMORY类型的BAR0,BAR2,BAR3则必须映射过来才可以使用!
现在板子已经可以正常读写,距离成功又近了一步!!! |
|
5楼#
发布于:2003-06-22 20:45
是这样的,对于I/O空间不需要映射就可以直接存取,而对于存储器空间必须映射为虚拟地址之后才可以存取。
|
|
|
6楼#
发布于:2003-06-23 17:37
是阿,我开始不明白,经历了繁复调试才知道,开始还用错了函数,现在可以读写了,只是DMA还是没有实现,你的如何了?
|
|
7楼#
发布于:2003-06-23 18:31
我前两天用一个PCI网卡实现了PCI空间地读写,至于DMA现在还无法实现。因为我的PCI9054 RDK的串行ROM丢了, 无法进行下一步的试验。很遗憾呀!
|
|
|
8楼#
发布于:2003-06-25 09:15
是不是可以试一下焊一个SRAM之类的存储器,就可以了啊,要是你不在往下调试了,我也感到很遗憾啊,因为通过彼此交流可以学到很多东西!
|
|