硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1617|回复: 4
收起左侧

[LwIP] 关于LWIP 以太网中断函数ETH_IRQHandler影响串口DMA的问题请教

[复制链接]

5

主题

16

回帖

31

积分

新手上路

积分
31
发表于 2024-9-24 16:07:58 | 显示全部楼层 |阅读模式
在一个基础的STM32F407+FreeRTOS+串口DMA收发(空闲中断接收方式)的工程下,增加LWIP的移植,移植前串口DMA收发都是正常的,移植后,LWIP的TCP收发都正常,但是串口接收数据能进入空闲中断,但是dma无法搬运数据了,查找代码排查后发现,注释以太网接收中断函数ETH_IRQHandler()后,串口DMA又变正常了,再次解除注释,串口dma又无法接收数据,这究竟是什么原因?难道他们有冲突吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-9-24 18:28:33 | 显示全部楼层
串口DMA是否运行,重点看到NDTR寄存器是否在变化。

如果没有变化,说明你的程序一定是存在隐含的bug,注释掉ETH_IRQHandler()并不是根本原因,重点看下串口和串口DMA配置,是不是有配置项遗漏了
回复

使用道具 举报

5

主题

16

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2024-9-25 08:47:47 | 显示全部楼层
谢谢硬汉哥,问题找到了,是因为我开启了CCMRAM,部分内存分配到了CCMRAM导致DMA无法使用
回复

使用道具 举报

5

主题

16

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2024-9-25 08:49:36 | 显示全部楼层
谢谢硬汉哥,问题找到了,是因为我开启了ccmram,与dma有关的部分内存自动分配到了ccmram导致dma不可用。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-9-25 10:26:18 | 显示全部楼层
binss 发表于 2024-9-25 08:47
谢谢硬汉哥,问题找到了,是因为我开启了CCMRAM,部分内存分配到了CCMRAM导致DMA无法使用

谢谢告知最终原因。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 03:38 , Processed in 0.040409 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表