Limiting program RAM addresses

Jiri Gaisler jiri at
Mon Jan 27 14:57:28 UTC 2014

On 01/26/2014 07:45 PM, Mohammed Khoory wrote:
> I think I figured out why RTEMS on LEON3 keeps ignoring the linker script
> when it comes to RAM initialization. Basically, in the start-up code
> (start.S), the variable rdb_start is initialized from the register value of
> %sp (aka register g6). rdb_start is then treated by the BSP code as the end
> of the RAM and uses it to initialize the RAM which includes the heap and
> stack.

This is done to avoid having a custom BSP for each LEON3 configuration
and board. There must be more than a hundred different LEON3 boards
and chips out there, and maintaining separate BSP's for each one would
be impossible. Also, many boards can take different amounts of RAM
(DIMM sockets) making it even more difficult. I think this is a better
solution than for the other architectures (e.g. ARM and MIPS).

More information about the users mailing list