完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
下位机就运行一个tcp-server,lwip2.0.2,上位机不停的写入读取,tcp-server收到数据后返回数据。正常情况下,上位机写入数据后1ms内能得到数据回复,但是时不时出现延迟10ms左右甚至偶尔出现一两百ms才能收到数据,不知道卡在哪里了 |
|
相关推荐
12个回答
|
|
|
前几天我刚在整理怎么裁剪 lwip 。lwip + sal 使用了好几个线程,其中某个线程因为调度不及时都可能引起数据延迟。把 phy 和 erx etx 三个线程优先级提升一下试试能不能响应快些。
|
|
|
|
|
|
读取phy状态寄存器会有影响吗?我把定时读取phy状态寄存器部分去掉还是延时大
|
|
|
|
|
|
ETH发送完成中断ETH_DMA_FLAG_T 一直不会触发的
|
|
|
|
|
|
DMA 配置失败了?
|
|
|
|
|
|
如果配置失败,数据就发送不出去了
|
|
|
|
|
|
有没有什么频繁触发的中断没清理掉,导致系统被阻塞了。有观察过收发数据的时候,系统运行正常吗?比如点灯频率变没变,finsh 终端里输入命令有没有变慢
|
|
|
|
|
|
你的会触发ETH_DMA_FLAG_T 发送中断吗?HAL库驱动只看到有打开ETH_DMA_IT_R中断
if((heth->Init).RxMode == ETH_RXINTERRUPT_MODE) { /* Enable the Ethernet Rx Interrupt */ __HAL_ETH_DMA_ENABLE_IT((heth), ETH_DMA_IT_NIS | ETH_DMA_IT_R); } 但是即便打开ETH_DMA_IT_T中断,也不会触发 |
|
|
|
|
|
会啊,试过 ping 吗?不使用你的应用程序测试,先用 ping 有出过问题吗?
|
|
|
|
|
|
有没有什么频繁触发的中断没清理掉,导致系统被阻塞了。有观察过收发数据的时候,系统运行正常吗?比如点灯频率变没变,finsh 终端里输入命令有没有变慢
@出出啊 finsh没影响,finsh线程优先级更高。工作线程都去掉了,就剩tcp收发了。时不时卡个10多ms。 if((heth->Init).RxMode == ETH_RXINTERRUPT_MODE) { / Enable the Ethernet Rx Interrupt / __HAL_ETH_DMA_ENABLE_IT((heth), ETH_DMA_IT_NIS | ETH_DMA_IT_R); } 直接在这句里把ETH_DMA_IT_T 中断加上,行不行,但是加上根本不触发 |
|
|
|
|
|
|
|
|
|
|
|
finsh不输入应该是挂起不受影响吧,即便有多个高优先级线程但是如果一直挂起不触发应该不受影响啊
|
|
|
|
|
|
没有用SAL, erx etx 默认优先级12,已经很高了, phy线程应该不影响,phy线程在检测到硬件phy后会退出,改用定时器检测读取phy状态寄存器
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1033 浏览 0 评论
2877 浏览 0 评论
图腾柱PFC无法上升至400V,且电感电流为正弦波形,但是幅值极小
9386 浏览 0 评论
飞凌嵌入式ElfBoard-Vim编辑器之静态链接和动态链接
2898 浏览 0 评论
使用 LinkBoy 将程序导出为 C 语言代码并烧录至 Arduino ESP32 开发板
2302 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 05:25 , Processed in 1.491978 second(s), Total 96, Slave 79 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1763