OpenEdv-开源电子网

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

STM32F407 LWIP问题请教,使用原子的范例程序

[复制链接]

4

主题

7

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2020-10-4
在线时间
5 小时
发表于 2020-10-12 10:42:22 | 显示全部楼层 |阅读模式
2金钱
用STM32F407 做无操作系统的LWIP 移植,没有使用外部RAM,用的是正点原子的范例程序,遇到一个问题
一直连接不上网
最开始
        rval=ETH_Init(&ETH_InitStructure,LAN8720_PHY_ADDRESS);                //ÅäÖÃETH
        if(rval==ETH_SUCCESS)//ÅäÖÃ3é1|
        {
                ETH_DMAITConfig(ETH_DMA_IT_NIS|ETH_DMA_IT_R,ENABLE);          //ê1ÄüòÔì«íø½óêÕÖD¶Ï      
        }

配置不成功
然后我做了修改
//        ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Enable;                           //¿aÆôíøÂç×Ôêêó|1|Äü
  ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Disable;//hank      


配置成功,但是DHCH老是不成功
然后看打印的信息
netif->output()dhcp_discover: deleting()ing
dhcp_discover: SELECTING
dhcp_discover(): set request timeout 16000 msecs
tcp_slowtmr: no active pcbs

发现是
  prev = NULL;
  pcb = tcp_active_pcbs;
  if (pcb == NULL) {
    LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: no active pcbs\n"));
  }
  while (pcb != NULL) {
           LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: processing active pcb\n"));
    LWIP_ASSERT("tcp_slowtmr: active pcb->state != CLOSED\n", pcb->state != CLOSED);
    LWIP_ASSERT("tcp_slowtmr: active pcb->state != LISTEN\n", pcb->state != LISTEN);
    LWIP_ASSERT("tcp_slowtmr: active pcb->state != TIME-WAIT\n", pcb->state != TIME_WAIT);
    if (pcb->last_timer == tcp_timer_ctr) {
      /* skip this pcb, we have already processed it */
      pcb = pcb->next;
      continue;
    }
这里问题,然后调试,发现很奇怪
编程软件之后 tcp_active_pcbs 就为0 了  所以程序就出错了
但是 这是个结构体 struct tcp_pcb *tcp_active_pcbs;
指针怎么会是0呢
而且程序编译后,tcp_active_pcbs 就为0  但是把  tcp_active_pcbs  放到WATCH窗口里又能看到数据
我用原子的例子程序编译也是同样的结果
我查看MAP 文件  这些代码是在 TCP.C 文件里
MAP 里有给TCP.C 分配位置
0x200000c9   COMPRESSED   0x00000003   PAD
    0x200000cc   COMPRESSED   0x00000004   Data   RW         1542    .data               raw.o
    0x200000d0   COMPRESSED   0x00000024   Data   RW         1564    .data               tcp.o
    0x200000f4   COMPRESSED   0x00000020   Data   RW         1590    .data               tcp_in.o
    0x20000114   COMPRESSED   0x0000000c   Data   RW         1628    .data               timers.o
    0x20000120   COMPRESSED   0x00000008   Data   RW         1645    .data               udp.o
    0x20000128   COMPRESSED   0x00000012   Data   RW         1727    .data               ip.o

不知道哪位大侠知道是什么原因么

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

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2020-10-4
在线时间
5 小时
 楼主| 发表于 2020-10-13 12:50:26 | 显示全部楼层
回复

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2020-10-4
在线时间
5 小时
 楼主| 发表于 2020-10-13 18:23:02 | 显示全部楼层
没人回答么
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-29 23:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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