fpga_config.c.svn-base

来自「lwip协议在arm7+uCos系统上的移植」· SVN-BASE 代码 · 共 102 行

SVN-BASE
102
字号
/****************************************************************************
  文件名称:fpga_config.c
  版本号:	1.0
  日期:	2006-5-10
  说明:	包含配置FPGA EP1C12Q2408相关的函数。
  调用列表:--
  修改历史:--
****************************************************************************/
#include "delay.h"
#include "fpga_config.h"
#include "sys_UART.h"


void Fdelay(int t)
{
	int i;
	for(i=0;i<t;i++)
		i = i;
}

int FConfig()
{
	unsigned char *point = (unsigned char*)FPGA_ADD;
	unsigned char temp;
	unsigned i,m,bit_now;
	
	#if URAT_DEBUG == 1
		UART_Printf("IN FConfig.\n");
	#endif
	DCLK1;
	NCONFIG0;
	//OSTimeDly(3);
	Fdelay(662251);
	if(NSTATUS != 0)
	{
		#if UART_DEBUG == 1
			UART_Printf("NSTATUS != 0\n");
		#endif
		
		return(FERROR);
	}
		
	NCONFIG1;
	//OSTimeDly(2);
	Fdelay(662251);
	if(NSTATUS != 1)
	{
		#if UART_DEBUG == 1
			UART_Printf("NSTATUS != 1\n");
		#endif
		return(FERROR);
	}
	
	for(i=0;i<FPGA_LEN;i++)
	{
		temp = *(point+i);
		for(m=0;m<8;m++)
			{	
				DCLK0;
				//Fdelay(FDELAY);	//sdy060728
				if(CONF_DONE != 0)
				{
					#if UART_DEBUG == 1
						UART_Printf("CONF_DONE != 0\n");
					#endif
					
					if(i!=0x46e64 && m!=7) 
						return(FERROR);
				}
				bit_now = temp & 0x1;
				if(bit_now == 1)
					DATA01;
				else
					DATA00;
					
				DCLK1;
				Fdelay(FDELAY);	//sdy060728
				temp = temp >> 1;		
			}
	}
	
	for(i=0;i<136;i++)
	{
		DCLK0;
		Fdelay(FDELAY);
		DCLK1;
		Fdelay(FDELAY);
		if(CONF_DONE != 1)
		{
			#if UART_DEBUG == 1
				UART_Printf("CONF_DONE != 1\n");
			#endif
			
			return(FERROR);
		}	
	}
	
	#if UART_DEBUG == 1
		UART_Printf("FPGA configuration successful\n");
	#endif
	return FOK;
}

⌨️ 快捷键说明

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