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

ARM Linker Address Map

Note: This was originally posted on 22nd November 2009 at http://forums.arm.com

Hi All,

Im new to this forum and pretty new to ARM development.
When Im compiling my SW in THumb mode the symbol names
in .map file shows Unaligned memory addresses(Eg: 0x225571).
But the symbol is actually placed in address aligned address(0x225570).
Can anybody explain why linker map shows unaligned address?

Thanks
Parents
  • Note: This was originally posted on 22nd November 2009 at http://forums.arm.com

    ...My question is more about the starting address of a symbol/function code....


    I think this amounts to the samething, consider:

    [font="Lucida Console"]LDR r0,datalabel
    BX r0
    ...
    datalabel DCD somefunc[/font]

    Here, the value inserted for [font="Lucida Console"]somefunc [/font] needs to have the LSB set if [font="Lucida Console"]somefunc [/font] is the symbol for a Thumb function. At which point the Thumb function code will reside at a halfword aligned location, whereas the symbol will be unaligned due to the least-significant-bit being set.

    hth
    s.
Reply
  • Note: This was originally posted on 22nd November 2009 at http://forums.arm.com

    ...My question is more about the starting address of a symbol/function code....


    I think this amounts to the samething, consider:

    [font="Lucida Console"]LDR r0,datalabel
    BX r0
    ...
    datalabel DCD somefunc[/font]

    Here, the value inserted for [font="Lucida Console"]somefunc [/font] needs to have the LSB set if [font="Lucida Console"]somefunc [/font] is the symbol for a Thumb function. At which point the Thumb function code will reside at a halfword aligned location, whereas the symbol will be unaligned due to the least-significant-bit being set.

    hth
    s.
Children
No data