<br />本文来自于HELLODSP交流网 作者:huttu<br /><br />近来有很多朋友问及MAP文件,下面我就对MAP文件的一点理解和大家分享。<br /><br />MAP文件是CCS软件编译后产生的有关DSP用到所有程序、数据及IO空间的一种映射文件。<br /><br />一、生成方法<br /> MAP文件主要有两种生成方法,一种是由系统自动生成,默认文件名为所建立的项目名(如XXX为项目名)加上.map后缀xxx.map,另一种在CMD文件中指定生成MAP文件,操作方法为在MEMORY指令前面加上“-m abc.map”,文件名可以任意。<br /><br />二、文件格式<br /> MAP文件大概分为文件头、内存配置、段映射、全局符号四部分。内存配置与CMD文件中的MEMORY指令关联,在CMD文件中定义的程序与数据区间定义,在该部分均可以找到对应,与CMD文件不同的时,在MAP文件中加入了一个实际使用的区间,即在程序中实际用到的空间长度。段映射部分与CMD文件中的SECTION指令关联,在该部分程序中所有的段实际映射的起始地址与实际长度均有详细说明。可以具体到程序中PROGMA指定的段和各个单独文件产生的OBJ文件。全局符号可以是程序使用的每一个函数、程序中定义的全局变量均可以在此找到对应的起始地址。MAP文件中采用两种方式列举,一种为按相应地址排列,另一种按全局符号字母排列。<br /><br />三、存储地址<br /> MAP文件默认保存在所在项目下面,由CMD文件产生的MAP文件保存在该项目的DEBUG目录下面。<br /><br />样例如下(详细见附件):<br />******************************************************************************<br /> TMS320C2000 COFF Linker PC v4.1.0 <br />******************************************************************************<br />>> Linked Tue Apr 08 17:52:23 2008<br /><br />OUTPUT FILE NAME: <./Debug/F2812.out><br />ENTRY POINT SYMBOL: "_c_int00" address: 003f8362<br /><br /><br />MEMORY CONFIGURATION<br /><br /> name origin length used attr fill<br /> ---------------------- -------- --------- -------- ---- --------<br />PAGE 0: RAMM0 00000000 00000400 00000000 RWIX<br /> BEGIN 003f8000 00000002 00000000 RWIX<br /> PRAMH0 003f8002 00000ffe 000004a1 RWIX<br /> RESET 003fffc0 00000002 00000000 RWIX<br /><br />PAGE 1: RAMM1 00000400 00000400 00000400 RWIX<br /> DEV_EMU 00000880 00000180 000000d2 RWIX<br /> FLASH_REGS 00000a80 00000060 00000008 RWIX<br /> CSM 00000ae0 00000010 00000010 RWIX<br /> XINTF 00000b20 00000020 00000020 RWIX<br /> CPU_TIMER0 00000c00 00000008 00000008 RWIX<br /> PIE_CTRL 00000ce0 00000020 0000001a RWIX<br /> PIE_VECT 00000d00 00000100 00000100 RWIX<br /> ECANA 00006000 00000040 00000034 RWIX<br /> ECANA_LAM 00006040 00000040 00000040 RWIX<br /> ECANA_MOTS 00006080 00000040 00000040 RWIX<br /> ECANA_MOTO 000060c0 00000040 00000040 RWIX<br /> ECANA_MBOX 00006100 00000100 00000100 RWIX<br /> SYSTEM 00007010 00000020 00000020 RWIX<br /> SPIA 00007040 00000010 00000010 RWIX<br /> SCIA 00007050 00000010 00000010 RWIX<br /> XINTRUPT 00007070 00000010 00000010 RWIX<br /> GPIOMUX 000070c0 00000020 00000020 RWIX<br /> GPIODAT 000070e0 00000020 00000020 RWIX<br /> ADC 00007100 00000020 0000001a RWIX<br /> EVA 00007400 00000040 00000032 RWIX<br /> EVB 00007500 00000040 00000032 RWIX<br /> SCIB 00007750 00000010 00000010 RWIX<br /> MCBSPA 00007800 00000040 00000025 RWIX<br /> RAML0L 00008000 00000800 00000084 RWIX<br /> RAML0H 00008800 00000800 00000000 RWIX<br /> CSM_PWL 003f7ff8 00000008 00000008 RWIX<br /> DRAMH0 003f9000 00001000 00000112 RWIX<br /><br /><br />SECTION ALLOCATION MAP<br /><br />output attributes/<br />section page origin length input sections<br />-------- ---- ---------- ---------- ----------------<br />.switch 0 00000000 00000000 UNINITIALIZED<br /><br />codestart <br />* 0 003f8000 00000000 UNINITIALIZED<br /><br />.pinit 0 003f8002 00000000 UNINITIALIZED<br /><br />.text 0 003f8002 00000472 <br /> 003f8002 00000012 DSP281x_Adc.obj (.text)<br /> 003f8014 0000004b DSP281x_CpuTimers.obj (.text)<br /> 003f805f 0000014f DSP281x_DefaultIsr.obj (.text)<br /> 003f81ae 000000b4 DSP281x_Ev.obj (.text)<br /> 003f8262 00000014 DSP281x_Gpio.obj (.text)<br /> 003f8276 00000015 DSP281x_MemCopy.obj (.text)<br /> 003f828b 00000028 DSP281x_PieCtrl.obj (.text)<br /> 003f82b3 00000020 DSP281x_PieVect.obj (.text)<br /> 003f82d3 00000051 DSP281x_SysCtrl.obj (.text)<br /> 003f8324 0000003e Example_281xCpuTimer.obj (.text)<br /> 003f8362 00000044 rts2800.lib : boot.obj (.text)<br /> 003f83a6 0000003d : exit.obj (.text)<br /> 003f83e3 0000005a : fs_mpy.obj (.text)<br /> 003f843d 00000021 : fs_toul.obj (.text)<br /> 003f845e 00000007 : _lock.obj (.text)<br /> 003f8465 0000000f : args_main.obj (.text)<br />。。。<br /><br />GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name <br /><br />address name<br />-------- ----<br />00008000 .bss<br />00000000 .data<br />003f8002 .text<br />003f83c5 C$$EXIT<br />003f83e3 FS$$MPY<br />003f843d FS$$TOUL<br />003f80d2 _ADCINT_ISR<br />00007100 _AdcRegs<br />003f8118 _CAPINT1_ISR<br /><br />。。。<br /><br />GLOBAL SYMBOLS: SORTED BY Symbol Address <br /><br />address name<br />-------- ----<br />00000000 ___edata__<br />00000000 edata<br />00000000 ___data__<br />00000000 .data<br />00000400 __STACK_SIZE<br />00000880 _DevEmuRegs<br />00000a80 _FlashRegs<br />00000ae0 _CsmRegs<br />转载请注明出自DSP交流网 DSP学习第一论坛 DSP技术应用与推广平台 DSP开发服务平台 http://www.hellodsp.com/bbs/,本贴地址:http://www.hellodsp.com/bbs/viewthread.php?tid=7959<br /><br /><br /><br /> |
|