懂DSP的来

会DSP的帮忙

MEMORY CONFIGURATION
name origin length used attr fill
---------------------- -------- --------- -------- ---- --------
PAGE 0: VECT 00000080 00000080 00000000 RWIX
PRAM 00000100 00001f00 0000000a RWIX
PAGE 1: DRAM 00002000 00001000 00000003 RWIX

这个是我的MAP文件
能告诉我怎么看出来程序所占用的长度是 b 呢

原来的CMD文件
MEMORY
{
PAGE 0:
VECT : o=80h,l=80h
PRAM : o=100h,l=1f00h
PAGE 1:
DRAM : o=2000h,l=1000h
}
SECTIONS
{
.text : {}> PRAM PAGE 0
.data : {}> PRAM PAGE 0
.cinit : {}> PRAM PAGE 0
.switch : {}> PRAM PAGE 0
.const : {}> DRAM PAGE 1
.bss : {}> DRAM PAGE 1
.stack : {}> DRAM PAGE 1
.vectors: {}> VECT PAGE 0
}

本人不懂DSP,但是程序的本质是不变的。
你的MAP文件格式看看也就是到说明什么了。
我来给你分析一下(纯粹是临场发挥,有误的地方请无情的指正。)

(重新整理你的MEMORY CONFIGURATION,这样更清晰)
MEMORY CONFIGURATION
name origin length used attr fill
PAGE 0: VECT 00000080 00000080 00000000 RWIX ????
PRAM 00000100 00001f00 0000000a RWIX ????
PAGE 1: DRAM 00002000 00001000 00000003 RWIX ????

可见
内存页面大小为8KB(Page1从00002000H开始)

80H偏移处大小80H的内存(此部分应该是你的DSP自带的中断向量专用存储区)存储中断向量,用掉00H的空间。

100H偏移处大小1F00H的内存(此部分极可能是你的DSP自带的程序代码专用的存储区)存储程序代码,用掉0AH大小,你的程序代码大小就是0AH,即10个字节。

2000H偏移处大小1000H的内存(可能是你的DSP自带的随机存储器,也可能外部存储器的,是个自由存储区,你的程序应该可以任意访问)存储程序运行时使用的数据,用掉03H,就是说你的程序加载完毕后,会在这个存储区首先分配掉03H的大小(变量什么的等等。),程序运行过程中还会在这个存储区消耗掉更多内存(看你的程序了)。

MEMORY
{
PAGE 0:
VECT : o=80h,l=80h
PRAM : o=100h,l=1f00h
PAGE 1:
DRAM : o=2000h,l=1000h
}
说明你有哪些存储区。

SECTIONS
{
.text : {}> PRAM PAGE 0
.data : {}> PRAM PAGE 0
.cinit : {}> PRAM PAGE 0
.switch : {}> PRAM PAGE 0
.const : {}> DRAM PAGE 1
.bss : {}> DRAM PAGE 1
.stack : {}> DRAM PAGE 1
.vectors: {}> VECT PAGE 0
}

说明你程序的各个段分配在那个页面。

前面说了,你的程序代码大小0AH,也就是10个字节,加载后就会分配掉3字节的自由内存,运行时的情况看你的程序决定。

回答完毕
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-11-01
问题不太清楚哦
相似回答