⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 func00_t.cpp

📁 DM9000芯片所有的资料,包括如何与S3C2440连接的原理图,PCB,还有最新驱动,怎样在驱动里修改参数的PDF文档
💻 CPP
字号:
// DM9013.cpp: implementation of the DM9013 class.
//
// Copyright (c) 2000-2007 Davicom Inc.  All rights reserved.
// 
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "FUNC00_T.h"
#include "FUNC03.h"
#include "FUNC13.h"
//#include "ver.h" //[chip]

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

DM9000_T::DM9000_T(NIC_DRIVER_OBJECT *pUpper,PVOID pVoid) : DM9000(pUpper,pVoid)
{

}

DM9000_T::~DM9000_T()
{

}

DWORD DM9000_T::GetDriverChipID()
{
	return DM9000_T_CHIP_ID; 
}
	
//---------------------
// Over Write Func
//---------------------
int	DM9000_T::DeviceSend(PCQUEUE_GEN_HEADER	pObject)
{
	//#ifdef	IMPL_STORE_AND_INDICATION
	//..lkklvklnklfklbklbrtbtr.../ ,.;rnl;ml;m tnkl;rtnry..
	//#endif

	if(pObject) m_TQStandby.Enqueue(pObject);
	m_nTxPendings++; /* increment counter */

	PCQUEUE_GEN_HEADER pcurr;
	m_TQWaiting.Enqueue(pcurr= m_TQStandby.Dequeue()); /* get first pkt in queue */

	/* fill data : Check To TxPending # */
	WPutChar('(');  WPutChar(0x30+m_nTxPendings);  // Fill-Data

	nTxCnt++;
	ISA_TxFIFO_Begin();
	
	
	DeviceWriteData((PBYTE)CQueueGetUserPointer(pcurr), pcurr->usLength);
	DeviceWritePort(DM9_TXLENH, HIGH_BYTE(pcurr->usLength));
	DeviceWritePort(DM9_TXLENL, LOW_BYTE(pcurr->usLength));
	DeviceWritePort(DM9_TXCR, MAKE_MASK(0)); // TXCR<0>, issue TX request

	ISA_TxFIFO_End();

//JJ-DBG.CPP
	WPutChar(')'); // TX-complete
		//{
			nTxSramReadPoint= (((U16)DeviceReadPort(DM9_TRAH) << 8 ) | (U16)DeviceReadPort(DM9_TRAL));

			if (nTxSramReadPoint != nTxMemoryWrAddr) //ERROR;
				WPrintf(WSTR("(%d(%d,%d))\r\n"), nToWrAddr%1000, nTxMemoryWrAddr%1000, nTxSramReadPoint%1000);

			WPrintf(WSTR("[TC=%d]\r\n"), nTxCnt);
		//}

	return 0;
} // pcurr

void DM9000_T::ISA_TxFIFO_Begin()
{
//JJ-DBG.CPP	
	nTxMemoryWrAddr= (((U16)DeviceReadPort(DM9_MDWAH) << 8 ) | (U16)DeviceReadPort(DM9_MDWAL));
	nTxSramReadPoint= (((U16)DeviceReadPort(DM9_TRAH) << 8 ) | (U16)DeviceReadPort(DM9_TRAL));
	
	//  [NextLine, Only for DM9003,D9013]
	if (((m_pUpper->m_Bag.m_pLowerId==DM9003_CHIP_ID)||
		(m_pUpper->m_Bag.m_pLowerId==DM9013_CHIP_ID)))
		; //WNextLine();
	else
		WPrintf(TEXT("[TC=%d S%d,%d]"), nTxCnt, nTxMemoryWrAddr%100, nTxSramReadPoint%100); // "\r\n"
}
void DM9000_T::ISA_TxFIFO_End()
{
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -