ADSP-21535 Blackfin的Mem DMA高速通信
WP5 = R6 //将R6和R7的低16位写入
两个配置寄存器中,真正启动DMA
WI0 = R7.L
DMA_WAIT //等待DMA结束
R6 = WP1 //根据写描述子块第一个字的
最高位判断描述子块的所有权
cc = bittstR615
IF cc JUMP DMA_WAIT //如果为1,表示还在DMA
状态,继续判断,等待
RTS
.align 4 //在L2空间范围内定义两个
描述子块,要求4个字节对齐
.BYTE2 RAM_READ5
.align 4
.BYTE2 RAM_WRITE5
值得注意的是,在上述DMA例程中,笔者使用了查询等待方式,但中间完全可以插入其他指令,例如DSP还可以同时作双乘加和两次32位取数。只要不访问正在DMA读写的地址区域,没有任何影响。这意味着,在系统DMA的同时,DSP可以同时进行其他操作,这一点对于提高DSP的效率至关重要。
4 各种内存空间的DMA访问指标测试及分析
根据以上配置,笔者对ADSP-21535的DMA性能进行了比较详尽的测试。测试数据如表1所示。
表1 21535的DMA实测数据
注:测试环境-DSP核心时钟300MHz,系统时钟120MHz,SDRAM为PC133标准。样本采样:各15次
从表1中的实测数据可以看出,DMA的速度均在18.7M双字/秒以上,最高速度达46.9M双字/秒,可以满足工程中高速采集的需要。从表中数据可以得出以下结论:
(1)DMA双向速度不对称,将源地址和目的地址交换后,速度会发生变化;
(2)低速向高速区域传输时,要比反向传输快;
(3)同类区域DMA一般比区域之间DMA要慢。如L1 DMA到L1,比L1 DMA到L2和SDRAM都要慢一些。其它区域也有类似现象。
(4)高速区域DMA速度并不一定快,
- 上一篇论文: 基于TMS320C54X的RS+变织+卷积的级联纠错码
- 下一篇论文: TLC320AC01与DSP的接口设计