UCOS+LWIP启动流程分析记录
正点原子F429 网络实验源码功能分析。初始化流程如下,
lwip_comm_init(void)
lwip_comm_default_ip_set(&lwipdev);
设置MAC信息变量和IP信息的变量。
LAN8720_Init();
初始化网卡相关GPIO,
HAL_ETH_Init(Ð_Handler);
ETH_Handler网络控制器外设初始化。
ETH_Mem_Malloc();
DMA网络描述符内存申请,发送接收缓冲区内存申请。
lwip_comm_mem_malloc();
lwip中mem和memp的内存申请。
netif_add();
设置网络相关信息 ip地址、网络掩码、网关、网卡接口初始化。
ethernetif_init(struct netif *netif)
ow_level_init(netif); //底层硬件初始化函数
DMA网络描述符初始化,开启MAC和DMA。
netif_set_default(&lwip_netif); //设置netif为默认网口
设置默认网卡的指针变量。
netif_set_up(&lwip_netif);
设置网卡标志位,为启用NETIF_FLAG_UP。
tcp server实验应用层源码分析,UCOS创建tcp任务
netconn_new(NETCONN_TCP); //创建一个TCP链接
netconn_bind(conn,IP_ADDR_ANY,TCP_SERVER_PORT); //绑定端口 8号端口
netconn_listen(conn); //进入监听模式
err = netconn_accept(conn,&newconn); //接收连接请求