查看: 7727|回复: 3

[其他] DMA正常完成一次传输进入中断后还会有仍然在传数据的可能吗?

[复制链接]

该用户从未签到

5

主题

22

帖子

0

新手上路

Rank: 1

积分
42
最后登录
1970-1-1
发表于 2010-7-9 16:46:17 | 显示全部楼层 |阅读模式
问题来源:
我在MCF52259芯片中,利用DMA操作UART收发数据时,采用了一次传输完18个字节数据就产生一次DMA中断,而且数据发送方需在收到接收方的应答后才会发起下一次的数据传输,并且每次都要在DMA中断服务程序中重新设置DMA的有关初始化信息。但在测试过程中,我发现有时候会出现某帧数据部分丢失的现象,比如说,我本来是连续发送以下数据帧:1,2,3,4,5,.....,15,16,17,18(共18个),但是有时候会接收到的18个数据是:1,2,3,4,1,2,……,12,13,14。所以我怀疑会不会是即使进入了DMA中断服务程序,但是DMA还在往发送方的UART发送寄存器传输数据,结果导致了有一帧数据只接收了一部分而已。
 
请问一下各位高手:
我所怀疑的有没有可能出现?
进入DMA中断是否只是意味着“DMA只是完成了从存储器或外设搬移数据这一步,而不一定完成向目的地址写数据这一步” ?
实际当中是否存在即使进入了DMA中断服务程序,但是DMA还在传数据的现象?
如果确实存在这种进入了中断还在传数据的现象,那么软件上应该如何处理?
 
先谢谢各位了!!!
我知道答案 目前已有2人回答
回复

使用道具 举报

该用户从未签到

2

主题

224

帖子

0

版主

Rank: 7Rank: 7Rank: 7

积分
322
最后登录
1970-1-1
发表于 2010-7-9 16:56:23 | 显示全部楼层

RE:DMA正常完成一次传输进入中断后还会有仍然在传数据的可能吗?

多数是设置DMA传输有误。
贴代码吧。。。

该用户从未签到

5

主题

22

帖子

0

新手上路

Rank: 1

积分
42
最后登录
1970-1-1
 楼主| 发表于 2010-7-10 22:49:48 | 显示全部楼层

RE:DMA正常完成一次传输进入中断后还会有仍然在传数据的可能吗?

设置没误啊,因为只要我重发几次数据,那么所接收到的数据又是正常的,只是偶尔有出现接收到的数据只有一部分而已。代码我也想贴,可是那是跟原来的串口处理程序有关的,比较复杂,所以先不打算贴出来了。大侠能否回答以下两个问题:
进入DMA中断是否只是意味着“DMA只是完成了从存储器或外设搬移数据这一步,而不一定完成向目的地址写数据这一步” ?
实际当中是否存在即使进入了DMA中断服务程序,但是DMA还在传数据的现象?
不胜感激!

该用户从未签到

2

主题

224

帖子

0

版主

Rank: 7Rank: 7Rank: 7

积分
322
最后登录
1970-1-1
发表于 2010-7-11 14:12:44 | 显示全部楼层

RE:DMA正常完成一次传输进入中断后还会有仍然在传数据的可能吗?

否。
无代码无真相。
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 20:37 , Processed in 0.093526 second(s), 24 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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