会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
}
你的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字节的自由内存,运行时的情况看你的程序决定。
回答完毕