阅读:2052回复:13
请问要做一个pci板卡的驱动需要了解硬件的那些信息?
最近需要做一块pci板卡的驱动程序,请问各位大虾,需要了解哪些硬件方面的知识?
|
|
最新喜欢:![]() |
沙发#
发布于:2002-11-05 21:43
同问,正在被这个问题困扰。希望这方面的牛人,大佬们,给予帮助
|
|
板凳#
发布于:2002-11-06 08:41
硬件知识:
1、熟悉PCI规范,特别是关于PCI配置方面的东西。 2、对你要用的PCI芯片要清楚它的用法,特别是它的寄存器(如中断寄存器、邮箱、FIFO等寄存器等)。 软件知识: 1、熟悉操作系统,特别是设备管理方面的东西。 2、掌握C/C++编程 3、研究研究DDK,对开发驱动的流程有一定的了解,即使你可能不是用DDK来开发,而是用DS或WINDRIVER来开发。 4、仔细学习你用的开发工具的手册和在线帮助。 最后,多读例程,多编程实践。 |
|
|
地板#
发布于:2002-11-06 08:46
我先抛砖引玉。
起码应该知道主芯片有哪些操作方式、自己的设备用到哪些方式,操作流程怎样,这样遇到问题才知道想什么方向努力。 必须明白设备要实现哪几个端口,哪几个MemoryRange,各其什么作用。 知道设备的各种操作寄存器的偏移值,明白各寄存器中位域的作用,知道要执行设备要求的操作怎么相应地设置寄存器。 请补充 :D |
|
|
地下室#
发布于:2002-11-06 10:27
关键是要和搞硬件的人保持良好的联系!
他们会对你又非常大的帮助! ;) |
|
|
5楼#
发布于:2002-11-06 10:34
关键是要和搞硬件的人保持良好的联系! 沟通很重要。 |
|
|
6楼#
发布于:2002-11-06 10:34
谢谢两位大虾的回答,但我还有一个问题就是:做pci的驱动是否只需要了解pci接口芯片的内部寄存器配置和访问方法,而对与该芯片相连接的其他芯片如MCU和存储设备等的特性不需要了解。对板上的其他芯片访问只需要有上层程序控制就可以了呢?
不知道我这样理解对不对,请各位高手指正,谢谢! 另外对与pci这种比较成形的技术,是用driver stdio等软件开发还是用ddk开发比较合适呢? |
|
7楼#
发布于:2002-11-06 11:08
谢谢两位大虾的回答,但我还有一个问题就是:做pci的驱动是否只需要了解pci接口芯片的内部寄存器配置和访问方法,而对与该芯片相连接的其他芯片如MCU和存储设备等的特性不需要了解。对板上的其他芯片访问只需要有上层程序控制就可以了呢? Q1:做pci的驱动是否只需要了解pci接口芯片的内部寄存器配置和访问方法? A:当然了,特别是在做中断驱动时,你得通过这些寄存器才能知道如何才能产生了一个中断,怎样才能确认该设备的中断等。 Q2:而对与该芯片相连接的其他芯片如MCU和存储设备等的特性不需要了解? A:不能一概而论,最好还是知道一些特别是接口方面的东西。 Q3:对板上的其他芯片访问只需要有上层程序控制就可以了呢? A:对。驱动只是实现了上层到设备的访问通道,怎么控制主要是上层DLL或应用程序的事。 Q4:另外对与pci这种比较成形的技术,是用driver stdio等软件开发还是用ddk开发比较合适呢? A:鄙人认为用DS合适些,但你最好也读读DDK编程方面的参考书,因为DS的编程思想基本上是沿袭DDK的。 祝你成功! |
|
|
8楼#
发布于:2002-11-06 11:09
首先声明我也是菜鸟。
谢谢两位大虾的回答,但我还有一个问题就是:做pci的驱动是否只需要了解pci接口芯片的内部寄存器配置和访问方法,而对与该芯片相连接的其他芯片如MCU和存储设备等的特性不需要了解。对板上的其他芯片访问只需要有上层程序控制就可以了呢? 第一个问题,大致是正确的。其他芯片只能通过接口芯片吧,没有接口芯片连访问设备都不可能。不过存储设备是可以访问的。这是我的理解,请各位指正。 关于用什么工具,见仁见智。用DS 上手快,比较容易完成,生成代码框架易如反掌。但不如用DDK灵活,出现问题时由于部分操作被DS封装,比较不容易查。 用DDK正相反。 建议从无经验的新手第一次编驱动用DS,但要对DDK有所了解。实际上DS也是在DDK上面构建的 |
|
|
9楼#
发布于:2002-11-06 11:24
hehe
有学到了不少东西,感谢几位大侠的帮助 |
|
10楼#
发布于:2002-11-06 12:55
第一个问题,大致是正确的。其他芯片只能通过接口芯片吧,没有接口芯片连访问设备都不可能。不过存储设备是可以访问的。这是我的理解,请各位指正。 请教,可不可以将PCI上的存储设备(如RAM)以硬盘的方式进行映射,以达到在系统中可以对该RAM进行读写的目的(就像访问一块硬盘一样)? |
|
11楼#
发布于:2002-11-06 13:12
[quote]第一个问题,大致是正确的。其他芯片只能通过接口芯片吧,没有接口芯片连访问设备都不可能。不过存储设备是可以访问的。这是我的理解,请各位指正。 请教,可不可以将PCI上的存储设备(如RAM)以硬盘的方式进行映射,以达到在系统中可以对该RAM进行读写的目的(就像访问一块硬盘一样)? [/quote] 还是第一次听说这说法 :) 不过可以通过PCI配置空间申请内存地址范围,但我没有用到过 |
|
|
12楼#
发布于:2002-11-06 14:21
有着必要吗?
|
|
|
13楼#
发布于:2002-11-06 15:15
非常感谢两位的回答!
只是小弟囊中羞涩,只能以意思一下了 :D |
|