[ECOS] RAM Images on AT91SAM7s256
Wed Apr 2 06:12:00 GMT 2008
On Wed, Apr 2, 2008 at 3:48 AM, airdelroy
> 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:
> ram : ORIGIN = 0x00202000, LENGTH = 0xE000
> 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);
> 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?
> 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
for AT91 and alikes
And the code that relocates vectors and such: hal\arm\arch\current\src\vectors.S
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