LWIP network interface 网卡 初始化 以 STM32 为例子 后面会有 用 2G 或者4G 模块 用 PPP拨号的 形式 虚拟出网卡 所以先以 这个为 前提

摘要:
LWIP网络接口网卡的初始化以STM32为例。随后,2G或4G模块将用于以PPP拨号的形式虚拟出网卡。首先,以这为前提。LWIP具有描述物理接口的结构,即netifStruct。朱师傅对此有详细解释:http://blog.csdn.net/zhzht19861011/article/details/6690534LWIP官方网站也详细描述了这种结构:http:/

LWIP   network interface   网卡 初始化    以  STM32  为例子  后面会有 用  2G 或者4G 模块 用 PPP拨号的 形式  虚拟出网卡  所以先以 这个为  前提 

LWIP   有 一个 结构体 是 描述 物理 接口 的  即  netif Struct, 大神朱工 对这个 有个 详细的 解释 :http://blog.csdn.net/zhzht19861011/article/details/6690534

LWIP  官网  对 这个  结构体 也有 详细 的 描述  :http://www.nongnu.org/lwip/2_0_x/structnetif.html

LWIP network interface 网卡 初始化 以 STM32 为例子 后面会有 用 2G 或者4G 模块 用 PPP拨号的 形式 虚拟出网卡 所以先以 这个为 前提第1张

我 使用 的 代码 是  ST  官方 提供   的 演示例程 , 可以在 这里下载到  STM32F407 + DP83848

工程 打开路径  : C:UsersadminDesktopSTM32F4x7_ETH_LwIP_V1.1.0ProjectFreeRTOSudptcp_echo_server_netconnMDK-ARM

看看 ST  是怎么 定义 一个 网卡 变量   并 初始化的 

首先看 定义 的 地方  :

 LWIP network interface 网卡 初始化 以 STM32 为例子 后面会有 用 2G 或者4G 模块 用 PPP拨号的 形式 虚拟出网卡 所以先以 这个为 前提第2张

然后  看看    对 这个变量  怎么 初始化 的  。。

/* - netif_add(struct netif *netif, struct ip_addr *ipaddr,
struct ip_addr *netmask, struct ip_addr *gw,
void *state, err_t (* init)(struct netif *netif),
err_t (* input)(struct pbuf *p, struct netif *netif))

Adds your network interface to the netif_list. Allocate a struct
netif and pass a pointer to this structure as the first argument.
Give pointers to cleared ip_addr structures when using DHCP,
or fill them with sane numbers otherwise. The state pointer may be NULL.

The init function pointer must point to a initialization function for
your ethernet netif interface. The following code illustrates it's use.*/
netif_add(&xnetif, &ipaddr, &netmask, &gw, NULL, &ethernetif_init, &tcpip_input);

使用  了     netif_add(&xnetif, &ipaddr, &netmask, &gw, NULL, &ethernetif_init, &tcpip_input); 这个 函数  对 这个 网卡 进行 了 初始化  。

这个 函数 是   LWIP   提供的  函数  ,我们 看一下 官方 的 解释 :http://www.nongnu.org/lwip/2_0_x/group__netif.html#gade5498543e74067f28cc6bef0209e3be

 LWIP network interface 网卡 初始化 以 STM32 为例子 后面会有 用 2G 或者4G 模块 用 PPP拨号的 形式 虚拟出网卡 所以先以 这个为 前提第3张

第一步 : 我 们 需要 先 定义 一个 netif Struct  类型 的变量 

免责声明:文章转载自《LWIP network interface 网卡 初始化 以 STM32 为例子 后面会有 用 2G 或者4G 模块 用 PPP拨号的 形式 虚拟出网卡 所以先以 这个为 前提》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle 12c的下载Mac使用brew安装nginx,并解决端口访问权限问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux目录文件与系统启动(2)/etc系统初始化及设置相关重要文件

网卡配置文件 路径:/etc/sysconfig/network-scripts/ifcfg-ens33 ens33是你的网卡名称 图形化网络配置方式:nmtui 命令行网络配置方式:vi /etc/sysconfig/network-scripts/ifcfg-ens33 DNS配置文件:/etc/resolv.conf,基本废弃,由网卡设置里的DN...

servlet两种配置方法详解

1、web.xml中Servlet的注解 1 <servlet> 2 <!--servlet的内部名称,自定义 --> 3 <servlet-name>DemoAction</servlet-name> 4 <!--servlet的类全名:包名+类...

Yii2基本概念之——配置(Configurations)

在Yii中创建新对象或者初始化已经存在的对象广泛的使用配置,配置通常包含被创建对象的类名和一组将要赋值给对象的属性的初始值,这里的属性是Yii2的属性。还可以在对象的事件上绑定事件处理器,或者将行为附加到对象上。从而在定义了对象的初始值的同时,充分规定对象的运行时的动态特性。 以下代码中的配置被用来创建并初始化一个数据库连接: $config = [...

UEditor的使用

UEditor 是目前项目正在使用的富文本编辑器。 基本知识 ———————————————————————————————————— 1.依赖:不依赖任何第三方库,可单独使用 2.使用: (1)文件管理:为简化管理开发,建议将UEditor单独放在一个文件夹内,不建议重新组织文件结构(可删除example、src等文件夹) (2)引入及初始化:需要引入c...

NetBus —— 让你的 App 内部随处感知网络的变化

简介 NetBus 是一个实时监听网络状态的一个框架,接入简单。只需要几步就可以在 Activity 和 Fragment 以及其他要观测的类中很方便的收到网络状态变化的通知。 愿景 可以在 App 任意位置监听网络的变化  同一类中监听不同类型的网络 监听者可以指定不同的网络环境 布局封装,简化布局状态切换 使用 1. 添加依赖 implementa...

LwIP协议栈(2):网络接口

  在LwIP中,物理网络硬件接口结构保存在一个全局链表中,它们通过结构体中的 next 指针连接。 struct netif { /// pointer to next in linked list */ struct netif *next; /// IP address configuration in network byte o...