上一篇解读了使用STM的标准库,移植不带操作系统版本的LWIP。
这里再梳理一下,带操作系统版本的差异。
main()函数
初始化部分跟之前的基本相同。
不同的是,不需要在主循环里调用LwIP_Periodic_Handle(LocalTime);
LWIP驱动
ethernetif.c要参考
STSW_STM32070_LwIP_TCP_IP_STM32F4x7堆栈示例\STM32F4x7_ETH_LwIP_V1.1.1\Utilities\Third_Party\lwip-1.4.1\port\STM32F4x7\FreeRTOS\ethernetif.c
其中的sys_arch.c主要是适配os提供的一些函数,创建任务,互斥访问等。可以照搬。
工程参考
也可以参考GD的官方例程:
GD32F4xx_Demo_Suites_V2.6.2.rar\GD32F4xx_Demo_Suites_V2.6.2\GD32450I_EVAL_Demo_Suites\Projects\27_ENET\Projects\FreeRTOS_tcpudp