DM9000 溢出

luixing67 2014-10-31 09:43:00
最近在调DM9000的问题,正常情况下通讯都没有问题,就是在连续接受大包的时候会发生溢出错误.比如说在接收ping 30000的时候,前面连续接收13包,也就是差不多19K的数据,都没有问题,但是读第14包就无法成功,这个时候打印0xFE寄存器,已经读到溢出了.已经排除了CPU速度的问题,去掉其它所有驱动,还是没有任何效果。请大家帮忙指点下,有什么办法定位问题.

就是用通用的DM9000驱动,网上一大堆.
...全文
806 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
paul_chao 2015-07-28
  • 打赏
  • 举报
回复
感覺是ISR->IST Latency 的問題, 你可以試試將IST的 Priority 調高, 有可能可以改善. 或是改加入 Installable ISR, 在 ISR 中先將DM9000 的數據讀出即可. Paul, Chao @ Techware
luixing67 2015-03-26
  • 打赏
  • 举报
回复
引用 7 楼 accessysq 的回复:
引用 6 楼 luixing67 的回复:
[quote=引用 2 楼 woshi_ziyu 的回复:] 查一下数据的堆栈 看看有没有越界
没有缓冲buffer肯定是够的
那你的溢出哪里来的。 主要是你的ping包很大,mtu在以太网上是1518字节.你的包发送时需要分成21个包在网络中传送。接收端需要收到后合并。 所以你要考虑好这个问题。[/quote] 溢出是读DM9000 register得到的,buffer是2K的数组,应该足够收数据了.我觉得是dm9000本身的缓存溢出了,也有可能是CPU这里读的不够快,但是已经是1G的CPU了
  • 打赏
  • 举报
回复
引用 6 楼 luixing67 的回复:
引用 2 楼 woshi_ziyu 的回复:
查一下数据的堆栈 看看有没有越界
没有缓冲buffer肯定是够的
那你的溢出哪里来的。 主要是你的ping包很大,mtu在以太网上是1518字节.你的包发送时需要分成21个包在网络中传送。接收端需要收到后合并。 所以你要考虑好这个问题。
luixing67 2014-11-06
  • 打赏
  • 举报
回复
引用 2 楼 woshi_ziyu 的回复:
查一下数据的堆栈 看看有没有越界
没有缓冲buffer肯定是够的
luixing67 2014-11-06
  • 打赏
  • 举报
回复
引用 3 楼 accessysq 的回复:
既然是溢出,那么你就要看看是哪里的溢出。这个还要看你的驱动打开哪几个宏。你最好说明清楚。有没有开接收的环形缓冲区等。另外最好打开调试信息,然后贴出调试信息,不然很难弄清楚你具体在哪里出的错误。
没开环形缓冲,其实测试过开环形缓冲,感觉稍微好一点点,还是没有最终解决问题。所以就放弃了。 主要开了 IMPL_FLOW_CONTROL IMPL_SHARED_TX IMPL_RESET 没有错误信息的,驱动没有提示任何错误. 我也是找了一段时间,在void C_DM9000::DeviceInterruptEventHandler 中打印中断标志,才看到有溢出
luixing67 2014-11-06
  • 打赏
  • 举报
回复
引用 1 楼 91program 的回复:
有什么办法定位问题,得先知道你是啥硬件、啥系统吧? 嵌入式这块,提问时最好是说明一下自己的开发环境,否则别人怎么知道应该提供什么方法。
不好意思,因为是在WINCE板块,所以没说系统。是WINCE 6.0 R3,芯片是TI 的AM3352,主频是1G. 溢出的错误,都是在Ping 大包的时候,大于30000 byte容易出现。然后读DM9_ISR(0xFE) 就读到溢出标示了
  • 打赏
  • 举报
回复
既然是溢出,那么你就要看看是哪里的溢出。这个还要看你的驱动打开哪几个宏。你最好说明清楚。有没有开接收的环形缓冲区等。另外最好打开调试信息,然后贴出调试信息,不然很难弄清楚你具体在哪里出的错误。
woshi_ziyu 2014-11-03
  • 打赏
  • 举报
回复
查一下数据的堆栈 看看有没有越界
91program 2014-11-03
  • 打赏
  • 举报
回复
有什么办法定位问题,得先知道你是啥硬件、啥系统吧? 嵌入式这块,提问时最好是说明一下自己的开发环境,否则别人怎么知道应该提供什么方法。

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧