OpenEdv-开源电子网

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

教程源码 设置打开LWIP_IGMP = 1时,报错

[复制链接]

9

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2015-9-25
在线时间
3 小时
发表于 2015-10-8 16:33:30 | 显示全部楼层 |阅读模式
5金钱
原子哥,才买了两块开发板,带网口的那种,用了教程里面实验50 网络通信实验

opt.h里面设置
#ifndef LWIP_IGMP
#define LWIP_IGMP                      1
#endif

报错 #error "MEMP_NUM_SYS_TIMEOUT is too low to accomodate all required timeouts" 
接着更改
#define MEMP_NUM_SYS_TIMEOUT    6  //从5改成6
报错
"When using IGMP, LWIP_RAND() needs to be defined to a random-function returning an u32_t random value
但是项目里面找不到这个函数啊,新手,求解决,不知道改了这个后还会不会有其他错误,能帮忙在源码里面验证一下吗?谢谢。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2015-9-25
在线时间
3 小时
 楼主| 发表于 2015-10-8 16:34:52 | 显示全部楼层
我只是想打开IGMP 广播协议,发送广播和组播数据,看到了请帮忙解答下,非常感谢。
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-10-8 17:03:23 | 显示全部楼层
错误提示已经很明显了,让你实现一个函数LWIP_RAND(),这个函数产生一个随机数返回给调用者,返回的值应该为u32_t类型的,这个随机数产生函数你可以直接调用C库里面的,简单封装一下就可以了
开往春天的手扶拖拉机
回复

使用道具 举报

9

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2015-9-25
在线时间
3 小时
 楼主| 发表于 2015-10-8 17:15:39 | 显示全部楼层
回复【3楼】zuozhongkai:
---------------------------------
谢谢版主回复,因为找不到这个函数定义,而且很多地方都在使用,不知道在什么地方定义,我实验了到几个文件里面定义都没用,能否帮忙看下呢?非常感谢!实现我自己去实现,看下在什么文件里面定义比较合理。
回复

使用道具 举报

9

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2015-9-25
在线时间
3 小时
 楼主| 发表于 2015-10-8 18:08:33 | 显示全部楼层
回复【3楼】zuozhongkai:
---------------------------------
实验了几个地方 init.h 定义 init.c实现也不行, main函数里面实现也不行,udp.h udp.c里面实现也不行,都报一样的错误,能否有空打开你们的源码,调试一下呢?万分感谢!
回复

使用道具 举报

9

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2015-9-25
在线时间
3 小时
 楼主| 发表于 2015-10-8 21:44:44 | 显示全部楼层
我是这样解决的,但是不知道会不会有问题,步骤如下,有需要的可以参考下。
首先:
#if LWIP_IGMP && !defined(LWIP_RAND)
  #error "When using IGMP, LWIP_RAND() needs to be defined to a random-function returning an u32_t random value"
#endif

改成
#if 0 && !defined(LWIP_RAND)
  #error "When using IGMP, LWIP_RAND() needs to be defined to a random-function returning an u32_t random value"
#endif

然后错误提示LWIP_RAND()没有定义,指向了igmp.o  
然后去igmp.h里面定义
u32_t  LWIP_RAND(void);

然后实现,编译通过。不知道这样会不会有问题。哎,希望版主看到了给一个明确的答复吧。不然总不敢加入项目,感谢
回复

使用道具 举报

9

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2015-9-25
在线时间
3 小时
 楼主| 发表于 2015-10-9 10:01:35 | 显示全部楼层
有没有人来回答啊- =!在想等
回复

使用道具 举报

24

主题

192

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
498
金钱
498
注册时间
2016-3-16
在线时间
202 小时
发表于 2018-3-16 10:34:34 | 显示全部楼层
zuozhongkai 发表于 2015-10-8 17:03
错误提示已经很明显了,让你实现一个函数LWIP_RAND(),这个函数产生一个随机数返回给调用者,返回的值应该 ...

左神,发现使用一个问题,你移植的LWIP协议,会传出一个SSDP,然后LWIP就崩了,系统其它的线程还能跑。
路漫漫其修远兮,戒骄戒躁。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 21:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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