This is the mail archive of the
ecos-discuss@sourceware.cygnus.com
mailing list for the eCos project.
RE: ARM AEB-1 Rev C Memory Usage
- To: (Srdjan Sobajic) <vonsrdmn at ugcs dot caltech dot edu>
- Subject: RE: [ECOS] ARM AEB-1 Rev C Memory Usage
- From: Gary Thomas <gthomas at cygnus dot co dot uk>
- Date: Mon, 06 Dec 1999 17:48:34 -0700 (MST)
- Cc: srdjans at digitalpersona dot com, ecos-discuss at sourceware dot cygnus dot com
On 06-Dec-99 Srdjan Sobajic wrote:
> Hi,
>
> This is probably a very elementary question, however, I can't seem to find
> out what I need
> through the docs on the Web.
>
> I have the ARM AEB-1C board here and I've been playing with eCos (from the
> CVS tree) on it.
> As far as I can tell, there are two places where the memory map is defined
> for the
> AEB-1C target: ie.
> ecos-1.2.1/packages/hal/arm/aeb/current/include/hal_platform_setup.h and
> ecos-1.2.1/packages/hal/arm/arch/current/src/arm.ld
>
> It is my impression that these files are mostly responsible for the
> generation of the
> various mlt_arm_aebC*.* files.
>
> Looking through the mlt* files, first I am curious about the fact that the
> size of the RAM is
> described as 0x48000 when in fact it is 0x40000. Where does the extra 32 k
> come from?
>
This is because the memory is mapped (using the hardware registers) from
0x8000 .. 0x48000
> My real question is, however, how do I access all the memory available on
> the board?
> I can't seem to access any memory above 0x20000... (I've never seen anything
> above that
> address running in the debugger, and malloc() fails to get memory even
> though it should be free...)
>
> Do I have to use to cyg_mempool* commands to use this or am I doing
> something fundamentally
> wrong?
>
Currently, malloc() takes it's memory from a hard-coded pool. In the future
it may use all available memory, but for the current time, you'll need to
modify your configuration to get this memory.
Change this line in <pkgconf/libc.h>
#define CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE 16384
See if this helps with your malloc() problems.