搜索
bottom↓
回复: 19

DMA 具体是什么意思 是把当前引脚的 值保存起来吗(已解决)

[复制链接]

出0入0汤圆

发表于 2013-12-15 10:09:53 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_ZJJ 于 2014-1-27 16:35 编辑

DMA  具体是什么意思  是把当前引脚的 值保存起来吗?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2013-12-15 10:19:40 | 显示全部楼层
不经过CPU   数据直接由外设/内存传往外设/内存

出0入14汤圆

发表于 2013-12-15 10:39:53 来自手机 | 显示全部楼层
我想不通的是,像uart的dma,那么一般的过程是
io口—uart模块—cpu读取—存储到内存—处理
对吗?
再加上dma就是
io口—uart模块—存储到内存
也就是用dma的时候必须收到一定数据的数据之后才能操作,适用于传输较大数据量(比如文件),而假如需要用作控制功能的时候只能接受完一桢数据之后才可以进行控制,而不能在一开始的时候就进行桢头那些判断处理

是这样的吗

出0入0汤圆

发表于 2013-12-15 10:45:10 | 显示全部楼层
ST的uart没有FIFO,所以只能一个字节一个字节地传输。

出0入0汤圆

发表于 2013-12-15 11:03:18 | 显示全部楼层
就uart来说的话就是将uart收到的数据,也就是uart寄存器中的数据不经过CPU自动传递到相应的地址单元,或者将响应地址单元的数据传递到UART寄存器,将数据发送出去,不能说将引脚的值保存起来

出0入0汤圆

发表于 2013-12-15 15:20:52 | 显示全部楼层
不通过cpu处理直接数据传递

出0入0汤圆

 楼主| 发表于 2013-12-17 18:44:42 | 显示全部楼层
在看看。。

出0入0汤圆

发表于 2013-12-18 14:32:44 | 显示全部楼层
百度都可以告诉你DMA是做什么用的,呵呵!

出0入0汤圆

发表于 2013-12-18 23:26:53 | 显示全部楼层
我从百度百科给你抄了一段来

Direct Memory Access(存储器直接访问)是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。整个数据传输操作在一个称为“DMA控制器”的控制下进行。CPU除了在数据传输开始和结束时做一点处理外,在传输过程中还可以进行其他的工作。这样,在大部分时间里,CPU和输入输出都处于并行操作,因此使整个计算机系统的效率大大提高。
DMA的概念:DMA是在专门的硬件( DMA)控制下,实现高速外设和主存储器之间自动成批交换数据尽量减少CPU干预的输入/输出操作方式。通常有两种方式: ◎独占总线方式 ◎周期挪用方式
DMA的组成: ◎主存地址寄存器 ◎数据数量计数器 ◎DMA的控制/状态逻辑 ◎DMA请求触发器 ◎数据缓冲寄存器 ◎中断机构
DMA的传送数据的过程:由三个阶段组成 ◎传送前的预处理:由CPU完成以下步骤 向DMA卡送入设备识别信号,启动设备,测试设备运行状态,送入内存地址初值,传送数据个数, DMA的功能控制信号。 ◎数据传送:在DMA卡控制下自动完成◎传送结束处理 DMA 卡上应包括通用接口卡的全部组成部分,并多出如下内容: 主存地址寄存器,传送字数计数器,DMA控制逻辑,DMA请求,DMA响应,DMA工作方式,DMA优先级及排队逻辑等 一次完整的DMA传送过程: DMA 预处理,CPU向DMA送命令,如DMA方式,主存地址,传送的字数等,之后CPU执行原来的程序 DMA 控制在 I/O 设备与主存间交换数据: 准备一个数据, 向CPU发DMA请求,取得总线控制权,进行数据传送,修改卡上主存地址,修改字数计数器内且检查其值是否为零,不为零则继续传送,若已为零,则向 CPU发中断请求.
DMA技术的弊端:因为DMA允许外设直接访问内存,从而形成对总线的独占。这在实时性强的硬实时系统的嵌入式开发中将会造成中断延时过长。这在军事等系统中是不允许的。

出105入79汤圆

发表于 2013-12-19 01:13:15 来自手机 | 显示全部楼层
这个简单!你领导叫你做个这个:adc读出来8bit,直接发送到串口,要快要连续。你就开个dma通道。ok了

出0入8汤圆

发表于 2013-12-19 09:39:45 | 显示全部楼层
DMA  简单点 就是不用MCU去搬运数据 而是靠DMA控制器搬运数据。 这样可以解放MCU出来

出0入0汤圆

发表于 2013-12-19 10:13:35 | 显示全部楼层
DMA 就是给你开个专用通道,没人和你抢道,速度就快起来了。

出0入0汤圆

发表于 2013-12-20 23:53:11 | 显示全部楼层
DMA就是不需要编写CPU指令就可以大量发送数据的,简化数据发送过程,提升性能的方法。
如果需要控制,还是需要CPU对读入相应数据进行判断的,但是如果是固定的长度这种简单的情况,用DMA就简单了

出0入0汤圆

发表于 2013-12-29 23:50:18 | 显示全部楼层
DMA就是搬运工。。 不过话说K的DMA好复杂啊。

出0入0汤圆

 楼主| 发表于 2014-1-1 11:17:17 | 显示全部楼层
谢谢 大家  过年快乐。

出130入129汤圆

发表于 2014-1-1 11:32:35 | 显示全部楼层
不用理解得那么复杂,DMA相当于一个专门帮你干活的用人。
可以饭来张口,衣来伸手,再不用去去动手了。

比如说读取AD值,没有DMA时候,你得发指令去读,转换,然后得到AD值,这需要时间。
有DMA后,它在后台默默的替你去读取,转换,并存放到变量,你要用的时候直接使用变量就可以了。

出0入0汤圆

发表于 2015-2-25 15:04:00 | 显示全部楼层
http://baike.baidu.com/link?url= ... dXn9chlfadg6uI9ds-3

出0入0汤圆

发表于 2015-3-7 10:25:32 | 显示全部楼层
我也是学习了,我也有这样的疑问,大侠回答的辛苦了,谢谢!

出0入0汤圆

发表于 2015-3-7 14:47:45 | 显示全部楼层
dma就是把寄存器直接传到内存,不然cpu干这个干那个,效率不高啊

出0入0汤圆

发表于 2015-3-9 10:00:26 | 显示全部楼层
学习了! 大家回复很详细
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-21 09:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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