📄 lwipentry.c
字号:
//*------------------------------------------------------------------------------------------------
//* 文件名 : LwIPEntry.c
//* 功能描述 : LwIP入口函数库
//* 作者 : 焦海波
//* 版本 : 0.1
//* 建立日期、时间 : 2007/06/24
//* 修改日期、时间 :
//* 修改原因 :
//*------------------------------------------------------------------------------------------------
//*------------------------------------------ 头文件 ----------------------------------------------
#include "/uCOS-II/ucos_ii.h"
#include "/LwIP/include/lwip/netif.h"
#include "/LwIP/include/lwip/tcpip.h"
//*------------------------------------ 变量、数据类型宏定义 --------------------------------------
//* IP地址
#define IP_ADDR_0 192
#define IP_ADDR_1 168
#define IP_ADDR_2 10
#define IP_ADDR_3 72
//* 网关地址
#define GATEWAY_ADDR_0 192
#define GATEWAY_ADDR_1 168
#define GATEWAY_ADDR_2 10
#define GATEWAY_ADDR_3 1
//* 掩码地址
#define NET_MASK_0 255
#define NET_MASK_1 255
#define NET_MASK_2 255
#define NET_MASK_3 0
//*================================================================================================
//* 函 数 区
//*================================================================================================
//*------------------------------------------------------------------------------------------------
//* 函数名称 : __ilvInitLwIP
//* 功能描述 : 完成LwIP最基本的初始化工作
//* 入口参数 : 无
//* 出口参数 : 无
//*------------------------------------------------------------------------------------------------
__inline void __ilvInitLwIP(void)
{
sys_init();
mem_init();
memp_init();
pbuf_init();
tcpip_init(NULL, NULL);
}
//*------------------------------------------------------------------------------------------------
//* 函数名称 : __ilvSetLwIP
//* 功能描述 : 设置LwIP,包括添加配置网络接口、建立接收任务等工作
//* 入口参数 : 无
//* 出口参数 : 无
//*------------------------------------------------------------------------------------------------
__inline void __ilvSetLwIP(void)
{
extern err_t ethernetif_init(struct netif *stNetif);
struct ip_addr __stIpAddr, __stNetMask, __stGateway;
static struct netif __stEMACNetif;
//* 初始化缺省网络接口(即习惯意义上的网卡)及网络接口链表(即netif结构体链表),根据
//* 函数说明,它必须率先被调用
netif_init();
//* 建立并配置EMAC接口
IP4_ADDR(&__stIpAddr, IP_ADDR_0, IP_ADDR_1, IP_ADDR_2, IP_ADDR_3);
IP4_ADDR(&__stNetMask, NET_MASK_0, NET_MASK_1, NET_MASK_2, NET_MASK_3);
IP4_ADDR(&__stGateway, GATEWAY_ADDR_0, GATEWAY_ADDR_1, GATEWAY_ADDR_2, GATEWAY_ADDR_3);
netif_add(&__stEMACNetif, &__stIpAddr, &__stNetMask, &__stGateway, NULL, ethernetif_init, tcpip_input);
netif_set_default(&__stEMACNetif);
netif_set_up(&__stEMACNetif);
}
//*------------------------------------------------------------------------------------------------
//* 函数名称 : T_LwIPEntry
//* 功能描述 : LwIP入口函数
//* 入口参数 : <pvArg>[in/out] 保留参数
//* 出口参数 : 无
//*------------------------------------------------------------------------------------------------
void T_LwIPEntry(void * pvArg)
{
//* 初始化LwIP
__ilvInitLwIP();
//* 设置LwIP,包括添加配置网络接口、建立接收任务等工作
__ilvSetLwIP();
/*
在这里建立LwIP的应用,比如可以建立一个TCP服务器等待接收客户端的连接请求并作出响应
…………
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -