在线时间0 小时
UID166254
注册时间2010-1-3
NXP金币0
该用户从未签到
新手上路

- 积分
- 42
- 最后登录
- 1970-1-1
|
问题来源:
我在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还在传数据的现象?
如果确实存在这种进入了中断还在传数据的现象,那么软件上应该如何处理?
先谢谢各位了!!!
|
|