alto618
驱动牛犊
驱动牛犊
  • 注册日期2005-02-10
  • 最后登录2008-04-12
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望12点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
阅读:2062回复:2

linux下PCI驱动的问题

楼主#
更多 发布于:2007-04-04 17:31
  最近为PCI板卡做LINUX环境下的驱动程序,在系统启动以后可以检测到板卡,并为板卡分配好硬件资源cat /proc/pci可以知道这些信息,自己编写驱动程序,可以用pci_register_driver(&my_pci_driver)注册设备(成功),说明static struct pci_driver 这个结构体已经被创建,问题是无法调用probe函数,是static struct pci_device_id pci_tbl[]出问题(几乎被排除)?还是由于系统初始化以后没有“新”设备增加,因此探测程序睡眠(如果不是热插拔设备怎么办)?还是请您帮忙讨论解决!
其实要是能搞清楚内核中处理PCI设备的程序与用户驱动程序之间的关系与各自功能,这个问题也就解决了,再次感谢您的经验之谈!
zhaoyanghong
驱动小牛
驱动小牛
  • 注册日期2004-11-13
  • 最后登录2008-08-05
  • 粉丝0
  • 关注0
  • 积分341分
  • 威望92点
  • 贡献值0点
  • 好评度91点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-04-05 08:47
引用第0楼alto6182007-04-04 17:31发表的“linux下PCI驱动的问题”:
  最近为PCI板卡做LINUX环境下的驱动程序,在系统启动以后可以检测到板卡,并为板卡分配好硬件资源cat /proc/pci可以知道这些信息,自己编写驱动程序,可以用pci_register_driver(&my_pci_driver)注册设备(成功),说明static struct pci_driver 这个结构体已经被创建,问题是无法调用probe函数,是static struct pci_device_id pci_tbl[]出问题(几乎被排除)?还是由于系统初始化以后没有“新”设备增加,因此探测程序睡眠(如果不是热插拔设备怎么办)?还是请您帮忙讨论解决!
其实要是能搞清楚内核中处理PCI设备的程序与用户驱动程序之间的关系与各自功能,这个问题也就解决了,再次感谢您的经验之谈!

    是否运行到probe函数?在驱动中要运行此函数,debug一下.PCI设备的探测仅找到该设备,分配资源,登记---在驱动运行之前.
alto618
驱动牛犊
驱动牛犊
  • 注册日期2005-02-10
  • 最后登录2008-04-12
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望12点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-04-06 08:30
受.pcimap文件的启发,我将struct pci_device_id 结构体的kernel_ulong_t driver_data值改为0,就probe到设备了!
游客

返回顶部