飞思卡尔MCU 增强型DMA简介

DMA简介

直接内存存取(DMA)是快速数据交换的重要技术,它具有独立于CPU的后台批量数据传输能力,能够满足处理中高速数据传输要求,随着技术的发展,现在大部分的MCU都有集成DMA控制器,我们就以飞思卡尔块kv4x系列MCU位列来学习嵌入式开发中的DMA应用,飞思卡尔微处理器kv4x是基于ARM cortex M4 核的MCU,集成有增强型DMA控制器,称为eDMA,硬件体系结构主要包括DMA引擎和本地内存内容传输控制描述符TCD(Transfer Control Descriptor)

系统款图

从框图中可以明显的看出主要分为eDMA 引擎和TCD。在学习嵌入式时候一定注意阅读参考手册或数据手册上的图,能 够很好的帮助你理解。图看懂了基本上就理解了原理。从图中还看以看出DMA引擎主要分为四个部分,Data Path, Address Path, Control, Program mode/Channel arbitration. 系统框图如下图所示

特性

增强型eDMA控制器是高度可编程的数据传输引擎,可以最小化减少CPU的干预,主要用在数据大小已知且速度要求高的场合,主要特性有:

所有数据通过双地址传输,从源地址读取,写入目标地址

16通道实现复杂数据传输,最大限度减少CPU干预

TCD可以支持两级深度嵌套的传输

可以支持三种不同的通道激活方法

固定优先级或者循环的通道仲裁

每个通道都有完成传输中断

可选的集中/分散DMA处理

支持复杂数据结构

操作模式

正常模式:在正常模式下,eDMA在源地址和目标地址之间传输数据

调试模式:调试模式顾名思义是为调试用的,可以通过控制寄存器的调 试位配置。

等候模式:在进入等候模式之前,DMA会尝试完成当前的传输,在当前 传输完成后,进入等候模式

DMA的操作设计到很多寄存器,在飞思卡尔的KV4XMCU上与DMA相关的寄存器非常多,从0x4000_8000到0x4000_91FE的绝对地址都是相关的寄存器。具体的寄存器含义请参照飞思卡尔官方数据手册仔细研读。

TCD结构

弄懂TCD的结构是理解DMA工作的基础,每一个传输通道需要32个字节来定义数据的传输,TCD结构如下图所示

SADDR,源地址,SOFF,源地址偏移量,等等每个字段的具体含义可以参考数据手册寄存器定义章节。具体详细的TCD操作描述请参考官方文档,本文只是给大家简单介绍下DMA。

原文发布于微信公众号 - 嵌入式程序猿(InterruptISR)

原文发表时间:2015-08-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏知识分享

关于IAR开发STM32配置

因为自己要学Msp430还有ZigBee发现IAR真的挺好用,,,所以以后想着就用IAR写单片机程序,, 这次配置我不会把程序的配置弄得有条理,分开文件夹存放,...

37340
来自专栏闵开慧

Hadoop是什么

本节和大家一起学习一下Hadoop,主要介绍一下Hadoop的概念以及它的特点,欢迎大家一起来学习Hadoop的知识。 1.Hadoop是什么 Hadoop原...

36260
来自专栏spark随笔

对spark中RDD的partition通俗易懂的介绍

我们要想对spark中RDD的分区进行一个简单的了解的话,就不免要先了解一下hdfs的前世今生。

18700
来自专栏编程札记

Goroutine并发调度模型深入之实现一个协程池

1.2K50
来自专栏腾讯云安全的专栏

你熟悉的Android Root 方式有哪些?|附演示视频

31050
来自专栏Python爬虫与算法进阶

拥抱linux,体验双系统

我的回答:是,明明已经把自动更新关闭了,可是还是会有“易升”,win10易升一直卸载不掉。所以就想试试别的系统。

87870
来自专栏Spark学习技巧

SparkStreaming如何解决小文件问题

1.4K20
来自专栏祝威廉

Spark Streaming 流式计算实战

我们每分钟会有几百万条的日志进入系统,我们希望根据日志提取出时间以及用户名称,然后根据这两个信息形成

14310
来自专栏数据派THU

手把手教你搭建AI开发环境 !(附代码、下载地址)

来源:虎贲智能机器 本文长度为1000字,建议阅读5分钟 本文为你介绍基于ubuntu16 Python3 tensorflow的人工智能开发环境的搭建。 人最...

28170
来自专栏JackieZheng

Hadoop阅读笔记(五)——重返Hadoop目录结构

  常言道:男人是视觉动物。我觉得不完全对,我的理解是范围再扩大点,不管男人女人都是视觉动物。某些场合(比如面试、初次见面等),别人没有那么多的闲暇时间听你诉说...

246100

扫码关注云+社区

领取腾讯云代金券