硬汉嵌入式论坛

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

[RT1050] RT1052串口DMA接收一段时间后没有使用的通道产生了异常

[复制链接]

5

主题

5

回帖

20

积分

新手上路

积分
20
发表于 2025-6-5 15:42:43 | 显示全部楼层 |阅读模式
我使用了多个串口+DMA+空闲中断接收,dma发送,每个串口接收dma使用4个tcd每个tcd管理20k缓冲区共80k首尾相连组成循环接收的形式,数据量大概5.5k/s、2k/s、1k/s三个串口,3个串口每个串口对应一个freertos任务,两个数据量较少的在空闲中断中使用了信号量,大的不使用信号量直接让任务做轮询处理数据。
问题:发现在运行一段时间后dma出现了异常但是查看寄存器显示的通道是我没有使用的通道没有初始化过它,我使用的通道开启了异常中断,出现异常的时候也没有进入异常中断,搞不清楚为什么,麻烦大家帮忙分析分析


测试下来
1.不把dma配置多个tcd而是留下一个20k的缓冲区减少了dma中断后暂时没有出现上面的问题
2.或者把dma中断配置优先级较高,将别的定时器调低,串口的空闲中断优先级调至dma与别的中断中间,这个问题也几乎没有出现
是因为中断嵌套抢占之类的造成的故障吗,不理解

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-11 20:55 , Processed in 0.034972 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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