西工大DSP定点小数乘法.docx
《西工大DSP定点小数乘法.docx》由会员分享,可在线阅读,更多相关《西工大DSP定点小数乘法.docx(12页珍藏版)》请在冰豆网上搜索。
西工大DSP定点小数乘法
DSP实验报告
———定点小数乘法
实验目的
1、自行安装CCS3.3版本,配置和运行CCS;
2、熟悉CCS开发环境,访问读写DSP寄存器AC0-AC3,AR0-AR7,T0-T3;
3、结合c5510的存储器空间分配,访问DSP的内部RAM;
4、编写一个简单的定点DSP程序,计算一个式子。
实验结果
CCS安装运行后如下:
初始界面选择C5510simulator
建立新工程;
建立新汇编语言源程序文件;
建立CMD文件;
访问读写寄存器AC0-AC3,AR0-AR7,PC,T0-T3:
计算一个简单乘加算式
ASM源程序如下:
.text
.globalstart
start:
MOV#0006h,AC0H;Q6
MOV#0026h,AC1H;Q5
MPYAC1,AC0
MOV#0023h,AC1H;Q0
MOV#0014h,AC2H;Q0
MPYAC2,AC1
MOV#03C0h,AC2H;Q6
MOV#0033h,AC3H;Q5
MPYAC3,AC2
SFTSCAC1,#11,AC3
ADDAC0,AC3
ADDAC2,AC3
运行后寄存器的结果如下:
计算得结果应为724.12,但由于修改小数点的位置使计算结果有些偏差。
CMD文件如下:
-estart
-stack500
-sysstack500
MEMORY
{
MMR:
o=0x000000l=0x0000c0/*192BMemoryMappedRegisters*/
DARAM0:
o=0x0000C0l=0x001F40/*8kBDualAccessRAM0*/
DARAM1:
o=0x002000l=0x002000/*8kBDualAccessRAM1*/
DARAM2:
o=0x004000l=0x002000/*8kBDualAccessRAM2*/
DARAM3:
o=0x006000l=0x002000/*8kBDualAccessRAM3*/
DARAM4:
o=0x008000l=0x002000/*8kBDualAccessRAM4*/
DARAM5:
o=0x00A000l=0x002000/*8kBDualAccessRAM5*/
DARAM6:
o=0x00C000l=0x002000/*8kBDualAccessRAM6*/
DARAM7:
o=0x00E000l=0x002000/*8kBDualAccessRAM7*/
SARAM0:
o=0x010000l=0x002000/*8kBSingleAccessRAM0*/
SARAM1:
o=0x012000l=0x002000/*8kBSingleAccessRAM1*/
SARAM2:
o=0x014000l=0x002000/*8kBSingleAccessRAM2*/
SARAM3:
o=0x016000l=0x002000/*8kBSingleAccessRAM3*/
SARAM4:
o=0x018000l=0x002000/*8kBSingleAccessRAM4*/
SARAM5:
o=0x01A000l=0x002000/*8kBSingleAccessRAM5*/
SARAM6:
o=0x01C000l=0x002000/*8kBSingleAccessRAM6*/
SARAM7:
o=0x01E000l=0x002000/*8kBSingleAccessRAM7*/
SARAM8:
o=0x020000l=0x002000/*8kBSingleAccessRAM8*/
SARAM9:
o=0x022000l=0x002000/*8kBSingleAccessRAM9*/
SARAM10:
o=0x024000l=0x002000/*8kBSingleAccessRAM10*/
SARAM11:
o=0x026000l=0x002000/*8kBSingleAccessRAM11*/
SARAM12:
o=0x028000l=0x002000/*8kBSingleAccessRAM12*/
SARAM13:
o=0x02A000l=0x002000/*8kBSingleAccessRAM13*/
SARAM14:
o=0x02C000l=0x002000/*8kBSingleAccessRAM14*/
SARAM15:
o=0x02E000l=0x002000/*8kBSingleAccessRAM15*/
SARAM16:
o=0x030000l=0x002000/*8kBSingleAccessRAM16*/
SARAM17:
o=0x032000l=0x002000/*8kBSingleAccessRAM17*/
SARAM18:
o=0x034000l=0x002000/*8kBSingleAccessRAM18*/
SARAM19:
o=0x036000l=0x002000/*8kBSingleAccessRAM19*/
SARAM20:
o=0x038000l=0x002000/*8kBSingleAccessRAM20*/
SARAM21:
o=0x03A000l=0x002000/*8kBSingleAccessRAM21*/
SARAM22:
o=0x03C000l=0x002000/*8kBSingleAccessRAM22*/
SARAM23:
o=0x03E000l=0x002000/*8kBSingleAccessRAM23*/
CE0:
o=0x040000l=0x3C0000/*4MBCE0externalmemoryspace*/
CE1:
o=0x400000l=0x400000/*4MBCE1externalmemoryspace*/
CE2:
o=0x800000l=0x400000/*4MBCE2externalmemoryspace*/
CE3:
o=0xC00000l=0x3F0000/*4MBCE3externalmemoryspace*/
ROM:
o=0xFF0000l=0x00FF00/*64kBROM(MPNMC=0)orCE3(MPNMC=1)*/
VECS:
o=0xFFFF00l=0x000100/*resetvector*/
}
SECTIONS
{
vectors(NOLOAD)>VECS/*IfMPNMC=1,removetheNOLOADdirective*/
.cinit>DARAM0
.text>DARAM1
.stack>DARAM0
.sysstack>DARAM0
.sysmem>DARAM4
.data>DARAM4
.cio>DARAM0
.bss>DARAM5
.const>DARAM0
}
MAP文件:
******************************************************************************
TMS320C55xLinkerPCv4.2.3
******************************************************************************
>>LinkedMonApr819:
00:
232016
OUTPUTFILENAME:
<./Debug/test2.out>
ENTRYPOINTSYMBOL:
"start"address:
00002000
MEMORYCONFIGURATION
nameoriginlengthusedunusedattrfill
(bytes)(bytes)(bytes)(bytes)
-------------------------------------------------------------------
MMR00000000000000c000000000000000c0RWIX
DARAM0000000c000001f400000000000001f40RWIX
DARAM100002000000020000000002100001fdfRWIX
DARAM200004000000020000000000000002000RWIX
DARAM300006000000020000000000000002000RWIX
DARAM400008000000020000000000000002000RWIX
DARAM50000a000000020000000000000002000RWIX
DARAM60000c000000020000000000000002000RWIX
DARAM70000e000000020000000000000002000RWIX
SARAM000010000000020000000000000002000RWIX
SARAM100012000000020000000000000002000RWIX
SARAM200014000000020000000000000002000RWIX
SARAM300016000000020000000000000002000RWIX
SARAM400018000000020000000000000002000RWIX
SARAM50001a000000020000000000000002000RWIX
SARAM60001c000000020000000000000002000RWIX
SARAM70001e000000020000000000000002000RWIX
SARAM800020000000020000000000000002000RWIX
SARAM900022000000020000000000000002000RWIX
SARAM1000024000000020000000000000002000RWIX
SARAM1100026000000020000000000000002000RWIX
SARAM1200028000000020000000000000002000RWIX
SARAM130002a000000020000000000000002000RWIX
SARAM140002c000000020000000000000002000RWIX
SARAM150002e000000020000000000000002000RWIX
SARAM1600030000000020000000000000002000RWIX
SARAM1700032000000020000000000000002000RWIX
SARAM1800034000000020000000000000002000RWIX
SARAM1900036000000020000000000000002000RWIX
SARAM2000038000000020000000000000002000RWIX
SARAM210003a000000020000000000000002000RWIX
SARAM220003c000000020000000000000002000RWIX
SARAM230003e000000020000000000000002000RWIX
CE000040000003c000000000000003c0000RWIX
CE100400000004000000000000000400000RWIX
CE200800000004000000000000000400000RWIX
CE300c00000003f000000000000003f0000RWIX
ROM00ff00000000ff00000000000000ff00RWIX
VECS00ffff00000001000000000000000100RWIX
SECTIONALLOCATIONMAP
(Addressessurroundedby[]'saredisplayedforconvenienceonly!
)
outputattributes/
sectionpageorgn(bytes)orgn(words)len(bytes)len(words)inputsections
--------------------------------------------------------------------
.cinit0[000000c0]00000060*00000000UNINITIALIZED
.text000002000[00001000]00000021*
00002000[00001000]00000020*test2.obj(.text)
00002020[00001010]00000001*--HOLE--[fill=20]
.data0[00008000]00004000*00000000UNINITIALIZED
.bss0[0000a000]00005000*00000000UNINITIALIZED
GLOBALSYMBOLS:
SORTEDALPHABETICALLYBYName
abs.value/
byteaddrwordaddrname
----------------------
00000002$TI_capability$C5500$CallingConvention
00000001$TI_capability$C5500$MemoryModel
00000001$TI_capability_requires_rev2
00005000.bss
00004000.data
00002000.text
ffffffff___binit__
00005000___bss__
ffffffff___c_args__
ffffffff___cinit__
00004000___data__
00004000___edata__
00005000___end__
00002021___etext__
ffffffff___pinit__
00002000___text__
ffffffffbinit
ffffffffcinit
00004000edata
00005000end
00002021etext
ffffffffpinit
00002000start
GLOBALSYMBOLS:
SORTEDBYSymbolAddress
abs.value/
byteaddrwordaddrname
----------------------
00000001$TI_capability$C5500$MemoryModel
00000001$TI_capability_requires_rev2
00000002$TI_capability$C5500$CallingConvention
00002000.text
00002000___text__
00002000start
00002021___etext__
00002021etext
00004000.data
00004000___data__
00004000___edata__
00004000edata
00005000.bss
00005000___bss__
00005000___end__
00005000end
ffffffff___binit__
ffffffff___c_args__
ffffffff___cinit__
ffffffff___pinit__
ffffffffbinit
ffffffffcinit
ffffffffpinit
[23symbols]