edriver
驱动小牛
驱动小牛
  • 注册日期2002-03-04
  • 最后登录2006-09-15
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1796回复:6

如何写一个列举PCI设备的Driver?

楼主#
更多 发布于:2002-12-11 17:26
自己想开始写第一个linux driver:列举所有PCI设备的一个driver,那么将会用到哪些函数呢?在redhat8.0下面。自己看了一些例子,没有头绪!或者能给我一个例子也好!多谢!!!
heqingbj
驱动小牛
驱动小牛
  • 注册日期2002-10-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-12-11 19:03
自己想开始写第一个linux driver:列举所有PCI设备的一个driver,那么将会用到哪些函数呢?在redhat8.0下面。自己看了一些例子,没有头绪!或者能给我一个例子也好!多谢!!!


可以看 LINUX 内核2。4源代码分析 对这块讲的不少 比较详细了
edriver
驱动小牛
驱动小牛
  • 注册日期2002-03-04
  • 最后登录2006-09-15
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-12-12 10:12
LINUX 内核2.4源代码分析 ?
这是一本书吗?能给点这方面的思路吗?比如大致的框架。
shownxu
驱动小牛
驱动小牛
  • 注册日期2002-02-05
  • 最后登录2008-04-25
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-12-12 11:48
可以直接使用kernel枚举pci的driver, 就像pcmcia driver哪样, 怎么用可以看一下这方面的书
edriver
驱动小牛
驱动小牛
  • 注册日期2002-03-04
  • 最后登录2006-09-15
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-12-12 11:54
在linux下面,究竟如何获取PCI板块的各种资源呢,我们知道在DDK里,是通过pnp来获取资源的,那么在linux下,也可以通过pnp来实现吗?
unix1998
驱动老牛
驱动老牛
  • 注册日期2002-05-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-12-12 16:58
仔细看看pci.c,pci.h.
有pci_probe函数吧,我记得。
heiguo2001
驱动牛犊
驱动牛犊
  • 注册日期2002-12-07
  • 最后登录2005-09-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-12-14 17:27
正如上面所说的
看linux源代码是最好的方法,源代码文件主要在:
/usr/src/linux-2.2.4/drivers/pci和/usr/src/linux-2.2.4/arch/i386/kernel下吧
另外还得学点关于PCI的规范,每个PCI设备都有256字节的配置空间
枚举pci设备主要也就是读出这些内容。用I/O端口读写的基本方法如下:
向0xCF8端口写入要读出数据的地址,然后从端口0xCFC读出数据
地址= (BusNo<<16) + (DeviceNo<<11) + (FunctionNo<<8) + 偏移


游客

返回顶部