打印
[其他]

灵动MMCU的DMA传输过程

[复制链接]
手机看帖
扫描二维码
随时随地手机跟帖
21
DMA传输的优先级高于程序中断,进一步减少了CPU的中断处理开销。

使用特权

评论回复
22
pixhw| | 2024-1-8 14:47 | 只看该作者
需要对DMA控制器进行初始化,设置传输的源地址、目的地址、传输的数据长度、传输的模式(如字节传输、字传输等)以及传输完成后是否需要产生中断等参数。

使用特权

评论回复
23
cashrwood| | 2024-1-8 15:18 | 只看该作者
当满足触发条件时,如定时器发生特定事件或者外设完成一次传输,DMA控制器检测到硬件触发信号后开始执行数据传输任务。
DMA会根据预先设定的参数自动读取源地址的内容并写入目标地址,无需CPU介入。

使用特权

评论回复
24
dspmana| | 2024-1-8 16:01 | 只看该作者
在DMA传输过程中,CPU可以继续执行其他任务,而不需要干预数据传输过程。DMA控制器会自动地处理数据传输的细节,例如数据宽度转换、数据校验等。

使用特权

评论回复
25
averyleigh| | 2024-1-8 16:33 | 只看该作者
灵动MMCU的DMA传输过程得以完成。这个过程是自动的,可以大大减轻CPU的负担,提高数据传输的效率。

使用特权

评论回复
26
jackcat| | 2024-1-8 17:18 | 只看该作者
DMA传输过程中,DMA硬件电路自动控制数据从外设传输到主存储器或从主存储器传输到外设。这个过程无需CPU干预,从而降低了CPU的工作负载。

使用特权

评论回复
27
lihuami| | 2024-1-8 17:48 | 只看该作者
需要配置DMA_CCRx寄存器,包括输出传输模式、传输方向、外设和存储器的增量模式、外设和存储器的数据宽度、通道优先级和指针增量等参数。同时,可以通过操作DMA_CNDTRx寄存器配置传输的数据量。此外,还可以设置缓冲未满时是否发起DMA请求,以及每次请求只进行一次DMA传输,且传输数据字节数等参数。

使用特权

评论回复
28
mattlincoln| | 2024-1-8 18:22 | 只看该作者
在开始DMA传输之前,需要初始化DMA控制器和相关的外设,例如串口、定时器等。这包括设置DMA控制器的工作模式、通道选择、传输方向、传输数据宽度等。

使用特权

评论回复
29
鹿鼎计| | 2024-1-9 11:00 | 只看该作者
DMA传输的优先级高于程序中断的优先级,进一步降低了CPU的中断处理开销。

使用特权

评论回复
30
Pretext| | 2024-1-9 15:50 | 只看该作者
DMA传输的优先级高于程序中断的优先级,进一步降低了CPU的中断处理开销。

使用特权

评论回复
31
zerorobert| | 2024-1-9 16:28 | 只看该作者
在使用DMA之前,需要对DMA进行初始化。初始化过程包括设置DMA的工作模式、外设地址、主存储器地址、数据传输方向、数据传输长度等参数。

使用特权

评论回复
32
lihuami| | 2024-1-9 17:01 | 只看该作者
完成指定的数据量传输后,DMA会产生传输完成中断(TC),此时可以通过中断服务程序来处理后续动作,比如重置DMA配置、处理新的数据流或切换到其他任务。
如果设置了循环模式,则DMA将在完成当前一轮传输后立即开始新一轮的数据传输。

使用特权

评论回复
33
jkl21| | 2024-1-9 19:19 | 只看该作者
DMA控制器接收请求后,会根据设定的优先级和屏蔽规则对请求进行判断。
控制器向总线裁决逻辑提出总线请求,如果CPU当前不占用总线,会释放总线控制权。
总线裁决逻辑确认DMA请求,并通过DMA控制器通知I/O接口开始数据传输。

使用特权

评论回复
34
juliestephen| | 2024-1-9 20:00 | 只看该作者
当DMA控制器完成了所有的数据传输后,会根据初始化时的设置产生一个中断信号,通知CPU传输已经完成。此时,CPU可以通过查询DMA的状态寄存器或者等待相应的中断服务例程来处理传输完成后的任务。

使用特权

评论回复
35
bestwell| | 2024-1-9 20:31 | 只看该作者
需要配置DMA控制器,包括选择源地址、目标地址、传输的数据量等。这些配置可以通过编程实现。

使用特权

评论回复
36
uiint| | 2024-1-9 21:03 | 只看该作者
在完成DMA传输后,如果需要,CPU还需要清理相关的资源,如释放DMA通道等。

使用特权

评论回复
37
fengm| | 2024-1-9 21:33 | 只看该作者
在完成初始化和配置后,可以通过设置相应的寄存器或者调用相应的库函数来启动DMA传输。当DMA传输开始后,DMA控制器会自动地将数据从源地址复制到目标地址。

使用特权

评论回复
38
yeates333| | 2024-1-9 22:04 | 只看该作者
完成预定数据传输后,DMA控制器释放总线控制权,并向I/O接口发出结束信号。
I/O接口接收到结束信号后,停止设备工作,并向CPU提出中断请求。
CPU响应中断,执行检查DMA传输正确性的代码,然后继续执行原程序。

使用特权

评论回复
39
benjaminka| | 2024-1-10 07:20 | 只看该作者
DMA传输方式的特点是高效和直接,它通过硬件实现内存与外部设备间的数据传输,避免了CPU资源的占用,简化了数据传输过程,加快了传输速度。

使用特权

评论回复
40
LinkMe| | 2024-1-11 12:19 | 只看该作者
SPI可以使用DMA来传输数据,但实际上,它仍然由自己的硬件DMA支持

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则