config assert at heap 5

crippler1 wrote on Tuesday, March 10, 2015:

Hi

I have a problem,

my config assert pops at configASSERT( pxEnd ) in pvPortMalloc function, when I try to create task

it means that pxEnd is not initialized.

any suggestions?

andymcc0 wrote on Tuesday, March 10, 2015:

Does this provide a clue?

void *pvPortMalloc( size_t xWantedSize )
{
BlockLink_t *pxBlock, *pxPreviousBlock, *pxNewBlockLink;
void *pvReturn = NULL;

/* The heap must be initialised before the first call to
        prvPortMalloc(). */
configASSERT( pxEnd );

i.e. have you called vPortDefineHeapRegions() ?

Do you need heap_5.c with its segmented, user defined heap?

crippler1 wrote on Tuesday, March 10, 2015:

at the heap5.c pxEnd = NULL at declaration as static.

I don’t see any change at pxEnd to any non zero value, at the all file.

crippler1 wrote on Tuesday, March 10, 2015:

as for the heap5 question

I am new to free rtos and i wrote simple main func that creates a task and runs it.

rtel wrote on Tuesday, March 10, 2015:

Andy made some suggestions as to what the problem might be, but I don’t think you have answered either of his questions.

Regards.

crippler1 wrote on Tuesday, March 10, 2015:

I see that vPortDefineHeapRegions() contains the same assert check,
but I don’t see the code that change the pxEnd before the assert check.

rtel wrote on Tuesday, March 10, 2015:

I see that vPortDefineHeapRegions() contains the same assert check,

Actually, it doesn’t. It checks pxEnd is NULL to ensure you don’t call
the function twice.

but I don’t see the code that change the pxEnd before the assert check.

It is done in vPortDefineHeapRegions().

Regards.

crippler1 wrote on Tuesday, March 10, 2015:

Where is it done?

rtel wrote on Tuesday, March 10, 2015:

Didn’t I tell you that in my very last post in this thread?

crippler1 wrote on Tuesday, March 10, 2015:

Sorry for the dumb question:

should I use heap for every program that I write?

I have watch some tutorials for free RTOS, and I never saw heap functions at main.

rtel wrote on Tuesday, March 10, 2015:

http://www.freertos.org/a00111.html