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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? seeddm642_emac.c

?? dsp642 for easm based on BIOS
?? C
字號:
/**************************************************************************/
/*  Copyright 2003 by SEED.                                               */
/*  All rights reserved. Property of SEED.                                */
/**************************************************************************/
 
/*
 *  ======== seeddm642_cpld.c ========
 *  EMAC module for the SEEDDM642
 */
/*-----------------------------------------------------------------------*/

#include "seeddm642_emac.h"

//Maximum count value
#define TIMER_CNT  20

//Timer control register (CTL)
Uint32 TimerControl = 
			
	TIMER_CTL_RMK
	(
		TIMER_CTL_SPND_EMUSTOP,
  		TIMER_CTL_INVINP_NO, 		// TINP inverter control(INVINP)
  		TIMER_CTL_CLKSRC_CPUOVR8,	// Timer input clock source (CLKSRC)
		TIMER_CTL_CP_PULSE, 		// Clock/pulse mode(CP)
		TIMER_CTL_HLD_YES, 			// Hold(HLD)
		TIMER_CTL_GO_NO, 			// Go bit(GO)-
									//   resets & starts timer counter
		TIMER_CTL_PWID_ONE, 		// Pulse width(PWID)-
									//   used only in pulse mode
		TIMER_CTL_DATOUT_0, 		// Data output (DATOUT)
		TIMER_CTL_INVOUT_NO, 		// TOUT inverter control (INVOUT) 
		TIMER_CTL_FUNC_GPIO 		// Function of TOUT pin(FUNC)
	);
	
//---------Function prototypes---------
void TimerEventHandler(void);


//---------Global data definition---------
TIMER_Handle hTimer1;
TIMER_Config myTimConfig;
Uint32 TimerEventId;


extern Handle hApplication;

uint retVal;
Handle phEMAC;
/*mac的地址*/
Uint8 MacAddr[6] = {0x08,0x00,0x28,0x32,0x17,0x42};
/*EMAC的配置*/
EMAC_Config SEEDDM642emaccfg,*pEMACConfig;
/*return interrupt flag*/
uint Emac_Flag = 0;

extern Uint8 TxBuffer[1024];
Uint32 Newdataflag = 0;
EMAC_RxBuffer RxBuffer[4];
EMAC_RxBuffFlag RxBuffFlag[4];
EMAC_Pkt NetPacket[4];

/*回調(diào)函數(shù),用于返回一個(gè)空的接收數(shù)據(jù)緩沖區(qū)*/
EMAC_Pkt * EMAC_fcbGetPacket(Handle hApplication)
{
	Uint32 i = 0;
	for(i = 0;i<4;i++)
	{
		if(RxBuffFlag[i].RxBuff_used ==0)
		{
			return 	&NetPacket[i];
		}	
	}
	RxBuffFlag[0].RxBuff_used = 0;	
	RxBuffFlag[0].RxBuff_over = 1;
	return 	&NetPacket[0];
}
/*回調(diào)函數(shù),用于Rx接收數(shù)據(jù)緩沖區(qū)*/
EMAC_Pkt * EMAC_fcbRxPacket(Handle hApplication,EMAC_Pkt *pPacket)
{
	Uint32 i;
	/*接收數(shù)據(jù)*/
	Newdataflag = 1;
	i = 0;
	while(pPacket != &NetPacket[i])
	{
		i++;
		if(i ==4)
		{
			return NULL;
		}
	}
	//標(biāo)明返回的是第幾個(gè)數(shù)據(jù)包
	RxBuffFlag[i-1].RxBuff_used = 0;
	return pPacket;
	
}
/*回調(diào)函數(shù),用于清空接收數(shù)據(jù)緩沖區(qū)*/
void EMAC_fcbFreePacket(Handle hApplication,EMAC_Pkt *pPacket)
{
	Uint32 i ;
	for(i = 0; i<1024;i++)
	{
		TxBuffer[i] = 0;
	}
}
/*回調(diào)函數(shù),用于狀態(tài)返回與設(shè)置*/
void EMAC_fcbStatus(Handle hApplication)
{
}
/*回調(diào)函數(shù),用于發(fā)送與緩沖的統(tǒng)計(jì)*/
void EMAC_fcbStatistics(Handle hApplication)
{
}
/*----------------------------------------------------------------------------*/
/***********************************************************************/
/*																	   */
/*	seeddm642_timer_open												   */
/*		描述:	初始化定時(shí)器,為讀寫ESAM進(jìn)行初始化					   */
/*      參數(shù):  無													   */
/*      返回:  無													   */
/*																	   */
/***********************************************************************/
void seeddm642_timer_open()
{ 
	//Open TIMER1 device, and reset it to power-on default state
	hTimer1 = TIMER_open(TIMER_DEV1, TIMER_OPEN_RESET);
	//Obtain the event ID for the timer device
	TimerEventId = TIMER_getEventId(hTimer1);
	//Map TIMER events to physical interrupt number
	IRQ_map(TimerEventId, 14);
	//Map External int4 to physical interrupt number
	IRQ_map(IRQ_EVT_EXTINT4,4);
	//Reset the timer events
	IRQ_reset(TimerEventId);
	//---------Configure the timer devices---------	
	//Start count value at zero
	myTimConfig.cnt = 0x0;
	//Use predefined control value  */
	myTimConfig.ctl = TimerControl;	
	//Set period,周期為(1/9600)/2
	myTimConfig.prd = 0x4785600;

	IRQ_globalEnable();
	//Enable the timer events(events are disabled while resetting)
	IRQ_enable(TimerEventId);
	//啟動(dòng)計(jì)數(shù)器
	TIMER_config(hTimer1, &myTimConfig);
	//Start the timers
	TIMER_start(hTimer1);
}
/*----------------------------------------------------------------------------*/
Handle seeddm642_EmacOpen()
{
	Uint32 i,j;
	/*初始化數(shù)據(jù)緩沖區(qū)*/
	for(i = 0;i<4;i++)
	{
		for(j = 0;j<1024;j++)
		{
			RxBuffer[i].RxBuffer[j] = 0;
		}			
	}
	/*初始化狀態(tài)區(qū)*/
	for(i = 0;i<4;i++)
	{
		RxBuffFlag[i].RxBuff_used = 0;
		RxBuffFlag[i].RxBuff_over = 0;
	}
	/*初始化數(shù)據(jù)包*/
	for(i = 0;i<4;i++)
	{
		NetPacket[i].pDataBuffer = &(RxBuffer[i].RxBuffer[0]);
		NetPacket[i].BufferLen  = 1024;
		NetPacket[i].ValidLen   = 1024;
		NetPacket[i].DataOffset = 0;
		NetPacket[i].PktChannel = 0;
		NetPacket[i].PktLength  = 1024;
		NetPacket[i].PktFrags   = 1;
	}
	/*設(shè)置EMAC的配置結(jié)構(gòu)*/
	pEMACConfig = &SEEDDM642emaccfg;//設(shè)指針指向配置結(jié)構(gòu);
	/* Configuation Mode Flags                */
	pEMACConfig->ModeFlags = EMAC_CONFIG_MODEFLG_MACLOOPBACK;
	/* CSL_MDIO Mode Flags (see CSL_MDIO.H)   */
	pEMACConfig->MdioModeFlags = MDIO_MODEFLG_AUTONEG;
	/* Number of Tx Channels to use (1-8)     */
	pEMACConfig->TxChannels = 8;
	/* Mac Address                            */
	for(i = 0;i<6;i++)
	{
		pEMACConfig->MacAddr[i] = MacAddr[i];
	}
	/* Max Rx packet buffers to get from pool */
	pEMACConfig->RxMaxPktPool = 64;
	/*設(shè)置回調(diào)函數(shù)pfcbGetPacket*/
	pEMACConfig->pfcbGetPacket = &EMAC_fcbGetPacket;
	/*設(shè)置回調(diào)函數(shù)pfcbGetPacket*/
	pEMACConfig->pfcbFreePacket = &EMAC_fcbFreePacket;
	/*設(shè)置回調(diào)函數(shù)pfcbGetPacket*/
	pEMACConfig->pfcbRxPacket = &EMAC_fcbRxPacket;
	/*設(shè)置回調(diào)函數(shù)pfcbStatus*/
	pEMACConfig->pfcbStatus = &EMAC_fcbStatus;
	/*設(shè)置回調(diào)函數(shù)pfcbStatistics*/
	pEMACConfig->pfcbStatistics = &EMAC_fcbStatistics;
	
	/*打開EMAC資源*/
	retVal = EMAC_open( 1,				/*DM642只有一個(gè)EMAC資源,故只能打開一個(gè)*/ 
						hApplication, 	/*應(yīng)用程序的回調(diào)句柄*/
						pEMACConfig,    /*EMAC的配置*/
						&phEMAC);		/*EMAC的句柄*/
	if(retVal != 0)
	{
		/*初始未成功*/
		return NULL;
	}	
	/*打開定時(shí)器*/
	seeddm642_timer_open();
	IRQ_enable(IRQ_EVT_MACINT);
	return phEMAC;
}

/*----------------------------------------------------------------------------*/
interrupt void netISR()
{
	Emac_Flag = EMAC_serviceCheck(phEMAC);
	if(Emac_Flag == EMAC_ERROR_MACFATAL)
	{
		/*close the EMAC*/
		EMAC_close(phEMAC);
	}
}
/*-----------------------------------------------------------------------------*/
//---------Subroutine definition---------

//Function called from TIMER1 ISR. Just increments the count by
//  one each time it enters this function. Exit from the program
//  after certain count value is reached.
void TimerEventHandler(void)
{
	EMAC_timerTick(phEMAC);
}
//ISR to service TIMERINT1. 
//  vecs_dm642.asm must be modified to include c_int14 entry.
interrupt void c_int14(void)    
{
	TimerEventHandler();
	return;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品激情在线观看| 欧美日韩一区精品| 26uuuu精品一区二区| 狠狠色狠狠色合久久伊人| 日韩欧美一区电影| 国产高清久久久| 亚洲视频你懂的| 欧美日韩中文字幕一区二区| 七七婷婷婷婷精品国产| 国产午夜精品一区二区三区四区| 成人高清免费在线播放| 亚洲人成伊人成综合网小说| 欧美日韩高清在线| 激情小说亚洲一区| 亚洲图片激情小说| 91麻豆精品91久久久久同性| 93久久精品日日躁夜夜躁欧美| 亚洲一区在线电影| 日韩欧美123| 成人的网站免费观看| 一区二区三区中文在线观看| 欧美一区二区三区四区视频| 国产成人亚洲综合a∨婷婷| 亚洲美女视频在线观看| 欧美一区二区黄| 99精品欧美一区二区三区综合在线| 亚洲大片精品永久免费| 久久九九99视频| 欧美日韩一区二区三区在线| 高清在线观看日韩| 五月开心婷婷久久| 中文字幕av一区 二区| 欧美日韩电影在线| 成年人国产精品| 美国毛片一区二区三区| 亚洲免费观看高清在线观看| 2021国产精品久久精品| 欧美无砖砖区免费| 从欧美一区二区三区| 日韩电影一二三区| 亚洲精品视频在线| 国产欧美综合在线| 欧美一区二区视频在线观看2022| 9久草视频在线视频精品| 91麻豆高清视频| 黑人巨大精品欧美黑白配亚洲| 亚洲精品欧美专区| 欧美国产一区二区在线观看| 日韩午夜在线播放| 欧美日韩你懂的| 91丨九色丨国产丨porny| 国产精品自拍在线| 老鸭窝一区二区久久精品| 亚洲国产日韩在线一区模特| 中文无字幕一区二区三区| 精品美女在线观看| 91精品国产综合久久精品性色| 日本道色综合久久| 成人综合婷婷国产精品久久蜜臀 | 久久久亚洲综合| 欧美日韩在线播放| 日本丶国产丶欧美色综合| 成人国产亚洲欧美成人综合网| 国产在线视频不卡二| 热久久免费视频| 日韩精品一级二级| 亚洲 欧美综合在线网络| 亚洲综合色噜噜狠狠| 一级做a爱片久久| 亚洲人成小说网站色在线| 国产精品欧美经典| 国产精品盗摄一区二区三区| 国产精品国产三级国产专播品爱网| 久久久久久久久久看片| 久久理论电影网| 久久这里只精品最新地址| 2019国产精品| 国产日本欧洲亚洲| 国产精品天美传媒沈樵| 国产精品久久久久影院老司| 国产精品久久久久久户外露出| 国产精品美女久久久久久2018| 欧美国产成人精品| 亚洲丝袜自拍清纯另类| 亚洲欧美日韩国产一区二区三区| 国产精品久久久久9999吃药| 成人免费在线播放视频| 亚洲最大的成人av| 亚洲成人动漫av| 久久精品免费观看| 国产乱码字幕精品高清av| 成人在线综合网站| 在线一区二区三区四区五区| 在线观看不卡一区| 91精品国产91热久久久做人人| 精品国产污污免费网站入口 | 欧美三级韩国三级日本三斤 | 日韩一区二区三区在线| 久久午夜羞羞影院免费观看| 久久综合久久久久88| 成人免费视频在线观看| 亚洲国产毛片aaaaa无费看| 奇米精品一区二区三区在线观看一| 黄页视频在线91| 99久久婷婷国产综合精品电影| 欧美亚一区二区| 精品毛片乱码1区2区3区| 国产精品美女视频| 午夜av电影一区| 国产黄色精品视频| 欧美丝袜丝交足nylons| 欧美tk—视频vk| 亚洲色图另类专区| 毛片基地黄久久久久久天堂| 成人一区二区三区在线观看| 欧美日韩国产片| 国产日韩亚洲欧美综合| 亚洲成人黄色小说| 成人久久视频在线观看| 在线观看91av| 亚洲欧洲精品一区二区三区| 麻豆精品新av中文字幕| 99国产精品久久久久久久久久 | 精品国产乱码久久久久久免费| 国产精品不卡一区| 日韩二区三区四区| youjizz久久| 久久婷婷久久一区二区三区| 亚洲资源中文字幕| 岛国一区二区三区| 日韩欧美中文一区二区| 亚洲自拍另类综合| 成人免费电影视频| 欧美mv和日韩mv的网站| 一区二区不卡在线播放| 国产电影精品久久禁18| 日韩一区二区麻豆国产| 一区二区三区免费看视频| 国产激情一区二区三区桃花岛亚洲| 91久久奴性调教| 国产欧美一区二区精品秋霞影院| 丝袜亚洲另类欧美| 在线免费精品视频| 综合色天天鬼久久鬼色| 国产一区二区伦理| 欧美xxxxx牲另类人与| 舔着乳尖日韩一区| 欧美视频一区二区三区在线观看 | 国产精品国产三级国产专播品爱网| 久久精品久久综合| 91精品欧美久久久久久动漫| 一区二区三区产品免费精品久久75 | 亚洲欧美日韩国产成人精品影院| 国产成人精品综合在线观看 | 欧美日韩国产美女| 一二三四区精品视频| gogo大胆日本视频一区| 国产精品无人区| 成人午夜短视频| 国产欧美综合在线观看第十页| 狠狠久久亚洲欧美| 精品三级在线看| 麻豆国产精品777777在线| 91麻豆精品91久久久久久清纯| 婷婷综合在线观看| 欧美老肥妇做.爰bbww视频| 亚洲国产综合91精品麻豆| 欧美中文字幕一二三区视频| 亚洲午夜精品一区二区三区他趣| 日本道精品一区二区三区 | 亚洲成人一区二区| 欧美日韩免费电影| 天天色天天爱天天射综合| 欧美挠脚心视频网站| 日韩电影免费在线看| 日韩欧美国产精品| 国内外成人在线| 欧美激情在线免费观看| aaa国产一区| 亚洲一二三区不卡| 7777精品伊人久久久大香线蕉经典版下载| 亚洲成人动漫精品| 欧美电影精品一区二区| 国产69精品久久久久777| 国产女人水真多18毛片18精品视频| 东方欧美亚洲色图在线| 亚洲免费av观看| 6080日韩午夜伦伦午夜伦| 黄页视频在线91| 国产精品久久久久毛片软件| 在线观看免费成人| 蜜桃av噜噜一区| 中文字幕一区二区三区在线不卡| 91福利小视频| 另类小说色综合网站| 国产日韩欧美不卡| 色av成人天堂桃色av| 日本成人在线一区| 国产欧美日韩久久| 欧美视频一区二区三区四区|