找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 49|回复: 2
打印 上一主题 下一主题

关于MAP文件的一点认识

[复制链接]

157

主题

597

帖子

1239

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

EDA365欢迎您!

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

x
5 H% U, i% i) c! ?* ~% K
MAP文件是CCS软件编译后产生的有关DSP用到所有程序、数据及IO空间的一种映射文件。: H3 R$ H4 r/ ?8 Z! b

& ~# Q4 ]2 G' b6 K# p一、生成方法
, _$ z) i; A5 }. ^' [$ Q    MAP文件主要有两种生成方法,一种是由系统自动生成,默认文件名为所建立的项目名(如XXX为项目名)加上.map后缀xxx.map,另一种在CMD文件中指定生成MAP文件,操作方法为在MEMORY指令前面加上“-m abc.map”,文件名可以任意。3 s1 `+ k  y# U
0 L" v% w. @: G) s( k, O& U0 k" |
二、文件格式( R) Q+ W  L2 e4 |; k
    MAP文件大概分为文件头、内存配置、段映射、全局符号四部分。内存配置与CMD文件中的MEMORY指令关联,在CMD文件中定义的程序与数据区间定义,在该部分均可以找到对应,与CMD文件不同的时,在MAP文件中加入了一个实际使用的区间,即在程序中实际用到的空间长度。段映射部分与CMD文件中的SECTION指令关联,在该部分程序中所有的段实际映射的起始地址与实际长度均有详细说明。可以具体到程序中PROGMA指定的段和各个单独文件产生的OBJ文件。全局符号可以是程序使用的每一个函数、程序中定义的全局变量均可以在此找到对应的起始地址。MAP文件中采用两种方式列举,一种为按相应地址排列,另一种按全局符号字母排列。
& J0 w: Z: b0 C$ S; ^
' T: i# Q5 M4 J( W4 B三、存储地址1 n/ A2 u( X9 L. N
    MAP文件默认保存在所在项目下面,由CMD文件产生的MAP文件保存在该项目的DEBUG目录下面。3 m, [2 H* n( _0 r9 W. y" O
5 q2 k( G' w" b4 b
样例如下(详细见附件):* T% K# `5 A- C# J
******************************************************************************+ M9 y8 a5 G) M$ E7 x& \4 x
        TMS320C2000 COFF Linker PC v4.1.0                     
# R' T4 V0 g, D* X9 Z  g3 e2 U******************************************************************************8 r6 c0 y/ D9 D6 @% y: @& ~& m
>> Linked Tue Apr 08 17:52:23 2008
; ~, N  i* m3 C. P& x
2 I# l0 A- m0 Q' BOUTPUT FILE NAME:   <./Debug/F2812.out>$ o4 x6 Q6 P& T) @
ENTRY POINT SYMBOL: "_c_int00"  address: 003f8362! O4 R' Y/ ?. p* v
: y8 V' y! v$ Y# j

9 h7 u& W% K2 n! G% d/ gMEMORY CONFIGURATION
+ z/ g2 s2 I: Q8 V2 X4 ~  g. D) ?/ }) J. M. g$ _7 S
                  name            origin    length      used    attr    fill& f2 V0 X) D! S1 Y* N
         ----------------------  --------  ---------  --------  ----  --------
1 c, @, F+ d! c! m+ r" v2 n" a3 _PAGE  0: RAMM0                   00000000   00000400  00000000  RWIX# p$ r( k4 B8 |( {5 H
         BEGIN                   003f8000   00000002  00000000  RWIX* \0 P/ k* L- `5 t, Y3 v2 I
         PRAMH0                  003f8002   00000ffe  000004a1  RWIX" W8 }# @9 D" {0 {3 R# l
         RESET                   003fffc0   00000002  00000000  RWIX8 S0 u5 Q8 j: x) Z* o
; V) z1 b/ F5 t
PAGE  1: RAMM1                   00000400   00000400  00000400  RWIX
( B! f7 k6 F/ K         DEV_EMU                 00000880   00000180  000000d2  RWIX9 |, N* i$ f; m3 A4 O
         FLASH_REGS              00000a80   00000060  00000008  RWIX+ r+ b) W' J5 F0 B
         CSM                     00000ae0   00000010  00000010  RWIX( h. K/ W, \+ v6 H" M2 O! G
         XINTF                   00000b20   00000020  00000020  RWIX' s) I. I6 Y' g4 Q; @/ D1 c2 v
         CPU_TIMER0              00000c00   00000008  00000008  RWIX
9 u$ ~; C' C0 W         PIE_CTRL                00000ce0   00000020  0000001a  RWIX6 t: B8 u7 y' m" q0 s' R
         PIE_VECT                00000d00   00000100  00000100  RWIX
! O8 T0 X" R5 Z2 n         ECANA                   00006000   00000040  00000034  RWIX
$ U6 D9 V3 \& U$ C. r         ECANA_LAM               00006040   00000040  00000040  RWIX
$ E- M0 V5 F$ s: \7 f# J  G         ECANA_MOTS              00006080   00000040  00000040  RWIX& `9 X' q8 G8 h4 m/ b9 ]( o9 B& w* y
         ECANA_MOTO              000060c0   00000040  00000040  RWIX6 W/ e5 M  f. g9 W9 J
         ECANA_MBOX              00006100   00000100  00000100  RWIX4 l4 ~* ?. d( ^
         SYSTEM                  00007010   00000020  00000020  RWIX, o$ u4 n* b% ]: l/ I; L
         SPIA                    00007040   00000010  00000010  RWIX9 P" g  j7 \) U. U4 |
         SCIA                    00007050   00000010  00000010  RWIX
3 H& w( X, q5 {" G" {         XINTRUPT                00007070   00000010  00000010  RWIX
5 D( ?6 M. M5 e& {: @: ^0 k6 `         GPIOMUX                 000070c0   00000020  00000020  RWIX0 Q9 X7 W7 x" x4 H4 i& Q( d3 X+ N
         GPIODAT                 000070e0   00000020  00000020  RWIX
9 R1 G* y1 w* A8 ^- U( E1 N         ADC                     00007100   00000020  0000001a  RWIX" z, _$ G) x4 ~4 e) {' B% c. a; [
         EVA                     00007400   00000040  00000032  RWIX
( h! d+ M+ L+ X, M) ~9 q' ~3 |, S& \         EVB                     00007500   00000040  00000032  RWIX! M  E( A. f3 J  X- w* q
         SCIB                    00007750   00000010  00000010  RWIX' ?" g, v- ~/ C0 f6 C: Z
         MCBSPA                  00007800   00000040  00000025  RWIX3 i1 {- r$ j  ?% O6 b. r
         RAML0L                  00008000   00000800  00000084  RWIX
/ g# p' `% s, t+ C         RAML0H                  00008800   00000800  00000000  RWIX
) u5 X8 Y" \' g8 }4 U- |5 _         CSM_PWL                 003f7ff8   00000008  00000008  RWIX: e; t$ |5 Y7 R3 S. f7 z  n
         DRAMH0                  003f9000   00001000  00000112  RWIX
! y" n- W% o- y0 g' {  w
- u. t$ R4 A1 k0 q
7 E3 G  b+ ]; t* {( X/ Q+ p1 p, v# FSECTION ALLOCATION MAP3 C- ~  B# T$ j

$ m6 U( M( c; i" T4 J9 soutput                                  attributes/
$ @- `  V/ \" ]' `" Esection   page    origin      length       input sections
" v. [/ L' I2 j4 ?! }7 }* v--------  ----  ----------  ----------   ----------------  x  _' q7 z) y) j( e* t9 U4 @( @; {
.switch    0    00000000    00000000     UNINITIALIZED
" n7 L/ q& M) a" S6 ^! W  Z! Q+ }5 ^2 }  Y: i8 G
codestart * V  ]  N+ |4 q
*          0    003f8000    00000000     UNINITIALIZED( E% J0 \& n7 f
, r2 b6 [9 p: ^/ U9 K; b* ?
.pinit     0    003f8002    00000000     UNINITIALIZED4 D7 G. x9 I7 F  `" _4 j/ k
; o( e: _9 J; H6 F7 D
.text      0    003f8002    00000472     + L& g7 u* C& w' e
                  003f8002    00000012     DSP281x_Adc.obj (.text); j: d5 A" H- O$ }: B% M
                  003f8014    0000004b     DSP281x_CpuTimers.obj (.text)
' P, K, [. I& d8 C2 C8 w4 j2 E1 [                  003f805f    0000014f     DSP281x_DefaultIsr.obj (.text)* y" s/ k) S( _8 y- H
                  003f81ae    000000b4     DSP281x_Ev.obj (.text)
* i  H. T1 u9 u  \0 v% ?                  003f8262    00000014     DSP281x_Gpio.obj (.text)
6 n! A. o' y3 _5 z+ ]5 ^: A0 T                  003f8276    00000015     DSP281x_MemCopy.obj (.text)3 z6 t# M9 i+ r  Q* p7 O, U1 S8 v
                  003f828b    00000028     DSP281x_PieCtrl.obj (.text)( @2 j9 M4 X- L! x& t
                  003f82b3    00000020     DSP281x_PieVect.obj (.text)2 }# v* _2 K6 W3 |) n
                  003f82d3    00000051     DSP281x_SysCtrl.obj (.text): _. V" |- k" J6 E. h; N3 G
                  003f8324    0000003e     Example_281xCpuTimer.obj (.text)
, H& v+ o- `: O1 c$ f                  003f8362    00000044     rts2800.lib : boot.obj (.text)/ N. R7 y( c+ I0 x+ ~; H
                  003f83a6    0000003d                 : exit.obj (.text)
4 b) M5 S2 s; f                  003f83e3    0000005a                 : fs_mpy.obj (.text)# _4 |7 \4 P/ Q  ]$ v# @
                  003f843d    00000021                 : fs_toul.obj (.text)
' K% ?9 j; _5 V' P                  003f845e    00000007                 : _lock.obj (.text)
$ B& b  a5 u7 D5 c6 C2 L& u                  003f8465    0000000f                 : args_main.obj (.text); Z2 N9 Q) ^1 r# W
。。。1 a; F( D8 K. {  B. e) d7 O9 h9 I; }

* N+ x. C1 f4 v; \) Q# _) U! jGLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name
, Y; i" N0 N1 G$ w& K4 ~: @: x9 q8 K. @. c8 ]* e/ l. |
address    name
, X$ M% z/ q4 E& J3 i--------   ----
) b5 R, R  m6 a; q9 W00008000   .bss
- }/ o0 s+ {+ F) O& q/ k00000000   .data/ w2 W4 o/ ]  b4 G/ U& |
003f8002   .text
! c# ~* o. u/ X* K. ~3 p6 x+ [/ U003f83c5   C$$EXIT# C* V7 [. T' J2 l
003f83e3   FS$$MPY0 J" t# T4 [8 j* n3 |5 f
003f843d   FS$$TOUL
0 N6 n0 V8 W: O003f80d2   _ADCINT_ISR; ]8 ~; N( X7 e# F
00007100   _AdcRegs8 r) t) Q) C1 k/ G! V0 H
003f8118   _CAPINT1_ISR
9 `, ^( u, E% x  ?' L- ^
" t" }4 H, @4 d9 |: o1 j9 ~! t。。。6 R& w% F. z* w

1 Z; I% v* L7 T3 yGLOBAL SYMBOLS: SORTED BY Symbol Address % }5 f# _5 N! b3 W4 v

1 m2 s' }1 ~% @# K' X- X2 i) O, daddress    name
# Q; k& u4 r9 g$ L' o2 _1 M--------   ----
' n6 t3 J7 |! ?0 k* u5 V00000000   ___edata__
$ q! L5 `4 N$ d) J9 ?8 ^) g2 {00000000   edata' ?+ ?/ l4 T/ L- j% ^
00000000   ___data__
* Q4 Z. A# M" h/ Q  _4 `00000000   .data' f: f: b9 j1 ?9 L" T
00000400   __STACK_SIZE
; I! V% Y% m+ [9 q, q* D00000880   _DevEmuRegs1 Q8 z3 F' F: K+ j* ?
00000a80   _FlashRegs4 Q# i1 v+ f, J6 y% I
00000ae0   _CsmRegs

F2812.rar

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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

156

主题

559

帖子

1202

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1202
2#
发表于 2016-6-6 15:20 | 只看该作者
学习中,谢谢分享' q& e) m/ D0 W- l

214

主题

642

帖子

1658

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1658
3#
发表于 2016-6-8 15:52 | 只看该作者
学习中,谢谢分享" Z4 z8 [6 r6 p- V3 |7 R! S# P( }& ~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-2-21 03:24 , Processed in 0.058119 second(s), 34 queries , Gzip On.

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

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

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