"Section placement failed" error

kyle-shneider wrote on Wednesday, March 22, 2017:

Developing a project in IAR 6.7 on stm32l151 platform. IAR gives error:

Error[Lp011]: section placement failed
unable to allocate space for sections/blocks with a total estimated minimum size of 0x4068 bytes in <[0x20000000-0x20003fff]> (total uncommitted space 0x4000).

Removing creation of massive FreeRTOS user processes helped to eliminate error, so this problem connected to FreeRTOS. Randomly changing heap and stack also helped:

#define configMINIMAL_STACK_SIZE		( ( unsigned short ) 60 )
#define configTOTAL_HEAP_SIZE			( ( size_t ) ( 8 * 1024 ) )

At the begining i used default values: 85 for stack and 10240 for heap. Few user processes use configMINIMAL_STACK_SIZE* 2 value.
So what’s the origin of this error and how to prevent it’s appearing in the future?

rtel wrote on Wednesday, March 22, 2017:

Removing creation of massive FreeRTOS user processes helped to eliminate
error, so this problem connected to FreeRTOS.

Sounds like it is a linker error, not an RTOS error, or at a minimum it
is a problem with your “massive user process” using too much RAM which
is resulting in a linker error because it is using more RAM than you have.

Randomly changing heap and
stack also helped:

Doing stuff randomly rarely helps in the long run.

#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 60 )
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 8 * 1024 ) )

At the begining i used default values: 85 for stack and 10240 for heap.
Few user processes use configMINIMAL_STACK_SIZE* 2 value.
So what’s the origin of this error and how to prevent it’s appearing in
the future?

If you attempt to use more RAM than the processor you are running on has
available then your application will not link…it can’t because you
are asking it to do something impossible.

The following links might help: http://www.freertos.org/a00111.html

kyle-shneider wrote on Wednesday, March 29, 2017:

Thanks for answer!