如何从map文件中,得到代码、常数表和静态RAM的大小?
假设我有如下代码:
char test1;
const char test2[4] = {1,2,3,4};
void main()
{
int i;
for( i = 0 ; i < 4 ; i++ ) test1 = test2[i];
}
如何从得到的map文件中获得代码、常数表和静态RAM的大小?
得到了map文件大概如下:
try_vc
Timestamp is 4d5126d8 (Tue Feb 08 19:19:52 2011)
Preferred load address is 00400000
Start Length Name Class
0001:00000000 0000dd43H .text CODE
0001:0000dd43 0001000dH .textbss CODE
0002:00000000 0000122bH .rdata DATA
0002:0000122b 00000000H .edata DATA
0003:00000000 00000104H .CRT$XCA DATA
0003:00000104 00000104H .CRT$XCZ DATA
0003:00000208 00000104H .CRT$XIA DATA
0003:0000030c 00000109H .CRT$XIC DATA
0003:00000418 00000104H .CRT$XIZ DATA
0003:0000051c 00000104H .CRT$XPA DATA
0003:00000620 00000104H .CRT$XPX DATA
0003:00000724 00000104H .CRT$XPZ DATA
0003:00000828 00000104H .CRT$XTA DATA
0003:0000092c 00000104H .CRT$XTZ DATA
0003:00000a30 000014a6H .data DATA
0003:00001ed8 00001974H .bss DATA
0004:00000000 00000014H .idata$2 DATA
0004:00000014 00000014H .idata$3 DATA
0004:00000028 00000110H .idata$4 DATA
0004:00000138 00000110H .idata$5 DATA
0004:00000248 000004afH .idata$6 DATA
Address Publics by Value Rva+Base Lib:Object
0001:00000040 _mainCRTStartup 00401040 f LIBCD:crt0.obj
0001:00000170 __amsg_exit 00401170 f LIBCD:crt0.obj
0001:000001d0 __cinit 004011d0 f LIBCD:crt0dat.obj
0001:00000210 _exit 00401210 f LIBCD:crt0dat.obj
0001:00000230 __exit 00401230 f LIBCD:crt0dat.obj
0001:00000250 __cexit 00401250 f LIBCD:crt0dat.obj
0001:00000270 __c_exit 00401270 f LIBCD:crt0dat.obj
0001:000003a0 __XcptFilter 004013a0 f LIBCD:winxfltr.obj
0001:000005b0 __setenvp 004015b0 f LIBCD:stdenvp.obj
0001:00000700 __setargv 00401700 f LIBCD:stdargv.obj
0001:00000c10 ___crtGetEnvironmentStringsA 00401c10 f LIBCD:a_env.obj
0001:00000e30 __ioinit 00401e30 f LIBCD:ioinit.obj
0001:00001140 __ioterm 00402140 f LIBCD:ioinit.obj
0001:000011a0 __heap_init 004021a0 f LIBCD:heapinit.obj
0001:000011f0 __heap_term 004021f0 f LIBCD:heapinit.obj
0001:0000128c __global_unwind2 0040228c f LIBCD:exsup.obj
0001:000012ce __local_unwind2 004022ce f LIBCD:exsup.obj
0001:00001326 __NLG_Return2 00402326 f LIBCD:exsup.obj
0001:00001336 __abnormal_termination 00402336 f LIBCD:exsup.obj
0001:00001359 __NLG_Notify1 00402359 f LIBCD:exsup.obj
0001:00001362 __NLG_Notify 00402362 f LIBCD:exsup.obj
0001:00001375 __NLG_Dispatch 00402375 f LIBCD:exsup.obj
0001:00001384 __except_handler3 00402384 f LIBCD:exsup3.obj
0001:00001441 __seh_longjmp_unwind@4 00402441 f LIBCD:exsup3.obj
0001:00001460 __FF_MSGBANNER 00402460 f LIBCD:crt0msg.obj
0001:000014b0 __NMSG_WRITE 004024b0 f LIBCD:crt0msg.obj
0001:00001670 __GET_RTERRMSG 00402670 f LIBCD:crt0msg.obj
0001:000016c0 _malloc 004026c0 f LIBCD:dbgheap.obj
0001:000016e0 __malloc_dbg 004026e0 f LIBCD:dbgheap.obj