This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: RAM Images on AT91SAM7s256
- From: "Tom Deconinck" <t dot deconinck at gmail dot com>
- To: airdelroy <aaron-nabble at planetrichardson dot net>, ecos-discuss at sourceware dot org
- Date: Wed, 2 Apr 2008 08:12:23 +0200
- Subject: Re: [ECOS] RAM Images on AT91SAM7s256
- References: <20080128160738.64350@gmx.net> <20080128164654.GC10795@lunn.ch> <20080128170611.58540@gmx.net> <20080128170951.GD10795@lunn.ch> <20080128171909.64340@gmx.net> <e37cb5250801290055p6e6ef815r8a11e9decffe50f1@mail.gmail.com> <16435229.post@talk.nabble.com>
On Wed, Apr 2, 2008 at 3:48 AM, airdelroy
<aaron-nabble@planetrichardson.net> wrote:
>
> I am also trying to get a RAM image running on an AT91SAM7s256. I ultimately
> will run my applications from the flash, would like to debug in RAM.
> Currently I can load via sam-ba a rom image that will communicate over the
> serial port, so I have this to start from.
>
> Sam-ba I believe uses the first 8k of RAM. So I think that the ldi file
> should look like this:
>
>
> MEMORY
> {
> ram : ORIGIN = 0x00202000, LENGTH = 0xE000
> }
>
> SECTIONS
> {
> SECTIONS_BEGIN
> SECTION_rom_vectors (ram, 0x00202000, LMA_EQ_VMA)
> SECTION_fixed_vectors (ram, 0x00200040, 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
> }
>
> Is the SECTION_fixed_vectors section correct? Or should it be:
>
> SECTION_fixed_vectors (ram, ALIGN (0x1), LMA_EQ_VMA)
>
> I think I found my version in some other arm variant...
>
> Also should I modify these?
> #define CYGMEM_REGION_ram (0x00200000)
> #define CYGMEM_REGION_ram_SIZE (0x10000)
>
> Now I need to modify startup code for vector memory remapping. Where do I
> find the RAM code that needs to be modified?
>
> thanks,
> Aaron
> --
> View this message in context: http://www.nabble.com/RAM-Images-on-AT91SAM7s256-tp15138638p16435229.html
> Sent from the Sourceware - ecos-discuss mailing list archive at Nabble.com.
>
>
According to me, your fixed_vectors section is correct, if you use
SECTION_fixed_vectors (ram, ALIGN (0x1), LMA_EQ_VMA), the linker will
place the vectors just after the rom section. However since you talk
about the SAM-BA boot, this setting will probably overwrite a part of
that bootloader and cause havoc. If you would use a JTAG probe to load
in your RAM image, that setting is correct, in your case you probably
need to place them after the SAM-BA boot thing. Note that the
exception and interrupt vectors have to be at address 0x0.
Startup assembly code can be found in
hal\arm\at91\at91sam7s\current\include\hal_platform_setup.h specific
for AT91 and alikes
And the code that relocates vectors and such: hal\arm\arch\current\src\vectors.S
Tom
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss