RTEMS memory use
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,
Space Applications Services NV/SA
Tel: +32 (0)2-721.54.84
Fax: +32 (0)2-721.54.44
More information about the users