看了ldd3觉得好糊涂,哪位好人给个简单点的例子看一下或者指明在哪里可以找到,谢谢了~
by unixlanser - 内核/嵌入技术 - 2005-10-29 15:58:04 阅读(1106) 回复(4)
看有关以太网卡驱动代码时有几点疑问:接受和发送都是使用dma来完成,pci_map_single()和pci_unmap_single()函数,当接收中断侦测后,使用pci_unmap_single()函数完成接收工作,怎么确定接收的帧的大小?在源码中,莫明其妙地直接从一个结构体中获取到,我没发现过对它的赋值;第二就是:每次中断接收以太帧,所接收到的帧是一个完整的以太帧结构嘛?即目的地址+源地址+类型+数据?
scatter/gather方式是与block dma方式相对应的一种dma方式。 在dma传输数据的过程中,要求源物理地址和目标物理地址必须是连续的。但在有的计算机体系中,如IA,连续的存储器地址在物理上不一定是连续的,则dma传输要分成多次完成。 如果传输完一块物理连续的数据后发起一次中断,同时主机进行下一块物理连续的传输,则这种方式即为block dma方式。 scatter/gather方式则不同,他是用一个链表描述物理不连续的存储器,然后把链...
什么是dma? 当我们向计算机中加入了一块新的声卡或其它适配卡时,安装程序可能会提醒我们应该选择一个dma通道。那dma是什么呢? dma(Direct Memory Access),即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,从内存到适配卡或从一段内存到另一段内存。dma技术的重要 性在于,利用它进行数据传送时不需要CPU的参与。每台电脑主机板上都有dma控制器,通常计算机对其编程,并用一个适配器上的ROM(如软盘...
昨晚开始机房bsd62连不通,中午进去一看,满屏的关于/dev/ad3 read_dma的信息. 重启fsck -y后正常启动,下面是关于smartctl的信息,是不是硬盘有问题呢? **** bsd62# smartctl -H /dev/ad3 smartctl version 5.36 [i386-portbld-freebsd6.2] Copyright (C) 2002-6 Bruce Allen Home page is http://smartmontools.sourceforge.net/ === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: P...
第9章 dma 9.1 dma:什么是dma,它如何工作 Copyright © 1995,1997 Frank Durda IV , All Rights Reserved. 10 December 1996. Last Update 8 October 1997. 翻译 gvim 原文连接 http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/dma.html 直接内存访问(dma)是一种传输数据的方式,它允许两个地址上的数据直接进行传输而无需CPU的介入。 dma功能在不同计算机体系下的实现方式有所不同,因此...
下面的这段话摘自互联网上,我搞不懂"实际的传输也不借助慢速的ISA dmaC来进行,而是由内嵌在PCI卡中的dma电路(比传统的ISA dmaC要快)来完成"这句话的意思,难道是说每个PCI卡上都有一个dmaC? dma是外设与主存之间的一种数据传输机制。一般来说,外设与主存之间存在两种数据传输方法:(1)Pragrammed I/O(PIO)方法,也即由CPU通过内存读写指令或I/O指令来持续地读写外设的内存单元(8位、16位或32位),直到整个数据传输过程完成...
在驱动里做一次硬盘dma操作,没有中断产生, 总是超时. 哪位给点建议, 看看我遗漏了什么步骤? 我的过程大概如下. 读命令: 准备s/g table, 把s/g table 地址写入s/g指针寄存器 写LBA & command register 清除中断/错误寄存器 确定读写方向, 并启动dma 以上几个步骤, 我反复确认过, 看不出有错误. 代码有点长(>1000lines), 恕不贴出来了. 在超时处理函数里, 读状态寄存器, 发现dma操作并没有完成. 各位给点建议,先谢过了