release and debug mode heap allocation

Aleix Conchillo Flaqué aconchillo at ieec.cat
Tue May 27 11:12:51 UTC 2008


By the way, with heap, I meant the RTEMS workspace area which is the
one passed to _Heap_Allocate and the one related to RTEMS internals.

#define _Workspace_Allocate( _size ) \
   _Heap_Allocate( &_Workspace_Area, (_size) )

On Tue, May 27, 2008 at 1:03 PM, Aleix Conchillo Flaqué
<aconchillo at ieec.cat> wrote:
> Hi all,
>
> I am experiencing a strange memory allocation behavior when running my
> application in release and debug modes.
>
> I have added some prints in the _Heap_Allocate routine to see what's going on:
>
> * release mode: number of calls: 2033 - total size allocated: 853124
> * debug mode: number of calls: 2035 - total size allocated: 884732
> <--- if ( the_block == _Heap_Tail( the_heap ) ) FAILS in last call!
>
> Increasing the number of tasks (CONFIGURE_MAXIMUM_TASKS), solves the
> problem in debug mode, and I get:
>
> * debug mode: number of calls: 2041 - total size allocated: 892504
>
> And in fact, I can not set the exact number of tasks (plus IDLE and
> initialisation) to CONFIGURE_MAXIMUM_TASKS, even in release mode. So,
> the release  mode suffers from the same problem when I decrease the
> number of tasks. Thus, I always need to increase the number of tasks,
> so there is enough heap.
>
> Does this makes any sense?
>
> Btw, RTEMS 4.6.6 here.
>
> Aleix
>


More information about the users mailing list