- 论坛徽章:
- 0
|
原帖由 accessory 于 2009-11-5 01:39 发表 ![]()
先看一下收发的CONFIGURATION有没有设置好。具体的寄存器是 TxConfig = 0x40,
RxConfig = 0x44。
如果设置好的话,ISSUECMD之后,网卡就开始DMA数据,发包。然后产生一个中断告诉驱动发送完成。不过是否产 ...
accessory,
对中断设置再次检查后,没发现配置上的问题。因此,想再请问一下:
1、对于PCI网卡中断处理的理解:通过PCI配置空间得知PCI网卡(这里指我使用的RTL8139网卡)在BIOS中分配的中断号,假如是11,这个中断号应该对应8259A芯片中的第11号引脚,因此将该中断号与中断处理程序关联上并打开8259A芯片的第11号引脚的终端屏蔽就可以让网卡的中断处理程序工作了(当然,对于rtl8139,还要设置IMR寄存器的)。
2、对于发包的过程,应该是重复使用TASD0-4和TSD0-4这4对寄存器,每发送一个包都会发送到FIFO对应存储器,如果是一个完整的包或包的大小超过TSD“阀值”,这时就会触发“发送中断”并调用ISR函数进行处理。
对于1,我的理解对吗?
对于2,TSD的阀值在哪里可以查看并设置?ISR函数是指我自己编写的中断处理函数吗?如果是,哪ISR函数跟rtl8139中的ISR寄存器是否有关联?(即是否要将我写的中断处理函数的入口地址写到ISR寄存器中?)
[ 本帖最后由 sherf 于 2009-11-5 12:31 编辑 ] |
|