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

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

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

工程 打开路径  : C:\Users\admin\Desktop\STM32F4x7_ETH_LwIP_V1.1.0\Project\FreeRTOS\udptcp_echo_server_netconn\MDK-ARM

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

首先看 定义 的 地方  :

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

/* - 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

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

时间: 2024-10-10 08:03:29

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

CENTOS 7 udev:renamed network interface eth0 to eth1 eno16777736

将这个/etc/udev/rules.d/70-persistent-net.rules删除,重启,网卡eth0成功启动,并重新生成/etc/udev/rules.d/70-persistent-net.rules文件. [[email protected] rules.d]# cat 70-persistent-ipoib.rules # This is a sample udev rules file that demonstrates how to get udev to # set th

更换oracle 集群网卡(Changing a Network Interface)

 更换oracle 集群网卡(Changing a Network Interface) 如果换网卡前后 网卡名,ip,网关,子网掩码都不变的话,集群层面不许要做额外的操作! 一下操作为更换网卡后使用新的网卡名 1.确保所有集群节点都是active 的 olsnodes -s [[email protected] ~]$ olsnodes -s vmrac1  Active vmrac2  Active 2.确保新的替换网卡已经配置在服务器上 $ /sbin/ifconfig.. 3.将新网

Linux-debian系统 /etc/network/interface 文件解读

原文 http://wiki.slimdevices.com/index.php/SqueezeOS_networking 话说Debian系的网卡配置跟Redhat系很不一样,Redhat是放在/etc/sysconfig/network-scripts目录下面的一大堆文件里面,要修改?你一个一个文件来过吧.Debian系的则是存在/etc/network/interfaces文件里面,无论有多少块网卡,统统扔在这个文件里.下面就来看一下这个文件的内容. 首先,一个基本的配置大概是下面这个样子

openwrt network interface(openwrt中的网络接口)

这篇算是对openwrt网络接口的一个翻译吧,源地址:http://wiki.openwrt.org/doc/networking/network.interfaces network的接口类型:物理网络接口和虚拟网络接口 物理网络接口就是我们经常看到的eth0,radio0,wlan9等等,这些就代表一个实际的网络硬件设备,如Network interface controller,Wireless network interface controller和各种Modem设备.只要当这些设备的

PatentTips - Method for network interface sharing among multiple virtual machines

BACKGROUND Many computing systems include a network interface card (NIC) to provide for communications with other systems and devices over a network. In a computing system running multiple operating systems (OSs) on multiple virtual machines, each OS

[INS-41112] Specified network interface doesnt maintain connectivi

OS: Oracle Linux Server release 6.3 DB: Oracle 11.2.0.3 安装11.2.0.3.0的RAC,在安装GRID时报错: [INS-41112] Specified network interface doesnt maintain connectivity across cluster 1.首先检查各节点/etc/hosts,发现没问题 2.setup安装成功,但是ssh验证,需要确认 3.检查发现是没有关闭防火墙 (配置RAC一定要仔细)

DPDK收发包处理流程-----(一)网卡初始化

本文基于DPDK-1.8.0分析. 网卡驱动模型一般包含三层,即,PCI总线设备.网卡设备以及网卡设备的私有数据结构,即将设备的共性一层层的抽象,PCI总线设备包含网卡设备,网卡设备又包含其私有数据结构.在DPDK中,首先会注册设备驱动,然后查找当前系统有哪些PCI设备,并通过PCI_ID为PCI设备找到对应的驱动,最后调用驱动初始化设备. 一.网卡驱动注册 以e1000网卡驱动为例说明. 在1.8.0版本中,网卡驱动的注册使用了一种奇技淫巧的方法,使用GCC attribute扩展属性的con

Oracle Grid 11.2.0.4 安装是出现“[INS-41112] Specified network interface doesnt maintain connectivity across cluster”错误

安装Oracle 11.2.0.4 的RAC,在Grid 安装时报错: [INS-41112]Specified network interface doesnt maintain connectivity across cluster nodes 首先尝试在节点间ping 各个IP 地址没有问题. 因为使用安装程序做的SSH 验证,所以尝试测试ssh远程连接是否还需要确认: [[email protected] ~]$ ssh vdb1 date # 验证vdb1 ssh Thu Aug 7

用镜像建立虚拟机时网卡无法启动并获得IP

一般建立的虚拟机都有/etc/udev/rules.d/70-persistent-net.rules这个目录,这个文件绑定了网卡和mac地址,所以新建机器是换了网卡后,mac地址就变了,所以网卡无法启动,如果要解决这个问题,需要把这个目录删除. (1).vi/etc/sysconfig/network-scripts/ifcfg-eth0这个文件,把以前的mac地址删除 (2).rm –rf  /etc/udev/rules.d/70-persistent-net.rules删除这个目录: 用