This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

what is Value in map file?

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.

Parents
  • 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.

Reply
  • 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.

Children