Fwd: configuring memory size

Till Straumann strauman at slac.stanford.edu
Mon Dec 5 19:22:11 UTC 2005


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 at aps.anl.gov>
>> Advanced Photon Source
>> Argonne National Laboratory
>> (630) 252-4793
>>
>>
>




More information about the users mailing list