完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
tcp或udp长时间通信 [60094] E/drv.emac: eth transmit frame faild: 2
|
|
相关推荐
5个回答
|
|
函数调用栈被破坏了,从 HAL_ETH_TransmitFrame 函数返回开始,中间经历了判断,传递给 LOG_E (或者说 rt_kprintf) 这一段过程时,线程栈被意外修改了。
你这种情况让我想起来我调试 usbhost 的时候遇到的问题。一模一样。看看我的调试 usbhost 笔记中怎么说的。 |
|
|
|
定义#define LWIP_NO_TX_THREAD 后就不会出现
|
|
|
|
上次你那个问题说,去掉 rx 的线程就出问题,这次是必须去掉 tx 线程才没问题。
你不觉得这些都是问题暴露点儿,不是问题根源所在吗? 考虑到前边你的工程出现的那么多异常情况,强烈建议你把整个项目从头到尾捋一遍。 前边跟很多人讲过的笨办法,排除和比对法。以功能或者模块为单位划分,一个一个排查。不要在错误的方向上越走越远。 |
|
|
|
这个在数据频繁交互的情况下跟线程优先级有关,但是HAL_ETH_TransmitFrame(&EthHandle, framelength)返回2 却有点说不通
|
|
|
|
用相同的数据,但是不同的交互频度下测试。分别比较 HAL_ETH_TransmitFrame 函数返回后线程栈内容。你肯定能看到返回2的时候,不仅仅是那一个变量改变了。你这里调整一下代码,再添加点儿其它的打印信息,你会发现返回的就不是2了。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AI模型部署边缘设备的奇妙之旅:边缘端设备的局域网视频流传输方案
1204 浏览 0 评论
1427 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
6046 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1831 浏览 0 评论
2876 浏览 0 评论
76908 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 04:28 , Processed in 0.527653 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号