,--./0
总第一一七"期!
)
网卡底层驱动程序的编写
实践与经验
准备。如果控制器已作好准备,#123415467用控制器的远程#!8通道将数据包从主机内存发送到发送缓冲区中,然后发出发送命令并返回。否则,如果控制器忙的话0*9(位为-:,#123415467将数据包送到待发送数据包队列,然后返回。
#12341=5%为控制器提出的中断服务并且记录
发送状态寄存器0*5%:中的内容,发送在未发送数据包队列中的下一数据包。因此,对于发送中断,
#12341=5%执行下面几步:
!恢复中断寄存器0=5%:中的(*9位;
"通过读发送状态寄存器0*5%:检查是否正确
发送;
发送#如果还有更多的数据包在未发送队列,下一数据包,否则到第<步;
检查是否还有未处理$读取中断状态寄存器,的中断。
接收驱动程序+)
因为接收驱动程序只能是一个中断服务程序,所以它完全包含在#12341=5%之中。当产生接收中断,一个或多个数据包由控制器存入缓冲环中,
#12341=5%将这些数据包从缓冲环中移走然后送入
到主机,直到缓冲环中空为止。接收数据包驱动程序步骤如下:
!恢复中断状态寄存器中的(9*位;
读取数据包”命令读出缓冲环中"通过发出“
的下一个数据包;
#检查接收缓冲环是否为空:>&%?寄存器是
否等于’))%寄存器;
则到第-步,否则读取中断状$若环不为空,
态寄存器以处理其他中断。
参考文献
图;中断服务程序的流程图
华中理@-A刘乐善主编.微型计算机接口技术及应用.武汉:工大学出版社,+,,,
电子科技大学出@+A陈露晨等.计算机通信接口技术.成都:版社,-BBB
(收稿日期:+,,-C,DC++)
现代计算机
总第图<#123415467程序
一
一七期
"!"#$%&’"!()*$%+,,-./!)
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高等教育网卡底层驱动程序的编写(3)全文阅读和word下载服务。
相关推荐: