zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1568回复:8

昨天还可以对设备手动加载和卸载,今天怎么不能了?

楼主#
更多 发布于:2003-06-19 11:26
不知道怎么回出现这个问题,我写了我的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\"的信息!

请高手指点原因在哪儿啊,因为没有执行应用程序,应该是还没有操作硬件吧,可是怎么会忙呢?多帮忙,一定给分!!!
fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-19 12:31
重启一次,试试看。
有了驱动,人才有了力量。
flycat0101
驱动小牛
驱动小牛
  • 注册日期2002-06-24
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2003-06-19 14:48
不知道怎么回出现这个问题,我写了我的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\"的信息!

请高手指点原因在哪儿啊,因为没有执行应用程序,应该是还没有操作硬件吧,可是怎么会忙呢?多帮忙,一定给分!!!
 

我曾经也出现过设备忙的错误,不过是在insmod时,原来是我的probe返回的值有问题,正常情况下是0,而我返回了非0
我思,故我在
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-19 14:56
多谢两位支持!!!
fwzfwz1:重启的确可以卸掉,可是,再insmod就又有这种问题了!

flycat0101:我的事实上也是insmod的过程中出的问题,应该是在init_module的过程中,我初始化我的PCI卡,查询每个BAR是数据什么类型的空间时出了问题,我不知道你说的probe是你单独作的一块,还是在初始化过程?

zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-20 15:09
问题解决了,是因为I/O端口处理的问题,感觉在把物理设备PCI卡上资源映射到系统虚拟空间的时候,I/O的BAR1不需要映射就可以使用,而对于MEMORY类型的BAR0,BAR2,BAR3则必须映射过来才可以使用!

现在板子已经可以正常读写,距离成功又近了一步!!!
fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-22 20:45
是这样的,对于I/O空间不需要映射就可以直接存取,而对于存储器空间必须映射为虚拟地址之后才可以存取。
有了驱动,人才有了力量。
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-06-23 17:37
是阿,我开始不明白,经历了繁复调试才知道,开始还用错了函数,现在可以读写了,只是DMA还是没有实现,你的如何了?
fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-06-23 18:31
我前两天用一个PCI网卡实现了PCI空间地读写,至于DMA现在还无法实现。因为我的PCI9054 RDK的串行ROM丢了, 无法进行下一步的试验。很遗憾呀!
有了驱动,人才有了力量。
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-06-25 09:15
是不是可以试一下焊一个SRAM之类的存储器,就可以了啊,要是你不在往下调试了,我也感到很遗憾啊,因为通过彼此交流可以学到很多东西!
游客

返回顶部