淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 开源电子网 公众平台:“正点原子” 官方网站:www.alientek.com 联系电话:13922348612 ddddd ALIENTEK 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 《手把手教你学STM32》 F4开发板LWIP移植文件讲解 适用平台 STM32F1xx 开发板 (正点原子) STM32F4xx 开发板 (正点原子) ddddd 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 本视频重点参考资料 参考资料: 1,探索者STM32F407开发板 《STM32F4 LWIP开发手册》——LWIP无操作系统移植 2,以太网参考资料 《STM32F4xx中文参考手册》-第29章 以太网(ETH) 3,LWIP参考资料 《嵌入式网络那些事LWIP协议深度剖析与实战演练》 作者:朱升林 4,LAN8720参考资料 见光盘:硬件资料芯片资料 ① LAN820A.pdf 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 目录 LAN8720驱动 1 网卡驱动驱动 2 LWIP通用文件 3 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 1、LAN8720驱动程序 看LAN8720驱动程序之前需要先了解ST以太网驱动库中几个全局变量,如下图: 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 1、LAN8720驱动程序 lan8720.c和lan8720.h为LAN8720的驱动文件,一共有10个函数: 函数 描述 LAN8720_Init() LAN8720初始化函数 ETHERNET_NVICConfiguration() 以太网DMA中断优先级配置 LAN8720_Get_Speed() 获取当前连接速度和双工状态 ETH_MACDMA_Config() 以太网MAC和DMA配置函数 ETH_IRQHandler() 以太网DMA接收中断服务函数 ETH_Rx_Packet() 从网卡中接收数据包 ETH_Tx_Packet() 从网卡中发送数据包 ETH_GetCurrentTxBuffer() 得到当前描述符的发送缓冲区地址 ETH_Mem_Malloc() 申请内存 ETH_Mem_Free() 释放内存 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 2、网卡驱动 LAN8720驱动写完以后我们还需要编写ethernetif.c文件。LWIP作者提供了一个ethernetif.c文件架构,我们需要根据实际使用的网络芯片来完善这些函数。 函数 描述 low_level_init() 网卡初始化函数 low_level_output() 网卡数据包发送函数 low_level_input() 网卡数据包接收函数 ethernetif_input() 调用low_level_input()发送数据 eternetif_init() 调用low_level_init()初始化网卡,并且初始化网络结构netif。 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 3、LWIP通用文件 lwip.c文件下面有 函数 描述 lwip_comm_mem_malloc() 内存申请 lwip_comm_mem_free() 内存释放 lwip_comm_default_ip_set() 默认地址设置 lwip_comm_init() LWIP初始化函数 lwip_pkt_handle() 接收数据处理函数 lwip_periodic_handle() LWIP轮询函数 lwip_dhcp_process_handle() DHCP处理函数 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 谢谢您对“正点原子”团队的支持 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com