打印
[STM32F1]

求助啊!freertos+lwip

[复制链接]
4664|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
efen|  楼主 | 2014-1-27 18:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在情况是这样的,在stm32F107上实现移植了freertos7.5和lwip1.4,以太网的层底驱动用stm32F2X7替换。
问题是:只有以太网底层线程+tcpip的线程时能ping通大于100W次,但是只要再加一个简单的led线程就会出现ping小于几万次就超时ping不通.
还有的是我是首先移植freerot能跑通才在这基础上再移植lwip1.4的。

我主堆栈设置为0x5000,  freertos的配置参考stm32F4还是解决不了,请大神赐教啊。纠结了一个多星期了
沙发
airwill| | 2014-1-28 08:15 | 只看该作者
要过年了, 还这么辛苦, 支持你一下!
很想帮你忙, 不过我也没有玩到这么深.
建议, 用好调试器, 在软件里设置一些端点, 捕捉一下问题的现场再分析

使用特权

评论回复
板凳
prayerwind| | 2014-1-28 11:29 | 只看该作者
建议更详细的描述问题:
1. Ping不通的原因:
  Time-out还是Unreachable,用wireshark抓下包;
2. 驱动部分:
    以太网的接收线程是否正常(如果不正常,看看DMA是不是锁死了);
3. 应用角度,可以利用调试工具(例如IAR对FreeRTOS的任务和信号量进行捕捉和分析);
  FreeRTOS下 你可以看到任务的状态(比如以太网接收进程是不是一直阻塞?)
               也可以看到信号量的情况。

使用特权

评论回复
地板
efen|  楼主 | 2014-1-28 16:12 | 只看该作者
prayerwind 发表于 2014-1-28 11:29
建议更详细的描述问题:
1. Ping不通的原因:
  Time-out还是Unreachable,用wireshark抓下包;

谢谢LS两位啊!请教prayerwind,我发现在ping超时的时候会触发,ETH_DMA_FLAG_RBU(Receive buffer unavailable flag)以太网不再能触发中断了,不知是不所说的DMA锁死?而我现在的iar版本是5.3的无法看到os信号量情况(现在也不清楚iar版本是否对他有影响)

使用特权

评论回复
5
prayerwind| | 2014-1-28 17:34 | 只看该作者
efen 发表于 2014-1-28 16:12
谢谢LS两位啊!请教prayerwind,我发现在ping超时的时候会触发,ETH_DMA_FLAG_RBU(Receive buffer una ...

DMA有连个拥有者,如果是Host(CPU)可以进行数据处理;如果是DMA自己可以响应接收中断。
如果DMA缓冲区已满,拥有者是Host,将无法响应中断。

建议出现问题后:
1. 在中断程序中设置断点(是否有响应,你的提示是time-out,即wireshark上有回复,这说明以太网还在工作)。

使用特权

评论回复
6
prayerwind| | 2014-1-28 17:46 | 只看该作者
efen 发表于 2014-1-28 16:12
谢谢LS两位啊!请教prayerwind,我发现在ping超时的时候会触发,ETH_DMA_FLAG_RBU(Receive buffer una ...

还有一种锁死,应该是永远得不到信号量了,你可以在调试中注意下这点。

过完今天就可以回老家过年了。
新年快乐,祝你早日解决这个问题。;P

使用特权

评论回复
7
efen|  楼主 | 2014-2-4 17:36 | 只看该作者
找到原因了,原来是优先级设置顺序的关系,要先设置NVIC_PriorityGroupConfig,才能再配置外设的中断优先级,不知道是不是stm32有这样的要求?跟freertos,lwip和stack都无关

使用特权

评论回复
8
zh-simple| | 2014-3-11 23:10 | 只看该作者
我刚开始接触stm32f107几天,也碰到同样的问题,能否共享一下代码

使用特权

评论回复
9
kirttt| | 2014-3-17 11:51 | 只看该作者
都是很厉害的人啊!!!

使用特权

评论回复
10
franki_18| | 2014-10-22 22:57 | 只看该作者
prayerwind 发表于 2014-1-28 11:29
建议更详细的描述问题:
1. Ping不通的原因:
  Time-out还是Unreachable,用wireshark抓下包;

请问 在keil中如何对FreeRTOS的任务和信号量进行捕捉和分析 ?

打扰啦

使用特权

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

本版积分规则

个人签名:得之坦然,失之淡然,争其必然,顺其自然。

50

主题

615

帖子

1

粉丝