亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hardware.c

?? 基于ucos-ii的tcpip+ucos-ii源碼
?? C
字號:
#define HARDWARE_GLOBALS
#include "config.h"
#include "../include/cfg_net.h"
#include "dm9000_driver.h"

EX_RAM uint16 iic=0;

union  REC_BUFF_UNION	REC_BUFF[MAX_REC_BUFF];

board_info_t	NetDriverInfo[MAX_NET_PORT];		/* driver status */

static uint8 nfloor      = 0;

void  	outb(uint8 reg,	uint32	IOaddr);
uint8	inb(uint32 IOaddr);
void  	outw(uint16 reg, uint32	IOaddr);
uint16	inw(uint32 IOaddr);
void  	outl(uint32 reg, uint32	IOaddr);
uint32	inl(uint32 IOaddr);
static uint8 ior(board_info_t *db, uint8 reg);
//static uint16 iors(board_info_t *db, uint16 reg);
static void iow(board_info_t *db, uint8 reg, uint8 value);
static uint16 phy_read(board_info_t *db, uint8 reg);
static void phy_write(board_info_t *db, uint8 reg, uint16 value);
static void set_PHY_mode(board_info_t *db);
static void program_dm9801(board_info_t *db, uint16 HPNA_rev);
static void program_dm9802(board_info_t *db);
static void identify_nic(board_info_t *db);
void	udelay(uint16 DelayTime);
void init_dm9000(unsigned char num);


/**********************************************************************
**函數原型:    void 		Send_Packet(struct _pkst *TxdData)
**入口參數:		struct _pkst *TxdData	:指向要發送數據的結構指針
**              
**出口參數:		無
**返 回 值:	無              
**說    明:	發送數據包,以太網底層驅動程序,所有的數據發送都要通過該程序
************************************************************************/
void Send_Packet(struct _pkst *TxdData)//  
{
		board_info_t *db = &NetDriverInfo[0];
	char * data_ptr;
	int i, tmplen;
	uint8 int_status;
	struct _pkst *ExPtr;//
	
	uint16 ii,length=0,temp16;
		
	/* Disable all interrupt */
	iow(db, 0xff, 0x80);
				
	length=length+TxdData->length;
	ExPtr=TxdData->STPTR;
	while(ExPtr!=NULL)//計算出要發送的數據的總長度
	{	
		length=length+ExPtr->length;
		ExPtr=ExPtr->STPTR;
	}
	ii=length;
	
	/* Move data to DM9000 TX RAM */	
	outb(0xf8, db->ioaddr);
	
	data_ptr = (char *)TxdData->DAPTR;
	
	if (db->io_mode == DM9000_BYTE_MODE) {
		/* Byte mode */
		for (i = 0; i < (TxdData->length); i++)
			outb((data_ptr[i] & 0xff), db->io_data);
	} else if (db->io_mode == DM9000_WORD_MODE) {
		/* Word mode */
		tmplen = ((TxdData->length) + 1) / 2;
		if((uint32)data_ptr&0x00000001)
		{
			for (i = 0; i < tmplen; i++)
			{
	         		temp16=data_ptr[i*2]+data_ptr[i*2+1]*256;
	         		outw(temp16, db->io_data);
	        }
        }	
		else
			for (i = 0; i< tmplen; i++)
				outw(((uint16 *)data_ptr)[i], db->io_data);
	} else {
		/* DWord mode */
		tmplen = ((TxdData->length) + 3) / 4;
		for (i = 0; i< tmplen; i++)
			outl(((uint32 *)data_ptr)[i], db->io_data);
	} 
		
	ExPtr=TxdData->STPTR;
	while(ExPtr!=NULL)
	{
		data_ptr = (char *)ExPtr->DAPTR;
		if (db->io_mode == DM9000_BYTE_MODE) {
			/* Byte mode */
			for (i = 0; i < ExPtr->length; i++)
				outb((data_ptr[i] & 0xff), db->io_data);
		} else if (db->io_mode == DM9000_WORD_MODE) {
			/* Word mode */
			tmplen = (ExPtr->length + 1) / 2;
			if((uint32)data_ptr&0X00000001)
			{
				for (i = 0; i < tmplen; i++)
				{
					temp16=data_ptr[i*2]+data_ptr[i*2+1]*256;
	         		outw(temp16, db->io_data);
			 	}
			}
			else
				for (i = 0; i< tmplen; i++)
					outw(((uint16 *)data_ptr)[i], db->io_data);
		} else {
			/* DWord mode */
			tmplen = (ExPtr->length + 3) / 4;
			for (i = 0; i< tmplen; i++)
				outl(((uint32 *)data_ptr)[i], db->io_data);
		} 
		ExPtr=ExPtr->STPTR;
	}
	
	/* Set TX length to DM9000 */
	iow(db, 0xfc, ii & 0xff);
	iow(db, 0xfd, (ii >> 8) & 0xff);

	/* Issue TX polling command */
	iow(db, 0x2, 0x1);		/* Cleared after TX complete */
		
	/* Re-enable interrupt*/ 
	iow(db,0xff,0x83);
	for(length=0;length<6;length++)	
	{
		for(ii=0;ii<1000;ii++)
		{//檢查CR寄存器的txp位是否為低,為1說明正在發送,為0說明發完或出錯放棄
			int_status = ior(db, 0xfe);		/* Got ISR */
			if (int_status & DM9000_TX_INTR)
			{ break; }
        	}
		if(int_status & DM9000_TX_INTR)//表示發送成功,判斷發送狀態寄存器TSR,決定是否出錯
		{
			iow(db, 0xfe, int_status);		/* Clear ISR status */ 
			break;
		}
	}
		
	
}

/**********************************************************************
**函數原型:    unsigned char * Rec_Packet()
**入口參數:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费精品视频在线| 曰韩精品一区二区| 日韩一级免费一区| 欧美日韩国产在线播放网站| 91国偷自产一区二区三区观看 | 色综合婷婷久久| 成人免费视频免费观看| 国产成人在线看| 99久久精品国产麻豆演员表| 成人性生交大片免费看视频在线| 国产一区二区三区免费观看| 国产麻豆视频精品| 成人精品小蝌蚪| 色哟哟在线观看一区二区三区| 99久久婷婷国产综合精品电影| 91视频精品在这里| 91久久国产最好的精华液| 精品婷婷伊人一区三区三| 欧美精品久久天天躁| 日韩欧美在线网站| 久久精品夜色噜噜亚洲a∨| 国产精品美女久久久久久久网站| 亚洲欧洲av一区二区三区久久| 17c精品麻豆一区二区免费| 亚洲精品美腿丝袜| 蜜桃视频一区二区三区在线观看 | 国产精品网友自拍| 亚洲欧美另类在线| 日韩电影在线一区二区三区| 久久精品国产第一区二区三区| 国产麻豆精品视频| 日本韩国欧美一区二区三区| 777午夜精品视频在线播放| 久久精品视频一区二区三区| 亚洲视频中文字幕| 美国三级日本三级久久99| 成人黄色网址在线观看| 欧美色爱综合网| 国产欧美日韩一区二区三区在线观看| 亚洲欧美一区二区视频| 免费成人你懂的| 91小视频在线免费看| 日韩精品一区二区三区在线 | 日日嗨av一区二区三区四区| 国产成人免费视频 | 久久国内精品自在自线400部| 国产福利一区二区三区在线视频| 色一情一伦一子一伦一区| 日韩欧美卡一卡二| 樱花影视一区二区| 国产成人午夜片在线观看高清观看| 色综合久久精品| 久久久精品人体av艺术| 午夜精品久久久久久久99樱桃| 国产成人精品亚洲午夜麻豆| 欧美日韩国产高清一区二区三区 | 国产欧美中文在线| 免费成人美女在线观看| 在线日韩av片| 国产精品久久久久久亚洲毛片| 美女一区二区三区| 欧美精品久久一区| 亚洲午夜影视影院在线观看| av电影一区二区| 国产三级三级三级精品8ⅰ区| 午夜影院久久久| 色婷婷久久一区二区三区麻豆| 国产精品女主播av| 精品中文av资源站在线观看| 91精品国产综合久久小美女| 一区二区在线观看视频在线观看| 成人avav在线| 亚洲欧洲日韩综合一区二区| 成人激情综合网站| 国产精品美日韩| 成人精品一区二区三区中文字幕| 久久久久久久av麻豆果冻| 久草中文综合在线| 欧美精品一区二区三区很污很色的 | 日韩免费一区二区三区在线播放| 五月婷婷欧美视频| 欧美精品 国产精品| 日日夜夜精品免费视频| 日韩丝袜情趣美女图片| 久久99精品国产.久久久久久| 777午夜精品免费视频| 日本不卡的三区四区五区| 欧美日韩久久不卡| 蜜臀av在线播放一区二区三区| 欧美一区二区黄| 国内国产精品久久| 国产精品毛片久久久久久久| 91美女蜜桃在线| 亚洲电影激情视频网站| 在线成人免费视频| 经典三级视频一区| 国产精品美女久久久久久久久久久| 99久久99久久精品国产片果冻| 亚洲乱码国产乱码精品精小说| 欧美无乱码久久久免费午夜一区 | 精品国产露脸精彩对白 | 亚洲人精品午夜| 欧美一区二区三区四区五区| 美国欧美日韩国产在线播放| 欧美韩国日本不卡| 欧美中文字幕一区二区三区 | 国产精品久久久久久久久久久免费看 | 成人黄色a**站在线观看| 亚洲人吸女人奶水| 日韩欧美国产综合一区| 国产不卡在线播放| 亚洲v日本v欧美v久久精品| 日韩亚洲国产中文字幕欧美| 成人免费福利片| 午夜视频久久久久久| 国产人成一区二区三区影院| 91免费在线看| 国产真实乱子伦精品视频| 一区二区三区国产豹纹内裤在线| 日韩欧美国产成人一区二区| aaa国产一区| 另类调教123区| 一区二区高清免费观看影视大全| 久久综合九色综合97婷婷| 欧美性猛交xxxx乱大交退制版| 国产精品影视天天线| 亚洲高清视频中文字幕| 欧美—级在线免费片| 欧美精品乱人伦久久久久久| 成人性生交大片免费看在线播放 | 亚洲欧洲av色图| 26uuu亚洲| 日韩一区二区精品在线观看| 99re热视频精品| 国产成人av电影在线| 另类的小说在线视频另类成人小视频在线 | 极品少妇xxxx精品少妇| 亚洲国产中文字幕| 中文字幕中文乱码欧美一区二区| 精品国产乱码久久久久久闺蜜| 精品视频全国免费看| 色欲综合视频天天天| 成人亚洲精品久久久久软件| 国产在线精品不卡| 毛片av一区二区| 美女性感视频久久| 久久国产福利国产秒拍| 日韩av中文字幕一区二区| 亚洲成a人片在线观看中文| 一区二区三区不卡视频在线观看| 国产精品另类一区| 日本一区二区三区在线不卡| 久久久国产精品麻豆| 日韩精品中文字幕在线不卡尤物| 91精品国产综合久久小美女| 欧美三级蜜桃2在线观看| 欧美日韩综合一区| 欧美日韩高清在线| 在线不卡欧美精品一区二区三区| 欧美吞精做爰啪啪高潮| 欧美日韩在线不卡| 日韩一区二区三区av| 日韩小视频在线观看专区| 精品日韩99亚洲| 久久久蜜臀国产一区二区| 国产亚洲精品久| 中文字幕一区在线观看视频| 国产精品免费久久久久| 一区二区三区四区高清精品免费观看| 亚洲国产成人在线| 亚洲黄色片在线观看| 亚洲电影你懂得| 国内精品视频一区二区三区八戒| 国产成人av影院| 91麻豆精品秘密| 欧美日韩视频在线观看一区二区三区 | 国产精品久久久久一区二区三区| 国产精品国产精品国产专区不片| 亚洲乱码国产乱码精品精的特点| 亚洲第一成年网| 久草热8精品视频在线观看| 成人国产精品免费观看动漫| 色综合久久久久久久久| 91精品国产日韩91久久久久久| 亚洲精品一区二区三区蜜桃下载| 国产精品久久久久久久久搜平片 | 久久综合色8888| 亚洲欧美另类在线| 久久99精品久久久久久国产越南| 国产91丝袜在线观看| 欧美日韩一区二区三区在线看| 欧美本精品男人aⅴ天堂| 亚洲欧洲av色图| 免费观看在线色综合| 99re在线视频这里只有精品| 日韩一区二区三| 一区二区三区四区激情| 韩国在线一区二区| 欧美人妇做爰xxxⅹ性高电影| 精品日产卡一卡二卡麻豆|