阅读:1611回复:9
一个关于i/o端口的问题!
我看别人写的一些网卡的驱动程序时,有一个疑问。在驱动程序中,i/o地址他们是用宏定义固定好的!比如:一个pcmcia的网卡的i/o地址固定为0x0288h。
那么,我想请教一下,这个地址,我是怎么知道的?换句话说,我怎么知道在一种操作系统下,要编写驱动程序,我要使用这个i/o地址对设备进行i/o操作,而不是使用别的i/o地址??? |
|
沙发#
发布于:2003-04-25 18:27
你说的这个地址应该是偏移量吧,不是计算机的io地址
|
|
|
板凳#
发布于:2003-04-25 22:07
大多io设备的地址是固定的,一般可在手册中查到;
一些网络芯片的io地址,可以由配置eeprom更改. 不知明白否 |
|
地板#
发布于:2003-04-26 10:10
大多io设备的地址是固定的,一般可在手册中查到; 我想问,那么这个i/o地址的固定,是由网卡的芯片来指定的?还是由PC系统的规范来指定的??例如,PC系统规定,ISA总线标准中,CPU能访问的I/O地址空间在 0X0100---0X03FF之间! |
|
地下室#
发布于:2003-04-26 14:50
由PC规范制定的
|
|
5楼#
发布于:2003-04-26 16:07
由PC规范制定的 我看了一些资料,所以我也同意楼上的朋友的看法! 那我还有一个问题:既然是PC规范制订,那么比如一个PC系统有几个ISA插槽,但访问ISA插槽的I/O端口地址是一个地址范围。那如果我写了一个ISA网卡的驱动程序,我在驱动程序中定义了一个这个网卡的I/O端口地址。那如果我定义的这个I/O地址和别的厂家的网卡驱动程序定义的I/O地址重复了,怎么办?? |
|
6楼#
发布于:2003-05-02 07:50
本人虽属新手,但对ISA板卡开发比较多
根据我设计经验, I/O端口除了系统占有的一部分外 像280-2F0,380-3F0用户几乎都可以用 都是通过跳线或拨动开关来选择的,都是更改I/O端口译码地址而已 |
|
7楼#
发布于:2003-05-06 18:02
我认为这个是在硬件设计的时候定的,比如我设计一块ISA卡的时候,通过硬件连线确定卡上某个芯片的IO地址。
|
|
8楼#
发布于:2003-05-07 09:47
我认为这个是在硬件设计的时候定的,比如我设计一块ISA卡的时候,通过硬件连线确定卡上某个芯片的IO地址。 卡上的一些寄存器相对于pc访问isa卡的i/o基地址偏移,比如说isa卡的某个数据寄存器相对于i/o基地址的偏移有可能是2,那么pc的cpu进行i/o操作访问这个数据寄存器的地址就是i/o基地址+偏移地址 2!! 那我在重复我的疑问:PC的CPU能够对网卡或者是硬件进行IN/OUT操作的I/O基地址是怎么确定的?那么,如果I/O的基地址确定了,这个基地址加上一些网卡上的不同寄存器的偏移地址,就可以让PC的CPU通过地址总线去访问网卡上的不同寄存器了! 一个网卡的I/O基地址,如果在符合PC规范的前提下,比如:ISA的网卡肯能会在0X100-0X3FF;如果我在这个范围内选了一个值,但是在如果另一个设备的驱动程序的I/O基地址也选用了我那个设备的I/O基地址,这两个I/O基地址不是重复了么? 我以前做了些底层的网卡驱动,是做无线网卡的。当时是按照同事的文档做的。现在有些疑问想继续和大家讨论! 谢谢大家的回复! |
|
9楼#
发布于:2003-05-07 14:42
[quote]我认为这个是在硬件设计的时候定的,比如我设计一块ISA卡的时候,通过硬件连线确定卡上某个芯片的IO地址。 卡上的一些寄存器相对于pc访问isa卡的i/o基地址偏移,比如说isa卡的某个数据寄存器相对于i/o基地址的偏移有可能是2,那么pc的cpu进行i/o操作访问这个数据寄存器的地址就是i/o基地址+偏移地址 2!! 那我在重复我的疑问:PC的CPU能够对网卡或者是硬件进行IN/OUT操作的I/O基地址是怎么确定的?那么,如果I/O的基地址确定了,这个基地址加上一些网卡上的不同寄存器的偏移地址,就可以让PC的CPU通过地址总线去访问网卡上的不同寄存器了! 一个网卡的I/O基地址,如果在符合PC规范的前提下,比如:ISA的网卡肯能会在0X100-0X3FF;如果我在这个范围内选了一个值,但是在如果另一个设备的驱动程序的I/O基地址也选用了我那个设备的I/O基地址,这两个I/O基地址不是重复了么? 我以前做了些底层的网卡驱动,是做无线网卡的。当时是按照同事的文档做的。现在有些疑问想继续和大家讨论! 谢谢大家的回复! [/quote] 地址重复是会引起冲突的,对于ISA的驱动,硬件资源是需要驱动程序来向系统申请的,如果地址和别的冲突的话,那么申请资源就会失败,所以不可能存在地址一样而都能工作的问题,你写过ISA的驱动,想必这个一定知道。 |
|
|