RTEMS memory use

Francesco Nuzzolo francesco.nuzzolo at spaceapplications.com
Thu Jan 26 11:57:04 UTC 2012


we are developing an application with RTEMS 4.10 running on a Leon2.

Trying to analyze the RAM memory usage, I have found that, starting from 
RAM base address 0x40000000, we have about 500 KB with the .text, .data 
and .bss sections, after that we have 1 MB used by the RTEMS Workspace, 
which ends at address 0x4018E200. Then, when we make calls to malloc(), 
we see that memory blocks are being taken starting at address 0x401FE980 
and proceeding in the direction of growing addresses.

So, there is a "gap" between the end of the RTEMS Workspace (address 
0x4018E200) and the beginning of the area used by malloc() (address 
0x401FE980), and this "gap" amounts to approximately 450 KB.

I am wondering what this area is used for. If I put some watchpoints in 
it, they are triggered. Sometimes it seems to be the 
rtems_libio_allocate() function to  trigger these watchpoints. Could it 
be that this memory space is for data structures used by libraries or 
drivers (e.g. TCP/IP network library and Ethernet drivers)?

If I try the same analysis using the simple rtems-hello program (adding 
a call to malloc), the "gap" is much smaller (just a few KB).

Thanks in advance for your help,

F. Nuzzolo
Software Engineer

Space Applications Services NV/SA
Leuvensesteenweg 325
B-1932 Zaventem
Tel:  +32 (0)2-721.54.84
Fax:  +32 (0)2-721.54.44
URL: www.spaceapplications.com

More information about the users mailing list