以太网描述符ETH_DMATxDesc_OWN异常 2022-07-07 0 基于DWC_ether_qos的以太网驱动开发-数据流验证过程 2023-08-31 2382 基于DWC_ether_qos的以太网驱动开发-包过滤 2023-09-02 2138 基于DWC_ether_qos的以太网驱动开发-RTOS环境移植LWIP与性能测试 2023-09-11 2514 基于DWC_ether_qos的以太网驱动开发...
int iot_eth_receive_handle(eth_ctrl_t *p_ctrl,eth_rcv_data_pf cb) 接收由于要处理包数据所以花费时间比较大,一般不在中断中处理数据,也就是不在中断中调用iot_eth_receive_handle,而是查询方式调用iot_eth_receive_handle,或者接收IOC中断时中断中发送信号量或者设置标志,主线程主循环中接收信号量或标志才调...
228 236 config DWC_ETH_QOS_STM32 229 237 bool "Synopsys DWC Ethernet QOS device support for STM32" 230 238 depends on DWC_ETH_QOS drivers/net/Makefile +1 Original file line numberDiff line numberDiff line change @@ -20,6 +20,7 @@ obj-$(CONFIG_DRIVER_DM9000) += dm9000x...
12 changes: 6 additions & 6 deletions 12 drivers/net/dwc_eth_qos.c Original file line numberDiff line numberDiff line change @@ -621,7 +621,7 @@ static int eqos_start_clks_stm32(struct udevice *dev) return ret; } void eqos_stop_clks_tegra186(struct udevice *dev) static void ...
根据索引查找地址etharp_get_entry 直接根据ARP表索引返回对应的表项信息 超时处理 对于ARP表项,需要有一个有效时间,如果长时间未有对应的ARP包或者IP包则需要释放表项。 etharp_tmr 定时器前面已经介绍过,etharp_tmr会以默认1S的间隔调用。 遍历所有表项 如果某个表项超过ARP_MAXAGE(默认300S)没有更新时,...
我们参考lwip\contrib\ports\freertos下的移植进行修改,如果使用的是freertos的话直接参考即可。如果用的其他RTOS可以复制一份修改。 复制lwip\contrib\ports\freertos并添加cc.h和lwipopts.h(这两个文件可以从contrib下其他样例代码中复制) Cc.h 还是和无OS一样实现随机数函数 ...
data = (ulong)&eqos_tegra186_config 2025 }, 2026#endif 2027#if IS_ENABLED(CONFIG_DWC_ETH_QOS_STM32) 2028 { 2029 .compatible = "st,stm32mp1-dwmac", 2030 .data = (ulong)&eqos_stm32_config 2031 }, 2032#endif 2033#if IS_ENABLED(CONFIG_DWC_ETH_QOS_IMX) 2034 { 2035 .compatible ...
staticstruct etharp_entry arp_table[ARP_TABLE_SIZE]; 其中使能ARP_QUEUEING则表示如果当前还不知道IP对应的MAC地址,可以先暂时挂起待发送的包,按照队列挂起,如果未配置则只能挂起一个待发送的包。 ctime维护一个软定时器,arp定时器回调时增加1,增加到一定值释放表项。
基于DWC_ether_qos的以太网驱动开发-RTOS环境移植LWIP与性能测试 (qq.com)https://mp.weixin.qq.com/s/E80GdN3RzrG3NeXfdwi4_Q一.前言前面我们基于无OS环境移植了LWIP,这一篇我们来基于RTOS移植LWIP,与无OS环境基本一致,只是需要实现一些系统组件的接口,信号量互斥量等。
/* eth init function : weak called in eqos driver */ int board_interface_eth_init(struct udevice *dev, phy_interface_t interface_type) { u8 *syscfg; u32 value; bool eth_clk_sel_reg = false; bool eth_ref_clk_sel_reg = false; /* Gigabit Ethernet 125MHz clock selection. */ eth_...