打印
[STM32F1]

STM32F107+DM9161以太网调试中有些IP能ping通,有的IP地址ping不通

[复制链接]
5684|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在调试过程中发现设置板子IP地址在192.168.0.***到192.168.8.***之间的IP地址时,用电脑都可以ping的通;但是当设置板子IP为192.168.9.***以后的IP都会出现以下问题,只能接收到第一个包



在keil Debug模式下查看进入了HardFault_Handler()中断里。

有人遇到过这种情况没?


用的神舟开发板。
沙发
_Hanking|  楼主 | 2014-7-2 12:11 | 只看该作者
自己顶顶

使用特权

评论回复
板凳
_Hanking|  楼主 | 2014-7-2 14:43 | 只看该作者
最新发现,板子IP地址不变,改变了PC的IP地址有的IP能ping通有的ping不通。

如板子IP:192.168.100.125
PC端IP:192.168.100.3能ping的通板子
PC端IP:192.168.100.58不能ping通板子

使用特权

评论回复
地板
runningwzf| | 2014-7-2 16:26 | 只看该作者
第一次能通,说明协议栈的基本工作是OK了
进HardFault_Handler(),说明进了协议栈以后可能造成了内存的溢出
如果是LwIP的话,建议检查内存管理,是不是用了没有初始化的指针或者是内存写的越界了

使用特权

评论回复
5
bjc125| | 2014-7-2 16:49 | 只看该作者
你接局域网了吗 是不是IP地址冲突了

使用特权

评论回复
6
_Hanking|  楼主 | 2014-7-3 09:12 | 只看该作者
runningwzf 发表于 2014-7-2 16:26
第一次能通,说明协议栈的基本工作是OK了
进HardFault_Handler(),说明进了协议栈以后可能造成了内存的溢出 ...

查出来了,是指针没有初始化的问题。发现协议栈内用的指针都没有初始化,lwip协议栈写得那么不严格呢,这样岂不是非常危险

使用特权

评论回复
7
_Hanking|  楼主 | 2014-7-3 09:13 | 只看该作者
bjc125 发表于 2014-7-2 16:49
你接局域网了吗 是不是IP地址冲突了

点对点直接连接的

使用特权

评论回复
8
tgwfcc| | 2014-7-10 09:14 | 只看该作者
你好,楼主,能不能把代码共享下?我也在做STM32F107VCT6+DM9161的项目,程序不会搞

使用特权

评论回复
9
_Hanking|  楼主 | 2014-7-10 11:50 | 只看该作者
tgwfcc 发表于 2014-7-10 09:14
你好,楼主,能不能把代码共享下?我也在做STM32F107VCT6+DM9161的项目,程序不会搞 ...

公司项目代码不宜上传。配置启动代码是参考的神舟板子代码,那些简单的发送接收网上很多的

使用特权

评论回复
10
tgwfcc| | 2014-7-11 10:14 | 只看该作者
_Hanking 发表于 2014-7-10 11:50
公司项目代码不宜上传。配置启动代码是参考的神舟板子代码,那些简单的发送接收网上很多的 ...

哦,好的,谢谢,在网上没找到神州板子的代码,

使用特权

评论回复
11
moonriver610| | 2014-7-11 10:41 | 只看该作者
在官网上下个Demo,或者就用神舟开发板的,注意PHY芯片不同程序有区别。把ZLG的《lwip 应用指南》看一遍就会了。

使用特权

评论回复
12
tgwfcc| | 2014-7-16 11:53 | 只看该作者
本帖最后由 tgwfcc 于 2014-7-16 14:36 编辑
moonriver610 发表于 2014-7-11 10:41
在官网上下个Demo,或者就用神舟开发板的,注意PHY芯片不同程序有区别。把ZLG的《lwip 应用指南》看一遍就 ...

你好,PHY不同,是要修改lwip里边的控制程序吗?例程里边有个STM32_ETH_Driver,这个不是网口的驱动吗?我去看下lwip应用指南

应用指南看了一遍,还是没搞懂啊,PHY芯片的控制程序没找到,有没有QQ啊,请教一下,实在搞不懂?

使用特权

评论回复
13
tgwfcc| | 2014-7-28 20:21 | 只看该作者

你好,楼主,有个问题请教下:
关于MAC的GPIO配置的,代码中有如下:
/**************************************************************/
  /*               For Remapped Ethernet pins                   */
  /*************************************************************/
  /* Input (Reset Value):
  - ETH_MII_CRS CRS: PA0
  - ETH_MII_RX_CLK / ETH_RMII_REF_CLK: PA1
  - ETH_MII_COL: PA3
  - ETH_MII_RX_DV / ETH_RMII_CRS_DV: PD8
  - ETH_MII_TX_CLK: PC3
  - ETH_MII_RXD0 / ETH_RMII_RXD0: PD9
  - ETH_MII_RXD1 / ETH_RMII_RXD1: PD10
  - ETH_MII_RXD2: PD11
  - ETH_MII_RXD3: PD12
  - ETH_MII_RX_ER: PB10 */

其中有些管脚是复用的,不是重映射,比如PA0,PA1,PD8这样的,代码中都把这些管脚放到” GPIO_PinRemapConfig(GPIO_Remap_ETH, ENABLE);“这一句代码的后边了,没有什么影响吗?
如果PD9\PD10\PD11\PD12这5个管脚的信号,我不是重映射的,是用的PC4\PC5\PB0\PB1复用管脚,我是不是要放到GPIO_PinRemapConfig(GPIO_Remap_ETH, ENABLE)它前边呢?谢谢!

使用特权

评论回复
14
cainiaoxunjing| | 2015-2-10 10:54 | 只看该作者
_Hanking 发表于 2014-7-3 09:12
查出来了,是指针没有初始化的问题。发现协议栈内用的指针都没有初始化,lwip协议栈写得那么不严格呢,这 ...

请问楼主 能将的具体点吗  我最近也遇到这个情况  是哪个指针?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

37

帖子

2

粉丝