This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320C5504: 内存分配、汇编程序

Part Number: TMS320C5504

在使用TMS320C54x,“完成a1*a2=0.4*(-0.9)运算,程序中保留10个数据存储单元”时,在DeBug模式下,单步调试到STH A,*(product)这一行的下一行时出现“No source available for "0x4ca6" ”错误,是否是代码内存分配错误,常规的内存分配是怎么样的,具体代码如下:

asm文件

.title"FD.asm"
.mmregs
.def CodeStart
STACK: .usect "STACK",100
.bss x,2
.bss y,2
.bss z,2
.bss ep,1
.bss mp,1
.bss product,1
.bss temp,1
.bss a1,1
.bss a2,1
.bss b1,1
.bss b2,1
.bss c1,1
.bss c2,1
.data
table: .word 4*32768/10 ;0.4
.word -9*32768/10 ;-0.9
.text
CodeStart: STM #STACK+100,sp
MVPD table,*(a1)
MVPD table+1,*(a2)
LD *(a1),16,A
EXP A
ST T,*(b1)
NORM A
STH A,*(c1)
LD *(a2),16,A
EXP A
ST T,*(b2)
NORM A
STH A,*(2)
CALL MULT
END: B END
MULT: SSBX FRCT
SSBX SXM
LD *(b1),A
ADD *(b2),A
STL A,*(ep)
LD *(c1),T
MPY *(c2),A
EXP A
ST T,*(temp)
NORM A
STH A,*(mp)
LD *(temp),A
ADD *(ep),A
STL A,*(ep)
NEG A
STL A,*(temp)
LD *(temp),T
LD *(mp),16,A
NORM A
STH A,*(product)
.end

cmd文件

FD.obj
-o FD.out
-m FD.map
-e CodeStart
MEMORY
{
PAGE 0: VECS: origin = 4800h, length = 0100h
PRAM: origin = 4C00h, length = 3000h

PAGE 1: SCRATCH: origin = 0060h, length = 0020h
DATA: origin = 3000h, length = 0100h
STACK: origin = 3100h, length = 0500h
EXRAM: origin = 3600h, length = 0900h
SYSMEN: origin = 4600h, length = 0400h
BEGIN: origin = 0x080000,length = 0x000002
}
SECTIONS
{

.cinit > PRAM PAGE 0
.text > PRAM PAGE 0
.vectors > VECS PAGE 0

STACK > STACK PAGE 1
.trap > SCRATCH PAGE 1

.const > EXRAM PAGE 1
.data > EXRAM PAGE 1
.bss > EXRAM PAGE 1
.cio > EXRAM PAGE 1

.switch > EXRAM PAGE 1
}