AnsweredAssumed Answered

MPC5604P / CodeWarrior - Linkerfile settings

Question asked by Steffen Rose on Jul 8, 2015

Hello,

 

I want to create a bootloader. This question is for the application.

I want to move my application to address 0x8000.

 

I'm the meaning I have changed all addresses.

But in case of:

 

 

GROUP  : {

      .text : {}

      .text_vle (VLECODE) ALIGN(0x08)  : {

         *(.text)

         *(.text_vle)

       }

       .rodata (CONST) : {

         *(.rdata)

         *(.rodata)

       }

...

 

    } > internal_flash

 

the section .text_vle have different load and run addresses.

Memory map:

                       Starting Size     File     ROM      RAM Buffer  S-Record

                       address           Offset   Address  Address     Line

.text_vle 0000a000 000074e0 000008c0 00002000 00002000      2

objdump confirm, that this section is located on 0x2000 within the .elf file

 

In case I change the Load address for .text_vle the next section .rodata is move to 0x2000.

 

 

What is wrong?

Where is the address 0x2000 from?

 

I attached my Linker file and my Mapping file.

 

In general:

I'm the meaning, that the Linkerfile definition

GROUP  : {

...

       .rodata (CONST) : {

         *(.rdata)

         *(.rodata)

       }

   ...

    } > internal_flash

means, that load and run address is the same and it is located in "internal_flash"-Memory.

 

Thank you.

Original Attachment has been moved to: MPC5604P_M26V_BOOT.lcf.zip

Original Attachment has been moved to: Boot_Slave.MAP.zip

Outcomes