OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3565|回复: 5

LWIP方面知识求解,恳请大神指教

[复制链接]

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
发表于 2015-11-4 17:12:25 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]err_t ethernetif_input(struct netif *netif) { err_t err; struct pbuf *p; p=low_level_input(netif); if(p==NULL) return ERR_MEM; err=netif->input(p, netif); /*这个input函数的原型是在那里啊?我找不到啊,恳请大神指教*/ if(err!=ERR_OK) { LWIP_DEBUGF(NETIF_DEBUG,("ethernetif_input: IP input error\n")); pbuf_free(p); p = NULL; } return err; } [/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

看函数调用函数netif_add()时会指定input()的,如果不带操作系统的话就是ethernet_input(),带操作系统的话就是tcpip_input()
电子爱好者
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-11-4 17:12:26 | 显示全部楼层
看函数调用函数netif_add()时会指定input()的,如果不带操作系统的话就是ethernet_input(),带操作系统的话就是tcpip_input()
开往春天的手扶拖拉机
回复

使用道具 举报

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
 楼主| 发表于 2015-11-4 21:51:57 | 显示全部楼层
回复【2楼】zuozhongkai:
---------------------------------
大神:这里是针对不带系统的情况
为什么这里的input()是ethernet_input()啊,从哪里看出来的?恳请大神指教
电子爱好者
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-11-5 10:11:52 | 显示全部楼层
用哪个函数是你自己代码写得!在移植LWIP的时候会调用netif_add()函数来向网卡列表添加一个网卡信息,这个函数的最后一个参数就是设置netif->input()函数的。
开往春天的手扶拖拉机
回复

使用道具 举报

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
 楼主| 发表于 2015-11-5 10:38:54 | 显示全部楼层
[mw_shl_code=c,true]struct netif * netif_add(struct netif *netif, ip_addr_t *ipaddr, ip_addr_t *netmask, ip_addr_t *gw, void *state, netif_init_fn init, netif_input_fn input) {[/mw_shl_code] [mw_shl_code=c,true]部分代码省略了~~~ /* remember netif specific state information data */ netif->state = state; netif->num = netif_num++; netif->input = input; [/mw_shl_code] [mw_shl_code=c,true] [mw_shl_code=c,true]/* 大神,这里使用的是input,按照小弟的理解,这里应该是赋值ethernet_input()啊,恳请大神指教 */[/mw_shl_code]
[/mw_shl_code]
电子爱好者
回复

使用道具 举报

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
 楼主| 发表于 2015-11-5 10:43:16 | 显示全部楼层

struct netif * [mw_shl_code=c,true]netif_add(struct netif *netif, ip_addr_t *ipaddr, ip_addr_t *netmask, ip_addr_t *gw, void *state, netif_init_fn init, netif_input_fn input) {[/mw_shl_code] [mw_shl_code=c,true]部分代码省略了~~~ /* remember netif specific state information data */ netif->state = state; netif->num = netif_num++; netif->input = input;/* 大神,这里使用的是input,按照小弟的理解,这里应该是赋值ethernet_input()啊,恳请大神指教 */[/mw_shl_code]
电子爱好者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 19:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表