snowfox
驱动小牛
驱动小牛
  • 注册日期2001-04-23
  • 最后登录2003-12-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1912回复:13

请问要做一个pci板卡的驱动需要了解硬件的那些信息?

楼主#
更多 发布于:2002-11-05 21:35
最近需要做一块pci板卡的驱动程序,请问各位大虾,需要了解哪些硬件方面的知识?

最新喜欢:

Ice@PIce@P
kxgchina
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2005-05-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-05 21:43
同问,正在被这个问题困扰。希望这方面的牛人,大佬们,给予帮助
Dragon2008
驱动中牛
驱动中牛
  • 注册日期2002-04-01
  • 最后登录2006-03-13
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-06 08:41
硬件知识:
1、熟悉PCI规范,特别是关于PCI配置方面的东西。
2、对你要用的PCI芯片要清楚它的用法,特别是它的寄存器(如中断寄存器、邮箱、FIFO等寄存器等)。

软件知识:
1、熟悉操作系统,特别是设备管理方面的东西。
2、掌握C/C++编程
3、研究研究DDK,对开发驱动的流程有一定的了解,即使你可能不是用DDK来开发,而是用DS或WINDRIVER来开发。
4、仔细学习你用的开发工具的手册和在线帮助。

最后,多读例程,多编程实践。
我姓龙,我属龙,我叫龙。。。
brucezh
驱动老牛
驱动老牛
  • 注册日期2002-01-30
  • 最后登录2007-02-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-06 08:46
我先抛砖引玉。
起码应该知道主芯片有哪些操作方式、自己的设备用到哪些方式,操作流程怎样,这样遇到问题才知道想什么方向努力。
必须明白设备要实现哪几个端口,哪几个MemoryRange,各其什么作用。
知道设备的各种操作寄存器的偏移值,明白各寄存器中位域的作用,知道要执行设备要求的操作怎么相应地设置寄存器。
请补充 :D
打一枪……换个地方……再打一枪……
nikko
驱动小牛
驱动小牛
  • 注册日期2002-08-08
  • 最后登录2004-09-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-06 10:27
关键是要和搞硬件的人保持良好的联系!
他们会对你又非常大的帮助! ;)
http://202.106.185.224/music_1024/battleraper_02_04_27.mp3
Dragon2008
驱动中牛
驱动中牛
  • 注册日期2002-04-01
  • 最后登录2006-03-13
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-06 10:34
关键是要和搞硬件的人保持良好的联系!
他们会对你又非常大的帮助! ;)

沟通很重要。
我姓龙,我属龙,我叫龙。。。
snowfox
驱动小牛
驱动小牛
  • 注册日期2001-04-23
  • 最后登录2003-12-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-11-06 10:34
谢谢两位大虾的回答,但我还有一个问题就是:做pci的驱动是否只需要了解pci接口芯片的内部寄存器配置和访问方法,而对与该芯片相连接的其他芯片如MCU和存储设备等的特性不需要了解。对板上的其他芯片访问只需要有上层程序控制就可以了呢?
不知道我这样理解对不对,请各位高手指正,谢谢!
另外对与pci这种比较成形的技术,是用driver stdio等软件开发还是用ddk开发比较合适呢?
Dragon2008
驱动中牛
驱动中牛
  • 注册日期2002-04-01
  • 最后登录2006-03-13
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-11-06 11:08
谢谢两位大虾的回答,但我还有一个问题就是:做pci的驱动是否只需要了解pci接口芯片的内部寄存器配置和访问方法,而对与该芯片相连接的其他芯片如MCU和存储设备等的特性不需要了解。对板上的其他芯片访问只需要有上层程序控制就可以了呢?
不知道我这样理解对不对,请各位高手指正,谢谢!
另外对与pci这种比较成形的技术,是用driver stdio等软件开发还是用ddk开发比较合适呢?

Q1:做pci的驱动是否只需要了解pci接口芯片的内部寄存器配置和访问方法?
A:当然了,特别是在做中断驱动时,你得通过这些寄存器才能知道如何才能产生了一个中断,怎样才能确认该设备的中断等。

Q2:而对与该芯片相连接的其他芯片如MCU和存储设备等的特性不需要了解?
A:不能一概而论,最好还是知道一些特别是接口方面的东西。

Q3:对板上的其他芯片访问只需要有上层程序控制就可以了呢?
A:对。驱动只是实现了上层到设备的访问通道,怎么控制主要是上层DLL或应用程序的事。

Q4:另外对与pci这种比较成形的技术,是用driver stdio等软件开发还是用ddk开发比较合适呢?
A:鄙人认为用DS合适些,但你最好也读读DDK编程方面的参考书,因为DS的编程思想基本上是沿袭DDK的。

祝你成功!
我姓龙,我属龙,我叫龙。。。
brucezh
驱动老牛
驱动老牛
  • 注册日期2002-01-30
  • 最后登录2007-02-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-11-06 11:09
首先声明我也是菜鸟。

谢谢两位大虾的回答,但我还有一个问题就是:做pci的驱动是否只需要了解pci接口芯片的内部寄存器配置和访问方法,而对与该芯片相连接的其他芯片如MCU和存储设备等的特性不需要了解。对板上的其他芯片访问只需要有上层程序控制就可以了呢?
不知道我这样理解对不对,请各位高手指正,谢谢!
另外对与pci这种比较成形的技术,是用driver stdio等软件开发还是用ddk开发比较合适呢?


第一个问题,大致是正确的。其他芯片只能通过接口芯片吧,没有接口芯片连访问设备都不可能。不过存储设备是可以访问的。这是我的理解,请各位指正。

关于用什么工具,见仁见智。用DS 上手快,比较容易完成,生成代码框架易如反掌。但不如用DDK灵活,出现问题时由于部分操作被DS封装,比较不容易查。
用DDK正相反。
建议从无经验的新手第一次编驱动用DS,但要对DDK有所了解。实际上DS也是在DDK上面构建的
打一枪……换个地方……再打一枪……
kxgchina
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2005-05-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-11-06 11:24
hehe
有学到了不少东西,感谢几位大侠的帮助
edgesoul
驱动牛犊
驱动牛犊
  • 注册日期2002-11-06
  • 最后登录2007-09-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-11-06 12:55
第一个问题,大致是正确的。其他芯片只能通过接口芯片吧,没有接口芯片连访问设备都不可能。不过存储设备是可以访问的。这是我的理解,请各位指正。


请教,可不可以将PCI上的存储设备(如RAM)以硬盘的方式进行映射,以达到在系统中可以对该RAM进行读写的目的(就像访问一块硬盘一样)?
brucezh
驱动老牛
驱动老牛
  • 注册日期2002-01-30
  • 最后登录2007-02-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-11-06 13:12
[quote]第一个问题,大致是正确的。其他芯片只能通过接口芯片吧,没有接口芯片连访问设备都不可能。不过存储设备是可以访问的。这是我的理解,请各位指正。


请教,可不可以将PCI上的存储设备(如RAM)以硬盘的方式进行映射,以达到在系统中可以对该RAM进行读写的目的(就像访问一块硬盘一样)? [/quote]

还是第一次听说这说法 :)
不过可以通过PCI配置空间申请内存地址范围,但我没有用到过
打一枪……换个地方……再打一枪……
nikko
驱动小牛
驱动小牛
  • 注册日期2002-08-08
  • 最后登录2004-09-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-11-06 14:21
有着必要吗?
http://202.106.185.224/music_1024/battleraper_02_04_27.mp3
snowfox
驱动小牛
驱动小牛
  • 注册日期2001-04-23
  • 最后登录2003-12-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-11-06 15:15
非常感谢两位的回答!
只是小弟囊中羞涩,只能以意思一下了 :D
游客

返回顶部