EDA365电子工程师网

标题: 关于MAP文件的一点认识 [打印本页]

作者: xuzwg    时间: 2016-6-6 15:11
标题: 关于MAP文件的一点认识

. H. Y9 l% K3 }  B3 sMAP文件是CCS软件编译后产生的有关DSP用到所有程序、数据及IO空间的一种映射文件。
; w: y+ \; v5 r2 h
6 U$ p. u: ?9 [# k6 m6 q) G! T+ A8 Q" D一、生成方法
: p4 P$ P! m: \    MAP文件主要有两种生成方法,一种是由系统自动生成,默认文件名为所建立的项目名(如XXX为项目名)加上.map后缀xxx.map,另一种在CMD文件中指定生成MAP文件,操作方法为在MEMORY指令前面加上“-m abc.map”,文件名可以任意。
1 z7 S0 k, m! W. R) a+ V6 ]) l5 p7 i) n3 O5 \) n
二、文件格式
& |8 o% A& E: V    MAP文件大概分为文件头、内存配置、段映射、全局符号四部分。内存配置与CMD文件中的MEMORY指令关联,在CMD文件中定义的程序与数据区间定义,在该部分均可以找到对应,与CMD文件不同的时,在MAP文件中加入了一个实际使用的区间,即在程序中实际用到的空间长度。段映射部分与CMD文件中的SECTION指令关联,在该部分程序中所有的段实际映射的起始地址与实际长度均有详细说明。可以具体到程序中PROGMA指定的段和各个单独文件产生的OBJ文件。全局符号可以是程序使用的每一个函数、程序中定义的全局变量均可以在此找到对应的起始地址。MAP文件中采用两种方式列举,一种为按相应地址排列,另一种按全局符号字母排列。
/ Z% M& E8 {  K. W  ]! g8 r% {$ L
9 N2 ]  |" u& R; U* T6 ^三、存储地址
4 S7 M: m- X8 X1 b    MAP文件默认保存在所在项目下面,由CMD文件产生的MAP文件保存在该项目的DEBUG目录下面。' Q& G  z- ~# E, A: b1 F9 I5 G
" S2 P6 S/ d* h
样例如下(详细见附件):& a1 n: n2 i% s2 _9 v2 Y0 j4 z
******************************************************************************
9 c1 R$ `8 J' ~! S6 U        TMS320C2000 COFF Linker PC v4.1.0                     
- A( A& r3 B' B( R# m******************************************************************************. f& D6 X+ f' l* }
>> Linked Tue Apr 08 17:52:23 2008+ I2 f* [' m1 c. p. u& X9 O, J: _, a

; W5 G& o7 w3 p4 O+ M. J( {OUTPUT FILE NAME:   <./Debug/F2812.out>
$ ~; w* E9 y) l+ L1 bENTRY POINT SYMBOL: "_c_int00"  address: 003f83627 [- x# u, o, J' N& S0 @# O
6 Z; }' K% N" E8 l2 s
- m2 ^* D6 i3 N; F
MEMORY CONFIGURATION
/ V' O7 s  q2 ?' h( G1 `
& B* n# _7 T7 X5 l; V                  name            origin    length      used    attr    fill
; j) G2 e3 C- }0 ^8 u+ t" ]. O         ----------------------  --------  ---------  --------  ----  --------# a, O6 W8 W1 J' I8 T
PAGE  0: RAMM0                   00000000   00000400  00000000  RWIX
# ]* m2 ?3 k6 F2 i         BEGIN                   003f8000   00000002  00000000  RWIX
. c1 B5 J+ C7 g5 s- G         PRAMH0                  003f8002   00000ffe  000004a1  RWIX' u' q: M  w3 D# G& D5 [! v
         RESET                   003fffc0   00000002  00000000  RWIX8 |8 I6 z3 f$ ]- T

6 Z) V) u3 ^0 j; x' W- V6 cPAGE  1: RAMM1                   00000400   00000400  00000400  RWIX
, S9 H* A  ]) F# Y         DEV_EMU                 00000880   00000180  000000d2  RWIX; M8 e7 c/ c* R5 l
         FLASH_REGS              00000a80   00000060  00000008  RWIX
5 ]1 \1 j! q8 j* d         CSM                     00000ae0   00000010  00000010  RWIX, Z- o8 r! o5 w
         XINTF                   00000b20   00000020  00000020  RWIX5 X- e. U9 r' a, _. m, p% M
         CPU_TIMER0              00000c00   00000008  00000008  RWIX- a9 E  d$ ], j) B
         PIE_CTRL                00000ce0   00000020  0000001a  RWIX0 ~9 I  E  E: J
         PIE_VECT                00000d00   00000100  00000100  RWIX
7 @5 |0 D2 o* G6 E" B4 ^         ECANA                   00006000   00000040  00000034  RWIX
6 }* E$ r' s/ g3 Q) D5 p  J( F         ECANA_LAM               00006040   00000040  00000040  RWIX
7 `; K" d( _  w         ECANA_MOTS              00006080   00000040  00000040  RWIX
& `! b' h, r9 n' o0 S9 W         ECANA_MOTO              000060c0   00000040  00000040  RWIX
: m  {  w( e- b  K; z) q7 V/ O         ECANA_MBOX              00006100   00000100  00000100  RWIX' O5 Y1 ~, k$ J! U3 S% A& @- I
         SYSTEM                  00007010   00000020  00000020  RWIX
) m1 D& E. s+ y7 e7 J4 M         SPIA                    00007040   00000010  00000010  RWIX6 K" k+ Z4 S/ f* v% W
         SCIA                    00007050   00000010  00000010  RWIX2 |9 Q( R. |9 M5 K; u6 b/ `1 j7 _
         XINTRUPT                00007070   00000010  00000010  RWIX
! [' v% e, P8 w; w         GPIOMUX                 000070c0   00000020  00000020  RWIX
9 B$ q% y2 E. i         GPIODAT                 000070e0   00000020  00000020  RWIX4 R2 B4 Q7 w4 Q' O2 o( C6 O
         ADC                     00007100   00000020  0000001a  RWIX: ~* I2 l8 m/ g* t. A
         EVA                     00007400   00000040  00000032  RWIX) q* ?" A3 T. Z( A' J
         EVB                     00007500   00000040  00000032  RWIX
, \6 K3 I5 E3 r         SCIB                    00007750   00000010  00000010  RWIX
  x0 u. o( D8 L0 V         MCBSPA                  00007800   00000040  00000025  RWIX
, m" X  Q4 A* L+ ~, t+ ^" D         RAML0L                  00008000   00000800  00000084  RWIX) o1 W# X( v( {0 E) g
         RAML0H                  00008800   00000800  00000000  RWIX+ ]/ [" B! o& W$ v) X# @; y4 z8 p
         CSM_PWL                 003f7ff8   00000008  00000008  RWIX0 E& t7 W9 Y. L* O( h
         DRAMH0                  003f9000   00001000  00000112  RWIX
& I& S/ a. U/ F8 b9 b& n6 M* Z" ?1 {* x0 f! ~( Y' n
" ]$ q6 c$ [" y* w" t) G% x
SECTION ALLOCATION MAP; k& E0 O& z" R6 O  m: ?

" F& j) W6 D# y# p3 Ioutput                                  attributes/5 q& m4 [! J5 h) ^. @6 c9 I
section   page    origin      length       input sections7 k2 u0 Z; ^1 B3 k2 K
--------  ----  ----------  ----------   ----------------) p; L) G0 }/ V4 r
.switch    0    00000000    00000000     UNINITIALIZED/ L' s4 T+ u+ D+ \
. k; }1 x) L( X( j5 t6 F+ V
codestart
7 W1 w& Y+ T! k/ P; S) B( \5 @*          0    003f8000    00000000     UNINITIALIZED
# f% r: {. g4 {' X5 w& Q
+ K1 i" s/ o4 N  J# N2 Q.pinit     0    003f8002    00000000     UNINITIALIZED
. s! m+ Z% X4 [$ Q" Z6 C/ h% [% a0 E/ }6 t! f
.text      0    003f8002    00000472     
8 Z9 m2 L2 ]5 R; ^% p$ m# p                  003f8002    00000012     DSP281x_Adc.obj (.text)! S' ^0 \: _* v& @* v: B; ]
                  003f8014    0000004b     DSP281x_CpuTimers.obj (.text)) f6 p) C4 Q5 `+ ^( L: N
                  003f805f    0000014f     DSP281x_DefaultIsr.obj (.text)
/ h; ~$ i; h# @& Z: ^                  003f81ae    000000b4     DSP281x_Ev.obj (.text)
! n, G0 ^5 r+ y0 q                  003f8262    00000014     DSP281x_Gpio.obj (.text)1 }$ R* t, x* O5 a- v
                  003f8276    00000015     DSP281x_MemCopy.obj (.text)% D/ u: O/ E  S& y
                  003f828b    00000028     DSP281x_PieCtrl.obj (.text)
1 _, L5 b  _  Q7 q                  003f82b3    00000020     DSP281x_PieVect.obj (.text)/ v) J- j4 c- _0 Z
                  003f82d3    00000051     DSP281x_SysCtrl.obj (.text)
$ G) B$ D, t8 W) H4 c& l2 p                  003f8324    0000003e     Example_281xCpuTimer.obj (.text)0 d; i& i( n3 A/ _* D) X# N( m, z
                  003f8362    00000044     rts2800.lib : boot.obj (.text): c( E0 ~& _) V" k' O2 w+ y0 L
                  003f83a6    0000003d                 : exit.obj (.text)
+ N" V  c' p8 i# A8 g/ g) Q# u$ C                  003f83e3    0000005a                 : fs_mpy.obj (.text). W# ?3 ~2 S0 w7 t& ~
                  003f843d    00000021                 : fs_toul.obj (.text)
$ f2 r: Q: \) ~+ M                  003f845e    00000007                 : _lock.obj (.text)' s( Z0 {2 Z2 j5 d+ d- p$ J
                  003f8465    0000000f                 : args_main.obj (.text)0 m$ ~5 L1 \+ z6 |! g
。。。
9 _$ C8 c' |9 x4 c6 c5 Q' U3 L  S4 ^) S  I& H, b
GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name ; T- h+ [( I, B% c0 I
) g5 D5 N6 L8 N  _4 Z; z6 H# l% ^
address    name6 w4 J8 v/ c& W4 P$ [
--------   ----. |8 j+ K- ?. m: w6 R3 b3 l
00008000   .bss' a: {1 [2 j- g. ?# H
00000000   .data
, z7 Z& Y5 j/ v; Y2 J& P1 s003f8002   .text/ Q( z6 a+ k7 V& u2 I6 R
003f83c5   C$$EXIT/ G5 Q' ?" G; k( ?  |' K+ C
003f83e3   FS$$MPY
$ }8 I. e7 T' o1 J003f843d   FS$$TOUL  c3 f3 d: F& h8 }- M1 U; Y5 v; ]
003f80d2   _ADCINT_ISR
; l: I: m' _( i7 e00007100   _AdcRegs% v) o7 O" l3 D+ M1 _2 B  @
003f8118   _CAPINT1_ISR
/ @( A* K) a- w' p
* V3 ]9 k5 h1 @。。。: P9 W3 z8 o# X1 M) {. F1 ]% H
  ?9 o' B# g2 y8 L2 V
GLOBAL SYMBOLS: SORTED BY Symbol Address
* \' b5 D+ s% d% x/ c; p2 f$ ^& e1 J! S$ O0 S' T. o! ~  W
address    name$ ^! w& v* Q9 @4 Q& s# y
--------   ----4 r, C6 \- F6 M! h8 g; f# Z
00000000   ___edata__* e- j% M9 w/ P- v
00000000   edata. l& _) _; d" M! |% {+ i* \8 F
00000000   ___data__- j  W. ]2 P- {6 p) V$ D7 v
00000000   .data6 [  j  S& h; U) f8 I5 F
00000400   __STACK_SIZE
) V9 Y6 c3 w' V  n6 ^00000880   _DevEmuRegs
. [, U& ~7 D$ J& [6 U4 z00000a80   _FlashRegs% F0 e9 ?; y9 z6 g/ g6 ?! J
00000ae0   _CsmRegs

F2812.rar

3.22 KB, 下载次数: 0, 下载积分: 威望 -5


作者: Abricy    时间: 2016-6-6 15:20
学习中,谢谢分享- @4 O+ a* E) ^

作者: 10929390    时间: 2016-6-8 15:52
学习中,谢谢分享4 |. H3 I+ o4 r9 q7 m1 z





欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/) Powered by Discuz! X3.2