void eth_link_detect(struct netif *netif) { u32_t link_speed, phy_link_status; struct xemac_s *xemac = (struct xemac_s *)(netif->state); #if defined(XLWIP_CONFIG_INCLUDE_GEM) xemacpsif_s *xemacs = (xemacpsif_s *)(xemac->state); XEmacPs *xemacp = &xemacs->emacps; #elif...
(eth_link_status == ETH_LINK_UNDEFINED)) return; phy_link_status = phy_link_detect(xemacp, phyaddrforemac); net0_link_state = phy_link_status; if ((eth_link_status == ETH_LINK_UP) && (!phy_link_status)) eth_link_status = ETH_LINK_DOWN; switch (eth_link_status) { case ETH_...
(eth_link_status == ETH_LINK_UNDEFINED)) return; phy_link_status = phy_link_detect(xemacp, phyaddrforemac); if ((eth_link_status == ETH_LINK_UP) && (!phy_link_status)) eth_link_status = ETH_LINK_DOWN; switch (eth_link_status) { case ETH_LINK_UNDEFINED: case ETH_LINK_UP: re...
43.5. 以太网外设(ETH) STM32F4xx系列控制器内部集成了一个以太网外设,它实际是一个通过DMA控制器进行介质访问控制(MAC),它的功能就是实现MAC层的任务。借助以太网外设,STM32F4xx控制器可以通过ETH外设按照IEEE 802.3-2002标准发送和接收MAC数据包。ETH内部自带专用的DMA控制器用于MAC, ETH支持两个工业标准接口...
== ETH_LINK_DETECT_INTERVAL) { eth_link_detect(echo_netif);DetectEthLinkStatus = 0;} */ ...
void eth_link_detect(struct netif *netif) { u32_t link_speed, phy_link_status; struct xemac_s *xemac = (struct xemac_s *)(netif->state); #if defined(XLWIP_CONFIG_INCLUDE_GEM) xemacpsif_s *xemacs = (xemacpsif_s *)(xemac->state); ...
DetectEthLinkStatus =0; }timer_clear_interrupt(TimerInstance); }staticintsetup_timer_interrupts(void){//关联 TTC 中断处理函数status =XScuGic_Connect(&intc, TTC_INTR_ID, (Xil_ExceptionHandler)timer_callback, (void*)&TimerInstance);if(status != XST_SUCCESS) {xil_printf("In %s: setup_timer...
先通过我们上面对 ARP 功能的描述,先猜测一下应该需要什么功能:发送数据时,根据 ARP 表填充 ETH 帧...
ETH_AutoNegotiation:自适应功能选择,可选使能或禁止,一般选择使能自适应功能,系统会自动寻找最优工作方式,包括选择10Mbps或者100Mbps的以太网速度以及全双工模式或半双工模式。 ETH_Watchdog:以太网看门狗功能选择,可选使能或禁止,它设定以太网MAC配置寄存器(ETH_MACCR)的WD位的值。如果设置为1,使能看门狗,...
Eth_Link_ITHandler执行中检测到网线拔插时分别调用netif_set_link_up(netif)、netif_set_link_down(...