以太网描述符ETH_DMATxDesc_OWN异常
stm32 以太网发送一段时间后发送描述符状态一直为DMA拥有,造成以太网发送停止,发送过程中什么原因会造成描述符一直为DMA拥有;(发送接收同时进行,接收为中断接收)``
if ((DMATxDescToSet->Status & ETH_DMATxDesc_OWN) != (u32)RESET)
{
return ETH_ERROR;
} 用烧写器跟踪检查一下 没遇到过啊,一般情况是优先级的问题 你可以看看你的代码逻辑,也许能找到答案 你用的是单片机内置的ETH么? 是不是需要清除标记啊,DMA中断之后得清除标记的呀 你仿真可以调试,看看能不能找到问题 中断接收没问题的,发送采用DMA么? 你可以调整一下优先级,看看是否可以解决 描述符一直拥有DMA?是啥意思啊? 这不是返回错误么,你可以复位一下网络部分,是不是发送数据过多啊 这个错误,你可以去应用手册上查一下,因为什么才会出现这个错误
请问解决了吗我也碰到这个问题了
fuluoce 发表于 2024-4-15 11:17
请问解决了吗我也碰到这个问题了
我用STM32H743也遇到了,解决了吗 DMA配置错误可能导致DMA无法正确处理传输,造成描述符状态一直为DMA拥有。 描述符的状态位设置正确吗?特别是ETH_DMATxDesc_OWN 你检查过发送描述符有没有正常更新吗?可能是DMA传输过程中卡住了。 这种情况是不是和发送缓冲区没有及时释放有关?我记得需要手动清理描述符。 你有没有试过看ETH_DMATxDesc_OWN一直被置位时DMA的寄存器状态?可能能找到异常原因。 可能是描述符链表配置有问题,检查下DMATxDescToSet的指针是否正确连接。
页:
[1]
2