We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Part of "http://www.keil.com/support/man/docs/lx51/lx51_ln_mapfile.htm" is as followed.
PUBLIC SYMBOLS OF MODULE: Measure (MEASURE)
VALUE CLASS TYPE PUBLIC SYMBOL NAME ================================================= 00000010H DATA --- ?_UNGETCHAR?BYTE
00000020H.6 BIT --- ?C?ATOFFIRSTCALL
01000357H CODE --- ?C?CASTF
01000767H CODE --- ?C?CCASE
00000021H.6 BIT --- ?C?CHARLOADED
Does anyone know the meaning of "VALUE" in map? What is the difference in the first byte shows 01 or 00? Thanks.
malund.
look at the first two characters of each line.
when you understand the map file you can understand alot of what the linker is doing.
when you understand the map file which I do
however, WHY be concerned with '01' when the word CODE appear in the same line??? 01000767H CODE --- ?C?CCASE
since the knowledge of '01' is meaningless, why bother, I didn't?
Erik
<quote> when you understand the map file which I do </quote>
but not completely/
In some processors, all memory is unified into the same memory range, so you can use an index register in the processor and access any memory by just changing the value of the index register.
The 8051 has multiple addressable memories, that requires different processor instructions to access.
This means that in the 8051, the address 0 can mean different things, depending on what processor instruction that was used. Because of this, the linker needs to separate addresses in the different address regions. Being an 8-bit processor expected to have limited amounts of memory, the high bits of a 32-bit address offset should do well.
Now it is time for you to do a bit of experimentation. If you do read up on the different memory regions, you will then be able to correlate the numbers in the linker output files with the memory area the different symbols are located in.
you might also want to read-up on how this is implemented with Generic Pointers...
take a look at how FAR pointers are implemented...
It's clear. Thanks all.