[STM32F7] STM32F767ZI + lwIP + FreeRTOS Ping无应答

[复制链接]
51|27
童雨竹 发表于 2026-7-4 13:18 | 显示全部楼层
调侃一句,调了两天抓包全是0x55,最后发现忘记关闭CPU数据Cache对DMA区域的缓存,关闭MPU缓存后ping立刻正常回复。
万图 发表于 2026-7-4 13:19 | 显示全部楼层
我怀疑是硬件校验和开启后存在字节序bug,你先临时关掉lwIP硬件校验和,重新编译测试,很多F7版本库在这里有适配漏洞。
Wordsworth 发表于 2026-7-4 13:19 | 显示全部楼层
给你分步排查办法:先关掉FreeRTOS裸跑lwIP测试,正常就是RTOS堆/任务抢占导致内存越界;依旧乱码就是ETH DMA内存配置问题。
Bblythe 发表于 2026-7-4 13:20 | 显示全部楼层
检查ETH发送DMA的描述符链表,有没有出现缓冲区长度赋值溢出,哪怕数据内容正确,长度填错网卡会乱发填充码0x55。
Pulitzer 发表于 2026-7-4 13:21 | 显示全部楼层
有没有核对硬件PHY配置?CubeMX自动生成的PHY时序参数不对,发送波形畸变,抓包就会混杂大量同步字符,看着全是数字5。
Uriah 发表于 2026-7-4 13:22 | 显示全部楼层
踩过同款坑,lwIP发送时pbuf释放时机太早,DMA还没发完内存就被复用覆盖,调试时看缓存正常,发包瞬间被其他任务改写。
Clyde011 发表于 2026-7-4 13:23 | 显示全部楼层
分享稳定配置方案:ETH收发缓存加__attribute__((aligned(32)
班杰明 发表于 2026-7-4 17:36 | 显示全部楼层
检查ETH_DMACTxDCR寄存器,确保传输长度设置正确,避免截断或填充。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0