[ECOS] elf to binary conversion problem
Max Salov
amx@me.by
Thu May 28 10:11:00 GMT 2009
Andrew Lunn ?????:
> The .data segment is your problem. It is much higher in memory, so
> objdump is putting 0's in the middle.
>
> You might have a RAM application which you are trying to ROM? Or your
> ROM linker scripts are broken.
>
> Andrew
>
Thanks, Andrew, for help.
Problem was in linker script.
Data and bss sections were defined
SECTION_got (flash, ALIGN (0x8), LMA_EQ_VMA)
SECTION_sram (sram, 0x20000400, LMA_EQ_VMA)
SECTION_data (sram, ALIGN (0x8), LMA_EQ_VMA)
SECTION_bss (sram, ALIGN (0x8), LMA_EQ_VMA)
I've changed it to
SECTION_got (flash, ALIGN (0x8), LMA_EQ_VMA)
SECTION_sram (sram, 0x20000400, FOLLOWING (.got))
SECTION_data (sram, ALIGN (0x8), FOLLOWING (.sram))
SECTION_bss (sram, ALIGN (0x8), LMA_EQ_VMA)
But I'm not sure if it is completely correct.
Whole script(20k sram, 128k flash):
// eCos memory layout
#include <pkgconf/hal.h>
#include <cyg/infra/cyg_type.inc>
MEMORY
{
sram : ORIGIN = 0x20000000, LENGTH =
0x00005000-CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE
flash : ORIGIN = 0x08000000, LENGTH = 0x00020000
}
SECTIONS
{
SECTIONS_BEGIN
SECTION_rom_vectors (flash, 0x08000000, LMA_EQ_VMA)
SECTION_RELOCS (flash, ALIGN (0x8), LMA_EQ_VMA)
SECTION_text (flash, ALIGN (0x8), LMA_EQ_VMA)
SECTION_fini (flash, ALIGN (0x8), LMA_EQ_VMA)
SECTION_rodata (flash, ALIGN (0x8), LMA_EQ_VMA)
SECTION_rodata1 (flash, ALIGN (0x8), LMA_EQ_VMA)
SECTION_fixup (flash, ALIGN (0x8), LMA_EQ_VMA)
SECTION_gcc_except_table (flash, ALIGN (0x8), LMA_EQ_VMA)
SECTION_eh_frame (flash, ALIGN (0x8), LMA_EQ_VMA)
SECTION_got (flash, ALIGN (0x8), LMA_EQ_VMA)
SECTION_sram (sram, 0x20000400, FOLLOWING (.got))
SECTION_data (sram, ALIGN (0x8), FOLLOWING (.sram))
SECTION_bss (sram, ALIGN (0x8), LMA_EQ_VMA)
CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
SECTIONS_END
}
hal_vsr_table = 0x20000000;
hal_virtual_vector_table = hal_vsr_table + 128*4;
hal_startup_stack = 0x20000000 + 1024*20;
Max
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
More information about the Ecos-discuss
mailing list