本人初学DSP,学习的是TMS320VC5402, 最近两周一直在研究DMA控制传送数据这块,遇到比较棘手的问题就是关于DSP存储器空间映射,感觉脑子里面一直没理清,写CMD老是有问题,有几个问题想请教一下各位前辈:
1)用CSS做软件仿真的时候存储器空间如何分配的?只考虑片内存储器资源的映射吗?会有外部存储扩展一说吗?
2 ) DMA传送能不能软件仿真呢?
3)我实现了数据存储器到数据存储器的DMA传送,但是始终没实现程序存储器到数据存储器的DMA传送,程序老是报错,我觉得是CMD文件编写的问题,错误基本上是关于存储器映射的问题,我把程序贴上来, 恳请大家帮我看看那里写的有问题,帮我解决一下 ,不胜感激!
下面是源文件********************程序存储器到数据存储器的DMA传送(子库寻址不带自动递增)***********************
.title "DMA2.asm"
.mmregs
.include "reg.h"
; .global buffer, length
.bss x, 16
.def _init_dmac
.data
table: .word 1,2,3,4,5,6,7,8,9,10
.text
_init_dmac:
STM DMSRCP,DMSA ;设置源程序页1
STM #1h,DMSDN
STM DMSRC0,DMSA ;设置源地址为8000h
STM #8000h,DMSDN ;程序空间地址18000h的低16位
STM DMDST0,DMSA ;设置目的地址为80h
STM #3000h,DMSDN
STM DMCTR0,DMSA ;设置传送次数为Ah次
STM #(5h-1),DMSDN
STM DMSFC0,DMSA ;设置同步事件和帧计数寄存器
STM #0000000000000000b,DMSDN
STM DMMCR0,DMSA ;设置传送方式控制寄存器
STM #0000000100000101b,DMSDN
STM #0000000100000001b,DMPREC ;设置通道优先级和使能控制寄存器
end B end
.end
下面是CMD文件 -o DMA2.out
-m DMA2.map
-e _init_dmac
MEMORY
{
PAGE 0:
EPROM : org=1700h, len=100h
DEPROM: org=18000h, len=20h
PAGE 1:
SPRAM : org=0060h, len=20h
DARAM : org=3000h, len=20h
}
SECTIONS
{
.text: >EPROM PAGE 0
.bss : >DARAM PAGE 1
.data: >DEPROM PAGE 0
}
|