OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4283|回复: 4

DMA数据流仲裁问题???

[复制链接]

4

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
310
金钱
310
注册时间
2016-8-24
在线时间
15 小时
发表于 2016-9-14 00:40:23 | 显示全部楼层 |阅读模式
本人使用的是407的板子,最近初学DMA发现一个问题。DMA里面的数据流有优先级仲裁,但是在DMA初始化的时候,一个数据流只能对应一个外设接口。也就是说同一时刻,只能存在一个数据流。既然同一时刻只能存在一个数据流,那么为什么需要进行优先级仲裁呢?那不是多次一举吗?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
295
金钱
295
注册时间
2016-6-17
在线时间
60 小时
发表于 2016-9-14 10:11:14 | 显示全部楼层
数据流对应的外设是初始化固定死的。但是2个DMA,14个数据流是不是应该有个优先级呢。多个外设同时有DMA请求时,优先级就有用了。
回复 支持 1 反对 0

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3718
金钱
3718
注册时间
2011-5-23
在线时间
2012 小时
发表于 2016-9-14 09:29:26 | 显示全部楼层
当串口1 串口2 以及CPU同时需要数据的时候。

一般总线及DMA性能都高于实际需求,所以即使同时发生,也很快处理完成,所以一般感觉不到。
RT-Thread RTOS 音频,WIFI,蓝牙
回复 支持 反对

使用道具 举报

4

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
310
金钱
310
注册时间
2016-8-24
在线时间
15 小时
 楼主| 发表于 2016-9-14 22:54:29 | 显示全部楼层
我这个问题我想了想,觉得应该是这样的:虽然DMA只初始化一次,但是是针对一个数据流初始化的。也就是说要是初始化多次,针对不同的数据流,那么就有了多个数据流了,存在了多个数据流,就有可能同时产生DMA请求,所以就需要DMA仲裁!!!不知道这样理解对不对,请大神指点!!!!
回复 支持 反对

使用道具 举报

9

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
372
金钱
372
注册时间
2016-8-15
在线时间
55 小时
发表于 2017-12-16 22:53:24 | 显示全部楼层
奔跑的蟑螂 发表于 2016-9-14 22:54
我这个问题我想了想,觉得应该是这样的:虽然DMA只初始化一次,但是是针对一个数据流初始化的。也就是说要 ...

我觉得是正解,都初始化完毕之后,你可以同时使能数据流,但是在同一瞬间,AHB
总线只允许一个数据流通过,在微观上看是仲裁器在起到分配先后顺序的作用,但是细节我们可以不用管,因为他是硬件自动工作的,(我也没搞懂细节),数据流通过得飞快,宏观上看,你会觉得数据流似乎都是同时通过的,其实每个流是分时通过的,与操作系统的多任务有异曲同工之处,也不知道说得对不对
祝中国健儿奥运好成绩
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-19 14:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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