This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
RE : Using flash memory on AT91eb55
The evaluation board has 3 memory :
* 256K byte of 16-bit SRAM (upgradeable to 1 MB)
* 2M bytes of 16-bit Flash (of which 1 MB is available for user software)
* 4M bytes of Serial Data Flash (upgradeable to 16 MB)
As I understand, the 256kb SRAM is used by the variables in my code.
1 mb of flash is used by my code which take 900 kb.
the other 1mb is used by the bootloader, which take only 200kb, so I think I can perhaps use the 800 other.
So I just have to make a "const char* myArray = 0x01050000" and the data will go there ?
I can use the 4mb of serial flash, but I don't really know how to do it.
Why is it revelent if I work in the ram or the rom, the error happen at compilation time?
thanks !
Jérôme Champion
-------- Message d'origine--------
De: Andrew Lunn [mailto:andrew@lunn.ch]
Date: jeu. 13/12/2007 16:42
À: Champion Jérôme
Cc: ecos-discuss@sourceware.org
Objet : Re: [ECOS] Using flash memory on AT91eb55
On Thu, Dec 13, 2007 at 04:24:09PM +0100, Champion J?r?me wrote:
> Hi,
> I'm make a software with the Linux Synthetic Target for some month.
> Now, I want to port it the the evaluation board AT91EB55.
> But when I compile it, I've got an error like : "the address 0x2040024 from a.out of the section .bss is not in the region ram".
> I've seen that it was an arry wich is too big and which certainly do not fit in the 256ko ram of the board.
> I would like to use the flash memory to store this array, but I don't how how to define it.
> Have you got any link or tips where to search ?
Are you using a RAM image or a ROM image?
A ROM image will run from ROM. All constant data should remain in the
flash. So maybe all you need to do is add a const keyword in the right
place.
If you have a RAM image, it is harder. What i would suggest is remove
the array from the sources and find another way to generate it as
binary data. You can then write this into flash at a well know
address. In your application just use the well known address as a
pointer.
Andrew
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss