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

📄 main.c

📁 一个测试你网卡dm9000好坏的测试程序 很好用 已经通过本人调试
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzhou ZHIYUAN electronics Co.,LTD.
**                                     
**                                 http://www.zyinside.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name: main.c
** Last modified Date: 
** Last Version: 
** Description: 
**
**------------------------------------------------------------------------------------------------------
** Created By: 
** Created date: 
** Version: 
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Description:
**
********************************************************************************************************/
#include  "config.h"



#define DM9000_VIDL            0x28
#define DM9000_VIDH            0x29
#define DM9000_PIDL            0x2A
#define DM9000_PIDH            0x2B

#define DM9000_ID		0x90000A46
#define CONFIG_DM9000_BASE      0x18000300 


#define DM9000_IO         0x18000300                   //命令端口
#define DM9000_DATA       0x18000304                   //数据端口
#define DM9000_outb(d,r)              ( *(volatile uint8 *)r = d )
#define DM9000_inb(r)                 (*(volatile uint8 *)r)





/*********************************************************************************************************
** Function name: DelayNS
** Descriptions: 长软件延时。
**              延时时间与系统时钟有关。
** Input: dly	延时参数,值越大,延时越久
** Output: 无
** Created by: 黄绍斌
** Created Date: 2005-12-31 
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void  DelayNS(uint32  dly)
{  
	uint32  i;

   	for(; dly>0; dly--) 
       for(i=0; i<50000; i++);
}



/*Read a byte from I/O port*/
uint8 DM9000_ior(int reg)
{
	DM9000_outb(reg,DM9000_IO);
	return DM9000_inb(DM9000_DATA);
}

/*Write a byte to I/O port*/
void DM9000_iow(int reg, uint8 value)
{
	DM9000_outb(reg, DM9000_IO);
	DM9000_outb(value, DM9000_DATA);
}

void dm9000_reset(void)
{
	Uart_Printf("resetting\n");
	
	rGPGCON = (rGPGCON & (~(3<<4))) | (1<<4);
	
	//DelayNS(1000);		/* delay 1ms */
	
	DM9000_iow(0,0x01);  //软件复位
	DelayNS(10);		/* delay 1ms */
}





int dm9000_probe(void)
{
	uint32 id_val;
	id_val =  DM9000_ior(DM9000_VIDL);
	id_val |= DM9000_ior(DM9000_VIDH) << 8;
	id_val |= DM9000_ior(DM9000_PIDL) << 16;
	id_val |= DM9000_ior(DM9000_PIDH) << 24;
	if (id_val == DM9000_ID) 
	{
		Uart_Printf("dm9000 i/o: 0x%x, id: 0x%x \n", CONFIG_DM9000_BASE,
		       id_val);
		return 0;
	}
	else 
	{
		Uart_Printf("dm9000 not found at 0x%08x id: 0x%08x\n",
		       CONFIG_DM9000_BASE, id_val);
		return -1;
	}
}



/*********************************************************************************************************
** Function name: main
** Descriptions: 主函数,程序入口。            
** Input: 无
** Output: 系统返回值0
** Created by: 黄绍斌
** Created Date: 2005-12-31 
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
int  main(void)
{		
	UART_Select(0);
	UART_Init();	

    dm9000_reset();
    
    dm9000_probe();
    
	
    
	while(1);



   	return(0);
}

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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