Data Abort in pvPortMalloc

saiberion wrote on Tuesday, March 02, 2010:

I hope you can point me in the right direction.
I’m in a situation where my AT91SAM7X512 gets stuck in a data abort while using pvPortMalloc. My program is based on the AT91SAm7S256 example with heap2.c with FreeRTOS 4.8.0
This happens at the end of pvPortMalloc where the found block is splitted and the rest is put into the free block list.
Strangely enough the code segment where I get stucked works fine except in one (and mybe one other) case so far. I already tried enlarging configTOTAL_HEAP_SIZE and the task’s stack size but had no success.

edwards3 wrote on Tuesday, March 02, 2010:

This could be a memory definition problem in the linker script if it is trying to use RAM that does not exist. It could also be a memory alignment issue (possibly). Why are you using such an old version?

kheksel wrote on Wednesday, March 03, 2010:

Doublecheck, whether using of the previously allocated regions is correct.
I faced similar situation when I used memset() function on lager region than I allocated before.


saiberion wrote on Monday, March 15, 2010:

So, because I needed to get forward I skipped using pvPortMalloc by now and use a big enough array to buffer my data. It might not be a good but working solution.
The reason I used 4.8.0: The project wasn’t touched for a long time and I didn’t feel the need to upgrade (but meanwhile did).