新手入门 
 
	- 积分
 - 4
 
        - 金钱
 - 4 
 
       - 注册时间
 - 2021-12-23
 
      - 在线时间
 - 0 小时
 
 
 
 | 
 
 
发表于 2021-12-23 11:54:53
|
显示全部楼层
 
 
 
关于突发自己的理解: 
*DMA传输需要用到总线矩阵,有个总线仲裁管理总线事务,由它来控制该谁谁用总线 
*普通的DMA传输可能传一段数据就必须跟总线仲裁提要求,总线仲裁才来安排传输 
这里的一段数据是根据根据MSIZE字段就行配置, 比如字节、半字(两个字节)、字(4个字节), 这是一个原子操作。 
而1次突发就是传一段数据的优先级别提高到最高, 不需要总线仲裁。  
而几个节拍的意思就是重复几次这样的操作。 
 
1.为什么MSIZE=字节,FIFO级别是1/4,只有MBURST=INCR4可行? 
因为MSIZE=1个字节  所以一个突发只能传一个字节, 而FIFO级别是1/4, FIFO的容量是4级32位, 相当于16个字节数。所以FIFO中的有效字节数是16*(1/4)=4字节。 所以只能选择4个节拍的1次突发。 
2.为什么MSIZE=半字,FIFO级别是3/4,所有突发都不能使用? 
因为MSIZE=半字=2个字节,  所以一个突发能传2个字节, 而FIFO级别是3/4。所以FIFO中的有效字节数是16*(3/4)=12字节=6个半字。 
而MBURST=INCR4的时候是传输4个半字, MBURST=INCR8的时候是传输8个半字,MBURST=INCR16的时候是传输8个半字 
不满足传送6个半字, 所以都不能使用。 
3.为什么MSIZE=字,FIFO级别是满,只有MBURST=INCR4可行? 
因为MSIZE=字=4个字节, 而FIFO级别是满, 所以FIFO中的有效字节数是16个字节=4个字 
所以只能选择MBURST=INCR4,  即发送4段数据, 每段数据是一个字。 
而MBURST=INCR8的意思是发送8段数据, 每段数据是一个字, 相当于传输了8个字(32个字节)。 同理MBURST=INCR16更不行。 
 |   
 
 
 
 |