[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fwd: configuring memory size



Eric Norum wrote:


Looks like what I suggested won't work. The linker complains if the expressions in the ORIGIN/LENGTH contain symbols even if those symbols have been defined before the assignment.


I guess that you'll need to have two separate linkcmds files and use something like
-Wl,-TlinkcmdsFor4MFlash
or
-Wl,-TlinkcmdsFor16MFlash

A much better solution would be enhancing the BSP so it does
auto-detection. This has to be performed early enough,though.

If an early detection is too cumbersome, then you can limit
the initial size to a minimum, let's say 4M and increase the
size later. In order to make the additional ram available to
RTEMS (i.e., after the malloc heap/libc have been initialized)
you have to implement a trivial 'sbrk()'. The only constraint
is that the 'late ram'-portion of the heap to be added by sbrk()
must be contiguous to the initial heap.

You can look at powerpc/shared/bspstart which uses the
two-staged heap approach for different reasons.

HTH
T.




Eric Norum wrote:

You need to pass the --defsym option to the linker.

On the compile line, add something like
    -Wl,--defsym,_RamSize=0x10000000

On Dec 2, 2005, at 10:50 PM, D. Peter Siddons wrote:

I have two boards which are identical except for the amounts of flash and RAM. The linkcmds file has definitions for these parameters like:
_RamSize = DEFINED(_RamSize) ? _RamSize : 0x7f0000;


so my question is, can I invoke a definition somewhere in the application make process to override the one in linkcmds? If so, how and/or where?

Pete.




-- Eric Norum <norume@aps.anl.gov> Advanced Photon Source Argonne National Laboratory (630) 252-4793