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

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

?? rio.c

?? dsp program
?? C
字號(hào):
/********************************************************************************/
/* 本程序用來測(cè)試Xilinx Virtex II Pro系列FPGA MGT通信的性能					    */
/* 本程序在c6416的環(huán)境下運(yùn)行通過,CCS版本2.20.03                                */
/* 版權(quán)所有(c)2004 北京郵電大學(xué) 電信工程學(xué)院   馬健 045498				        */
/********************************************************************************/
#include <std.h>
#include <csl_irq.h>
#include <stdio.h>
#include <csl_irq.h>  
#include "reg1.h"


#define INTERVAL	0x7fffff		/*  FPGA兩次發(fā)送數(shù)據(jù)的時(shí)間間隔              */
#define	TOTAL_TIME	0x10000000		/*  */
#define TX_RAM		0x80000000      /*  發(fā)送RAM的首地址(位于DSP EMIFA的ce0空間) */
#define TX_Ctrl_Reg	0x80040000      /*  FPGA的發(fā)送控制寄存器(位于EMIFA的ce0空間)*/
#define	RX_RAM		0x60000000      /*  接收RAM的首地址(位于DSP EMIFB的ce0空間) */
#define RX_Ctrl_Reg 0x60040000      /*  FPGA的接收控制寄存器(位于EMIFB的ce0空間)*/
#define	BUF_SZ		0x100           /*  進(jìn)行數(shù)據(jù)校驗(yàn)的長(zhǎng)度                      */
#define true		1
#define	false		0
#define	Inc			1
#define	Dec			0

/********************************************************************************/
/*  子函數(shù),中斷函數(shù)聲明                                                         */
/********************************************************************************/
void MGT_Reset();                   /*  MGT復(fù)位子函數(shù)                           */
void MGT_Start();                   /*  MGT開始自程序                           */
void FillData();                    /*  向緩沖區(qū)寫入校驗(yàn)圖樣數(shù)據(jù)子函數(shù)          */
void CompareData();                 /*  校驗(yàn)數(shù)據(jù)子函數(shù)                          */
void PrintResult();                 /*  打印結(jié)果子函數(shù)                          */
void timer0_start();                /*  定時(shí)器開啟子函數(shù)                        */
interrupt void EX5_ISR();           /*  外部中斷5服務(wù)子程序                     */
interrupt void Timer0_ISR();        /*  定時(shí)器中斷服務(wù)子程序                    */

/********************************************************************************/
/*  全局變量定義                                                                */
/********************************************************************************/
int Err_Flag = false, PingPong = Inc, Finish_Flag = true, Start_Flag = true;
int Total_times = 0, Err_times = 0, Errors = 0, int_times = 0;
short Pre_Data[256], Current_Data[256];


void main(void)
{

	int  i;                 /*  main函數(shù)局部變量定義                            */

	IER |= 0x4023;      	/*  中斷使能寄存器配置,打開EXT_INT5以及定時(shí)器中斷  */                            
	CSR |= 0x1;	            /*  打開全局中斷使能                                */

	
	T0CTL = 0x200;
	T0PRD = 0x0FFF;
	
		
	for (i = 0; i <= 0x10000000; i++){  /*  對(duì)FPGA的MGT通信進(jìn)行i次的校驗(yàn)        */
		
		Total_times++;                  /*  總的校驗(yàn)次數(shù),用來計(jì)算錯(cuò)誤概率      */
		
		timer0_start();                 /*  插入一段等待時(shí)間,使MGT更好同步     */

		while(true){                    /*  阻塞,等待MGT通信開始               */		
			if (Start_Flag == false)
				break;		
		}
		
		Start_Flag = true;              /*  建立MGT通信開始阻塞標(biāo)志             */
		
		MGT_Reset();                    /*  MGT復(fù)位                             */

		FillData();                     /*  填充新的數(shù)據(jù)                        */
		
		MGT_Start();                    /*  開啟MGT的通信傳輸                   */
		
		while(true){                    /*  阻塞,等待MGT通信以及數(shù)據(jù)校驗(yàn)完成   */
			if (Finish_Flag == false)
				break;		
		}
		
		Finish_Flag = true;             /*  建立MGT通信完成阻塞標(biāo)志             */		
		
		if( Err_Flag ){                 /*  接收到的數(shù)據(jù)是否存在錯(cuò)誤            */
			Err_Flag = false;
			Err_times++;                /*  記錄總的錯(cuò)誤次數(shù)                    */
			PrintResult();              /*  打印錯(cuò)誤情況,以幫助判斷FPGA問題    */		
		}							
	}		
}

/********************************************************************************/
/*  FPGA的MGT 復(fù)位子函數(shù)                                                        */
/*  通過DSP的EMIFA/B分別控制FPGA MGT的收發(fā)狀態(tài)                                  */
/********************************************************************************/
void MGT_Reset()
{
	//reset MGT_tx
	*(unsigned volatile int *)TX_Ctrl_Reg = 0;
	*(unsigned volatile int *)TX_Ctrl_Reg = 1;
	*(unsigned volatile int *)TX_Ctrl_Reg = 0;
	//reset MGT_rx
	*(unsigned volatile int *)RX_Ctrl_Reg = 0;
	*(unsigned volatile int *)RX_Ctrl_Reg = 1;
	*(unsigned volatile int *)RX_Ctrl_Reg = 0;
}

/********************************************************************************/
/*  填充發(fā)送數(shù)據(jù)子函數(shù)                                                          */
/*  通過DSP的EMIFA給FPGA的發(fā)送緩沖區(qū)交替寫入正序和倒序的數(shù)據(jù)                    */
/*  這樣可以更方便的鑒別是否MGT通信是否存在邊界問題                             */
/********************************************************************************/
void FillData()
{
	int i, j;
	
	if ( PingPong ){	                    /*  給發(fā)送緩充區(qū)填入正序的數(shù)據(jù)      */
		
		i = 0;                              
		
		for (j = 0; j < BUF_SZ; j++){
		    *((unsigned volatile short *)TX_RAM + j) = i++; 
		}
		
		PingPong = Dec;                     /*  修改乒乓開關(guān),下次寫入倒序數(shù)據(jù)  */
	}
	else{	
		
		i = 0xff;                           /*  給發(fā)送緩充區(qū)填入倒序的數(shù)據(jù)      */
		
		
		for (j = 0; j < BUF_SZ; j++){
		    *((unsigned volatile short *)TX_RAM + j) = i--;		    	
		}
		
		PingPong = Inc;                     /*  修改乒乓開關(guān),下次寫入正序數(shù)據(jù)  */
	}
}

/********************************************************************************/
/*  MGT發(fā)送子函數(shù)                                                               */
/*  通過FPGA的MGT控制寄存器開啟,MGT的發(fā)送                                      */
/********************************************************************************/
void MGT_Start()
{
	//start MGT TX
	*(unsigned volatile int *)TX_Ctrl_Reg = 0x0;
	*(unsigned volatile int *)TX_Ctrl_Reg = 0x2;
	*(unsigned volatile int *)TX_Ctrl_Reg = 0x0;
}

/********************************************************************************/
/*  進(jìn)行數(shù)據(jù)比較的子函數(shù)                                                        */
/*  可以得出發(fā)送錯(cuò)誤數(shù)據(jù)的位置以及錯(cuò)誤圖樣                                      */
/********************************************************************************/
void CompareData()
{
	int j;
	short Data_Receive;
	
	Errors = 0;                             /*  子函數(shù)局部錯(cuò)誤個(gè)數(shù)變量清零      */
	
	if (PingPong == Dec ){                  /*  比較倒序數(shù)據(jù)                    */
		
		for ( j = 0; j < BUF_SZ; j++){
			Data_Receive = *((unsigned volatile short *)RX_RAM + j);

			if ( Data_Receive != j ){       /*  發(fā)現(xiàn)錯(cuò)誤                        */
				Current_Data[Errors] = Data_Receive;
				Pre_Data[Errors] = j;       /*  記錄錯(cuò)誤的數(shù)據(jù),即發(fā)生錯(cuò)誤的位置 */

				Err_Flag = true;            /*  建立錯(cuò)誤標(biāo)志,后面打印錯(cuò)誤結(jié)果   */
				Errors++;                   /*  記錄本次錯(cuò)誤個(gè)數(shù)                */

			}	
		}
	}
	else{                                   /*  比較正序數(shù)據(jù)                    */
	
		for ( j = 0; j < BUF_SZ; j++){
			Data_Receive = *((unsigned volatile short *)RX_RAM + j);
			
			if ( Data_Receive != (0xff - j) ){
				Current_Data[Errors] = Data_Receive;
				Pre_Data[Errors] = 0xff - j;/*  發(fā)現(xiàn)錯(cuò)誤                        */

				Err_Flag = true;            /*  建立錯(cuò)誤標(biāo)志,后面打印錯(cuò)誤結(jié)果   */
				Errors++;                   /*  記錄本次錯(cuò)誤個(gè)數(shù)                */
			}			
		}
	}
}	

/********************************************************************************/
/*  外部中斷EXT_INT5的中斷服務(wù)子程序                                            */
/*  根據(jù)需要打印出需要的數(shù)據(jù),以判斷MGT通信的性能                                */
/********************************************************************************/
void PrintResult()
{
	int i, Errors_local;
	printf("Error!!  Total_times = %d        Err_Times = %d \n", Total_times, Err_times);			
			
	Errors_local = Errors;
	
	if ( Errors_local > 10 )
	{
		Errors_local = 10;
	}
	if ( PingPong == Dec )
	{
		printf("Increase:  \n");
		
		for( i = 0; i < Errors_local; i++)
		{
			printf("0x%x:      0x%x  --->  0x%x \n", Pre_Data[i]*2, Pre_Data[i], Current_Data[i]);
		}
		printf("\n");	
	}
	else
	{
		printf("Decrease \n");

		for( i = 0; i < Errors_local; i++)
		{
			printf("0x%x:      0x%x  --->  0x%x \n", (0xff-Pre_Data[i])*2, Pre_Data[i], Current_Data[i]);
		}		
		printf("\n");
	}
	


}	

/********************************************************************************/
/*  定時(shí)器timer0的開啟子函數(shù)                                                    */
/********************************************************************************/
void timer0_start()
{
	T0CTL=0x00000200;
	T0CTL=0x000002c0;
}		

/********************************************************************************/
/*  外部中斷EXT_INT5的中斷服務(wù)子程序                                            */
/*  MGT傳輸已經(jīng)完成,可以開始進(jìn)行數(shù)據(jù)的比較校驗(yàn)                                 */
/********************************************************************************/
interrupt void EX5_ISR()
{
	Finish_Flag = 0;                        /*  清除MGT通信結(jié)束阻塞標(biāo)志         */
	CompareData();                          /*  比較數(shù)據(jù)                        */
}

/********************************************************************************/
/*  定時(shí)器中斷服務(wù)子程序                                                        */
/********************************************************************************/
interrupt void Timer0_ISR()
{
	Start_Flag = 0;                         /*  清除MGT通信開始阻塞標(biāo)志         */
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一个色在线综合| 水野朝阳av一区二区三区| 欧美亚一区二区| 国产电影一区二区三区| 韩国精品在线观看| 亚洲综合一二区| 欧美国产一区在线| 欧美一级淫片007| 日本道在线观看一区二区| 国产精品123区| 蜜桃久久久久久| 亚洲午夜av在线| 国产精品久久久久久久久久免费看| 91精品国产色综合久久| 色偷偷88欧美精品久久久| 国产精品影视在线| 久久精品久久精品| 午夜视黄欧洲亚洲| 亚洲小少妇裸体bbw| 亚洲欧美日韩国产手机在线| 国产色产综合色产在线视频 | 国产夫妻精品视频| 美女免费视频一区二区| 亚洲成年人影院| 亚洲欧美日韩国产手机在线| 中文字幕一区二| 国产欧美精品区一区二区三区| 精品国精品国产| 日韩网站在线看片你懂的| 欧美日韩成人综合| 欧美日韩在线三区| 欧美三级在线看| 欧美日韩精品是欧美日韩精品| 一本色道**综合亚洲精品蜜桃冫| 在线播放一区二区三区| 欧美日韩久久久久久| 欧美亚洲一区二区在线观看| 在线精品亚洲一区二区不卡| 91成人网在线| 欧美视频中文字幕| 欧美日韩国产电影| 欧美日韩精品一区二区三区蜜桃| 欧美日韩情趣电影| 欧美日本国产视频| 欧美精品vⅰdeose4hd| 91精品国产一区二区人妖| 欧美一区二区在线看| 欧美一区二区三区影视| 日韩精品最新网址| 久久影视一区二区| 国产欧美日韩综合精品一区二区| 国产婷婷一区二区| 中文字幕一区二区三区视频| 亚洲综合在线五月| 日韩激情在线观看| 久久精品国内一区二区三区| 国产在线精品一区二区夜色| 福利一区在线观看| 99久久精品一区二区| 欧洲亚洲国产日韩| 欧美日韩激情一区二区| 欧美男生操女生| 久久理论电影网| 国产精品不卡一区| 亚洲国产另类精品专区| 蜜臀av一区二区| 国产成人精品www牛牛影视| 精品欧美一区二区三区精品久久 | 色综合激情五月| 欧美日韩精品免费观看视频| 欧美精品一区二区三区蜜臀| 国产精品天干天干在观线| 亚洲精品菠萝久久久久久久| 欧美aⅴ一区二区三区视频| 国产精品自拍三区| 亚洲少妇最新在线视频| 色狠狠桃花综合| 日本一道高清亚洲日美韩| 一区二区三区在线视频免费| 日韩专区欧美专区| 岛国av在线一区| 欧美日韩电影在线| 亚洲国产成人在线| 午夜精品免费在线观看| 国产一区二区福利| 欧美日韩在线三级| 日本一区二区三区dvd视频在线| 亚洲激情图片qvod| 国产九色精品成人porny | 国产成人亚洲综合a∨婷婷图片 | 2023国产精品| 亚洲一卡二卡三卡四卡| 国产乱码精品一区二区三区五月婷| 91久久线看在观草草青青| 欧美精品一区二区久久久| 亚洲国产成人tv| 在线播放欧美女士性生活| 久久久蜜臀国产一区二区| 五月天激情综合网| 99久久777色| 亚洲精品一区二区三区四区高清 | 91麻豆精品91久久久久久清纯| 日本一区二区不卡视频| 久热成人在线视频| 欧美在线你懂得| 中文字幕欧美日本乱码一线二线| 日韩电影在线一区二区| 91久久久免费一区二区| 国产精品视频一二| 精品一二线国产| 91精品在线免费| 一片黄亚洲嫩模| 成人国产电影网| 国产日韩欧美亚洲| 久久99热这里只有精品| 7777女厕盗摄久久久| 亚洲人精品午夜| 波多野洁衣一区| 日本一区二区久久| 国产精品18久久久久久久久| 日韩欧美中文字幕精品| 日韩精品久久理论片| 欧美色爱综合网| 亚洲一区二区精品视频| 欧美综合一区二区| 亚洲三级久久久| 99re免费视频精品全部| 中文字幕一区二区三区乱码在线| 国产一区二区毛片| 久久久久97国产精华液好用吗| 另类综合日韩欧美亚洲| 日韩一区二区精品葵司在线 | 99精品视频中文字幕| 国产精品美女久久久久av爽李琼| 国产成人精品三级麻豆| 国产三级欧美三级日产三级99| 久久91精品国产91久久小草| 日韩欧美亚洲国产精品字幕久久久| 亚洲va欧美va天堂v国产综合| 91福利区一区二区三区| 亚洲一区视频在线| 欧美日韩精品免费| 视频在线观看国产精品| 日韩三级视频中文字幕| 久久成人麻豆午夜电影| 精品国内片67194| 国产精品99久久久| 欧美高清在线一区| 91麻豆精品秘密| 亚洲一区二区三区四区的| 欧美色精品在线视频| 日韩电影在线免费观看| 精品福利一区二区三区免费视频| 精品无人区卡一卡二卡三乱码免费卡 | 色诱亚洲精品久久久久久| 亚洲在线免费播放| 日韩欧美一区二区免费| 国模冰冰炮一区二区| 国产欧美一区二区三区网站| 成人网页在线观看| 一区二区三区高清在线| 欧美视频一区二区三区四区| 裸体健美xxxx欧美裸体表演| 国产亚洲精品aa| 在线观看网站黄不卡| 免费观看成人av| 中文字幕乱码亚洲精品一区| 欧洲视频一区二区| 久久精品国产精品青草| 国产精品久久久久久久久免费丝袜 | 福利电影一区二区| 一二三区精品福利视频| 欧美精品一区二区三区在线 | 国产精品久久久久久久岛一牛影视 | 免费观看久久久4p| 国产精品久久看| 在线播放中文字幕一区| 国产精品99久久不卡二区| 一二三四社区欧美黄| 久久久噜噜噜久噜久久综合| 欧美亚洲动漫精品| 国产麻豆精品一区二区| 亚洲一本大道在线| 久久尤物电影视频在线观看| 色哟哟日韩精品| 精品午夜久久福利影院| 亚洲一区二区三区四区在线免费观看 | 丁香激情综合国产| 日韩黄色小视频| 国产精品青草综合久久久久99| 91精品久久久久久蜜臀| 99re热这里只有精品视频| 看片网站欧美日韩| 亚洲国产视频直播| 国产日韩欧美一区二区三区乱码 | 国产欧美日韩在线视频| 欧美精品久久久久久久多人混战 | 国产午夜亚洲精品不卡| 制服丝袜成人动漫| 91亚洲大成网污www|