This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Two quections about memory layou of Samsung SNDS
- From: Roland Caßebohm <roland dot cassebohm at visionsystems dot de>
- To: "yzj" <yzj at chinadigipro dot com>, <ecos-discuss at ecos dot sourceware dot org>
- Date: Fri, 19 Mar 2004 10:45:21 +0100
- Subject: Re: [ECOS] Two quections about memory layou of Samsung SNDS
- References: <005901c40d5e$00b69870$483b0dd2@YZJ>
Hello,
for our new platform "ARM Industrial Module AIM 711",
which is very semilar to the snds platform, I use
the following memory layout. Both have fixed_vectors
at 0x20. rom_vectors of the RAM version is at 0x40000
to have enough place for a ROMRAM version of RedBoot.
mlt_arm_aim711_rom:
SECTIONS
{
SECTIONS_BEGIN
SECTION_rom_vectors (rom, 0x2000000, LMA_EQ_VMA)
SECTION_text (rom, ALIGN (0x1), LMA_EQ_VMA)
SECTION_fini (rom, ALIGN (0x4), LMA_EQ_VMA)
SECTION_rodata (rom, ALIGN (0x4), LMA_EQ_VMA)
SECTION_rodata1 (rom, ALIGN (0x4), LMA_EQ_VMA)
SECTION_fixup (rom, ALIGN (0x4), LMA_EQ_VMA)
SECTION_gcc_except_table (rom, ALIGN (0x4), LMA_EQ_VMA)
SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
SECTION_data (ram, 0x1000, FOLLOWING (.gcc_except_table))
SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
SECTIONS_END
}
mlt_arm_aim711_ram:
SECTIONS
{
SECTIONS_BEGIN
SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
SECTION_rom_vectors (ram, 0x00040000, LMA_EQ_VMA)
SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_rodata (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_rodata1 (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_gcc_except_table (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_data (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
SECTIONS_END
}
Regards,
Roland
On Freitag, 19. März 2004 03:58, yzj wrote:
> The memory layout in current CVS files:
>
> mlt_arm_snds_rom
> SECTIONS_BEGIN
> SECTION_rom_vectors (rom, 0x1800000, LMA_EQ_VMA)
> SECTION_text (rom, ALIGN (0x1), LMA_EQ_VMA)
> SECTION_fini (rom, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_rodata (rom, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_rodata1 (rom, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_fixup (rom, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_gcc_except_table (rom, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
> SECTION_data (ram, 0x20000, FOLLOWING (.gcc_except_table))
> SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
> CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
> SECTIONS_END
>
> mlt_arm_snds_ram
> SECTIONS_BEGIN
> SECTION_fixed_vectors (ram, 0x200, LMA_EQ_VMA)
> SECTION_rom_vectors (ram, 0x00020000, LMA_EQ_VMA)
> SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_rodata (ram, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_rodata1 (ram, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_gcc_except_table (ram, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_data (ram, ALIGN (0x4), LMA_EQ_VMA)
> SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
> CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
> SECTIONS_END
>
> focusing on the fixed_vertors section, In the ROM version, which is at
> 0x20 but in RAM version, this section is at 0x200, why?
> Do i need to put the fixed_vectors at the same address in both RAM and ROM
> verson?
>
> and I make a RedBoot_ROM, whick is worked very well, and the .data section
> is at 0x20000. But the mlt_arm_snds_ram put the rom_vector and .text into
> the memory from 0x2000, so if i want to load a eCos test program of RAM
> version, i have to change the memory layout, and change the begin address
> from 0x2000 to a higher address.
> my understanding is right?
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss