找回密码
 注册
关于网站域名变更的通知
查看: 405|回复: 3
打印 上一主题 下一主题

关于MAP文件的一点认识

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-6-6 15:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
2 z# W' I& C( \2 r, k
MAP文件是CCS软件编译后产生的有关DSP用到所有程序、数据及IO空间的一种映射文件。
( s) m3 B$ j% F; x6 V1 ]
3 |/ }8 C2 e/ T一、生成方法
& j0 ^6 ]8 i, g    MAP文件主要有两种生成方法,一种是由系统自动生成,默认文件名为所建立的项目名(如XXX为项目名)加上.map后缀xxx.map,另一种在CMD文件中指定生成MAP文件,操作方法为在MEMORY指令前面加上“-m abc.map”,文件名可以任意。8 }/ D4 i* n* I" o( b% f5 l/ d' s& e0 P4 N

: r5 \& \$ s* U1 y) w, \二、文件格式4 G, }' f8 f# h4 s. Q1 Q
    MAP文件大概分为文件头、内存配置、段映射、全局符号四部分。内存配置与CMD文件中的MEMORY指令关联,在CMD文件中定义的程序与数据区间定义,在该部分均可以找到对应,与CMD文件不同的时,在MAP文件中加入了一个实际使用的区间,即在程序中实际用到的空间长度。段映射部分与CMD文件中的SECTION指令关联,在该部分程序中所有的段实际映射的起始地址与实际长度均有详细说明。可以具体到程序中PROGMA指定的段和各个单独文件产生的OBJ文件。全局符号可以是程序使用的每一个函数、程序中定义的全局变量均可以在此找到对应的起始地址。MAP文件中采用两种方式列举,一种为按相应地址排列,另一种按全局符号字母排列。
7 R' G5 S- s6 C5 t2 i- K; j
9 U- B2 o# V% r三、存储地址
/ O. \- t- J. N    MAP文件默认保存在所在项目下面,由CMD文件产生的MAP文件保存在该项目的DEBUG目录下面。
% k/ b0 H+ ^8 w% t6 V
( x- e8 Z8 F. B% ]" [4 Z+ I+ X样例如下(详细见附件):
- v0 `6 Y, l3 _6 x+ E; W4 G" {" y3 h; N******************************************************************************+ ?- I( \% h6 \: O0 S5 }$ k9 J; }
        TMS320C2000 COFF Linker PC v4.1.0                      + }( u( e/ M7 k0 i4 Y4 B
******************************************************************************% q# x/ h4 I1 i- v: I) g! Q
>> Linked Tue Apr 08 17:52:23 20088 n# l8 {8 v  O/ J7 c) x* E

6 K% o7 d( a$ a. AOUTPUT FILE NAME:   <./Debug/F2812.out>) W$ {+ g0 H+ {# H7 e
ENTRY POINT SYMBOL: "_c_int00"  address: 003f83620 `' C$ E7 E- d5 }! _, o
9 f- l+ d& D& E% S/ l4 V1 K) M
9 f7 q7 {, z7 c1 H: c8 v
MEMORY CONFIGURATION, o/ `# e1 g2 J1 Z8 ~

1 B; ]3 |/ T1 Q. E                  name            origin    length      used    attr    fill
3 O4 c1 J- Y; p: M* r  O: c         ----------------------  --------  ---------  --------  ----  --------! l# Q" E$ M* F
PAGE  0: RAMM0                   00000000   00000400  00000000  RWIX
: x+ e! s3 I: h8 @# ^: I         BEGIN                   003f8000   00000002  00000000  RWIX
: e7 {4 I- @4 z+ X* h         PRAMH0                  003f8002   00000ffe  000004a1  RWIX
5 p2 O& F, k" G3 W         RESET                   003fffc0   00000002  00000000  RWIX2 @2 }' d. d5 e- S$ B* |
! E* M. R3 `8 q0 g  d4 ^
PAGE  1: RAMM1                   00000400   00000400  00000400  RWIX! M; D. k5 H( n( B
         DEV_EMU                 00000880   00000180  000000d2  RWIX( D1 b4 R3 W9 V
         FLASH_REGS              00000a80   00000060  00000008  RWIX, {, q0 V. B+ i5 j' R, D
         CSM                     00000ae0   00000010  00000010  RWIX
2 U, `- Q# b* |( a. g         XINTF                   00000b20   00000020  00000020  RWIX
: ~! e; A+ v% i2 f+ U( I) T         CPU_TIMER0              00000c00   00000008  00000008  RWIX" E6 s' ]4 X. X3 H, ~7 C) H
         PIE_CTRL                00000ce0   00000020  0000001a  RWIX; s1 A+ x; b# K2 v
         PIE_VECT                00000d00   00000100  00000100  RWIX6 ?% _  l  B# y  G1 `# s
         ECANA                   00006000   00000040  00000034  RWIX
" @  J+ x8 b3 [7 i( U4 L9 q# S         ECANA_LAM               00006040   00000040  00000040  RWIX0 t" `0 r2 k( X+ a' @2 I
         ECANA_MOTS              00006080   00000040  00000040  RWIX
% n4 g: b& M6 n1 L         ECANA_MOTO              000060c0   00000040  00000040  RWIX
- b7 Z5 e; E0 J; r( p7 y' `         ECANA_MBOX              00006100   00000100  00000100  RWIX3 g- k6 y' D# }1 \
         SYSTEM                  00007010   00000020  00000020  RWIX
; d5 V& t7 w9 M- K  a         SPIA                    00007040   00000010  00000010  RWIX/ f- j- w5 S3 l0 t; H, G: Q7 x/ {
         SCIA                    00007050   00000010  00000010  RWIX
$ j' D- \- ^1 {; Y+ f) V         XINTRUPT                00007070   00000010  00000010  RWIX
2 N. O2 M# Y% r9 }5 z9 N         GPIOMUX                 000070c0   00000020  00000020  RWIX
, _8 U: l) H0 D; l# ~. e' H         GPIODAT                 000070e0   00000020  00000020  RWIX7 E4 i7 Z& F, S1 c- Q/ C- Z, c
         ADC                     00007100   00000020  0000001a  RWIX
, g% `  E0 g' a0 b         EVA                     00007400   00000040  00000032  RWIX$ |! _, ]0 C! \
         EVB                     00007500   00000040  00000032  RWIX- Y, \0 J3 @, w" V6 y9 ^
         SCIB                    00007750   00000010  00000010  RWIX
2 X; _) S& k# U- ]         MCBSPA                  00007800   00000040  00000025  RWIX
* w% d% N; V, M5 V. r. I- O         RAML0L                  00008000   00000800  00000084  RWIX
5 b( d! D  M# h" m3 n         RAML0H                  00008800   00000800  00000000  RWIX) b& |' W* t) [4 t
         CSM_PWL                 003f7ff8   00000008  00000008  RWIX+ q( u  Q( I/ f6 w) {( l+ u
         DRAMH0                  003f9000   00001000  00000112  RWIX
5 I) j( Z; k' B8 X2 G' f! Z) |; Z
( k1 L& G2 W. o) I1 a7 m& i* z/ z- M' Y' Q5 A! x+ S" c0 {
SECTION ALLOCATION MAP
4 W5 O3 z1 j! A3 ~/ ]$ v- Q
1 d: A; h5 C- f3 r7 |7 m3 |output                                  attributes/) g. a; _# f, I3 c8 v3 S
section   page    origin      length       input sections
& z9 |1 a2 h8 E1 A% E- W4 v--------  ----  ----------  ----------   ----------------$ I/ N/ Z0 q$ y
.switch    0    00000000    00000000     UNINITIALIZED
$ R! `6 @5 ~  N, E. S
9 D8 n% ^- [$ \. z; |codestart
1 ~" p, _3 h- L" h+ L) G*          0    003f8000    00000000     UNINITIALIZED* }  b0 S) X4 e6 r0 v

3 @0 f9 q* H% i6 C4 j. R/ x1 `% U0 c.pinit     0    003f8002    00000000     UNINITIALIZED0 s1 @) f: P4 i: A, Q
; [1 A; v) w/ L$ e, C! }/ k
.text      0    003f8002    00000472     
/ \4 P; _  ?2 E8 ~8 K( @                  003f8002    00000012     DSP281x_Adc.obj (.text)
$ S, }% N" C+ N/ J! p                  003f8014    0000004b     DSP281x_CpuTimers.obj (.text)
* _! _8 h- f9 c8 ]2 a! y                  003f805f    0000014f     DSP281x_DefaultIsr.obj (.text)  C1 ]4 N; v5 y5 T
                  003f81ae    000000b4     DSP281x_Ev.obj (.text)- s+ v- _' [4 o/ y4 |  q! e
                  003f8262    00000014     DSP281x_Gpio.obj (.text)& j1 Y& e8 t5 A1 I& U; J9 G' H% w. k
                  003f8276    00000015     DSP281x_MEMCopy.obj (.text)* S/ n' L; s5 l5 B# z- K$ B$ C
                  003f828b    00000028     DSP281x_PieCtrl.obj (.text)) p" w0 A2 |3 i  E. ]$ U# ^
                  003f82b3    00000020     DSP281x_PieVect.obj (.text)$ {" ~2 y% o, l
                  003f82d3    00000051     DSP281x_SysCtrl.obj (.text)
: g. D* e+ M4 l: I6 C                  003f8324    0000003e     Example_281xCpuTimer.obj (.text)/ d; A) P2 B3 b5 Q8 G- w6 e! i9 u
                  003f8362    00000044     rts2800.lib : boot.obj (.text)& w; v& p3 E# j) r. u
                  003f83a6    0000003d                 : exit.obj (.text)4 ~- T6 ^  B& b0 ^3 K, A8 H7 Q& U7 X
                  003f83e3    0000005a                 : fs_mpy.obj (.text); a7 x6 w) y/ U6 c. a# y, N1 h
                  003f843d    00000021                 : fs_toul.obj (.text)
2 O5 w- |8 i7 f$ O                  003f845e    00000007                 : _lock.obj (.text)
2 ?6 b9 G3 F; z# ^. J                  003f8465    0000000f                 : args_main.obj (.text)4 d3 L7 Q. ~) l  Y1 X
。。。: C, }* q7 c" g0 Z) Q5 W
! ^% j4 s- f+ f! G8 q
GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name
& h( F3 s3 v0 `: Q: v
  A  l# u, X, {* i) X0 O7 d$ baddress    name9 j- C5 \4 N3 _
--------   ----& a$ @0 G( o  b- O2 v
00008000   .bss
0 s7 D: [+ _! O! x7 s: ]00000000   .data( q- [0 F, m! p5 g% g3 L
003f8002   .text
( b5 I5 X% q: g3 c. D7 i) S( v003f83c5   C$$EXIT* |, t1 }7 M4 O" z- R) @
003f83e3   FS$$MPY
$ X# O+ `/ d% b) y1 O! `% y003f843d   FS$$TOUL
) O! E( \( B4 ]! }8 A  x003f80d2   _ADCINT_ISR
; R  n' q! E& ~) h( c" b00007100   _AdcRegs
9 [; u( n! t# S+ D- B2 m5 t& i003f8118   _CAPINT1_ISR
8 u+ ~# e$ n/ B7 |0 A* t, |1 n8 ]7 I5 {
。。。
  l) @! M% z! W7 D/ r% D
- W# J) i/ y$ S6 XGLOBAL SYMBOLS: SORTED BY Symbol Address 2 G  z) T; F* H, O  M
& c. T$ j+ a, Q
address    name
) l& P: |  w4 Y( k5 f5 h* |; i1 U7 p--------   ----. K7 R0 X. k7 w
00000000   ___edata__! d! R/ r0 `6 C' M  T& v
00000000   edata2 |$ b; L4 z* ]
00000000   ___data__
% L  o8 w" T6 M$ m00000000   .data( y. l: t' Z, T, z8 |( \
00000400   __STACK_SIZE
, ]" R8 D7 T# }  W$ \00000880   _DevEmuRegs) H' K1 d8 ?4 }, a) u( T. x
00000a80   _FlashRegs7 ^* S' ]! u2 w1 g
00000ae0   _CsmRegs

F2812.rar

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

该用户从未签到

2#
发表于 2016-6-6 15:20 | 只看该作者
学习中,谢谢分享. u0 x& i3 n4 d) j/ y9 O3 g

该用户从未签到

3#
发表于 2016-6-8 15:52 | 只看该作者
学习中,谢谢分享
2 j9 ]" L$ I: Q- @9 F
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 00:49 , Processed in 0.171875 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表