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

📄 at91rm9200_emac.c.bak

📁 一个网卡的应用
💻 BAK
字号:
int eth_init (bd_t * bd) {
	
	int ret;
	int i;

	p_mac = AT91C_BASE_EMAC;

//配置PIO复用

//使能外设时钟
	p_mac->EMAC_CFG |= AT91C_EMAC_CSR;	//清除统计寄存器
//初始化发送帧buffer
//设置地址匹配寄存器的值

	p_mac->EMAC_RSR &= ~(AT91C_EMAC_RSR_OVR | AT91C_EMAC_REC | AT91C_EMAC_BNA);
	p_mac->EMAC_CFG = (p_mac->EMAC_CFG | AT91C_EMAC_CAF | AT91C_EMAC_NBC) & ~AT91C_EMAC_CLK;
	p_mac->EMAC_CFG |= AT91C_EMAC_CLK_HCLK_64;       //EMAC时钟不能超过2.5M
	p_mac->EMAC_CTL |= AT91C_EMAC_TE | AT91C_EMAC_RE;

	at91rm9200_GetPhyInterface (& PhyOps);
	if (!PhyOps.IsPhyConnected (p_mac)) 
		printf ("PHY not connected!!\n\r");
	if (!(p_mac->EMAC_SR & AT91C_EMAC_LINK)) {             //如果没有连接,就执行连接
		if (!(ret = PhyOps.Init (p_mac))) {
			printf ("MAC: error during MII initialization\n");
			return 0;
		}
	} else {
		printf ("No link\n\r");
		return 0;
	}
	return 0;
}

void init_ethernet(void) {
	/* PIO复用 */
	/* 外设时钟 */
	/* 初始化发送帧buffer */
	/* 设置地址匹配寄存器值 */
	
}

⌨️ 快捷键说明

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