I use the MPC5634M for a project.When I make the project code.Code Warrior2.10 warned "Overlap of the ROM image address of .data section with executable address of .__bam_bootarea section.",warning is below:
.lcf file is below:
/* lcf file for MPC5634M processor */
/* */
/* */
/* 1.5 MB Flash, 94KB SRAM */
MEMORY
{
resetvector: org = 0x00080000, len = 0x00000008
init: org = 0x00080020, len = 0x00000FE0
exception_handlers: org = 0x00081000, len = 0x00001000
internal_flash: org = 0x00082000, len = 0x000ED000
internal_ram: org = 0x40000000, len = 0x00010000
heap : org = 0x40010000, len = 0x00001000
stack : org = 0x40011000, len = 0x00005000
}
/* This will ensure the rchw and reset vector are not stripped by the linker */
FORCEACTIVE { "bam_rchw" "bam_resetvector" }
SECTIONS
{
.__bam_bootarea LOAD (0x00080000): {} > resetvector
GROUP : {
.init LOAD (0x00080020) : {}
.init_vle (VLECODE) LOAD (_e_init) : {
*(.init)
*(.init_vle)
}
} > init
.__exception_handlers (VLECODE) LOAD (0x00081000) : {} > exception_handlers
GROUP : {
.text : {}
.text_vle (VLECODE) ALIGN(0x08): {
*(.text)
*(.text_vle)
}
.rodata (CONST) : {
*(.rdata)
*(.rodata)
}
.ctors : {}
.dtors : {}
extab : {}
extabindex : {}
} > internal_flash
GROUP : {
.__uninitialized_intc_handlertable ALIGN(2048) : {}
.data : {}
.sdata : {}
.sbss : {}
.sdata2 : {}
.sbss2 : {}
.bss : {}
} > internal_ram
}
/* Freescale CodeWarrior compiler address designations */
_stack_addr = ADDR(stack)+SIZEOF(stack);
_stack_end = ADDR(stack);
_heap_addr = ADDR(heap);
_heap_end = ADDR(heap)+SIZEOF(heap);
/* Exceptions Handlers Location (used in Exceptions.c IVPR initialization)*/
EXCEPTION_HANDLERS = ADDR(exception_handlers);
/* L2 SRAM Location (used for L2 SRAM initialization) */
L2SRAM_LOCATION = 0x40000000;
How can I solve the warning.
Hi,
have you updated "RAM Buffer Address" and "ROM Image Address" in EPPC Linker settings? This could be the reason.
Press Alt+F7 in the project, select Linker -> EPPC Linker. And here change both mentioned addresses to 0x00082000 (to start address of internal_flash segment).
Regards,
Lukas
what's the function of internal_flash address here? why not other segment address?