Posted by Nobody/Anonymous on February 1, 2007
I have made a code using RTOS.There are
16 semaphores(For passing controls between tasks )
yesterday the code with 8 tasks and 10 semaphores was running.There may be some problem in the newly added code. But the problem is that a semaphore passed is not recieved.
Ram in LM3S811 is 8192KB.
Can you tell me the exact significance of
#define configMINIMAL_STACK_SIZE( ( unsigned portSHORT ) 64 )
#define configTOTAL_HEAP_SIZE( ( size_t ) ( 7000 ) )
#define configMAX_TASK_NAME_LEN( 3 )
as changing these may help.
RE: Configuration Problem
Posted by Richard
on February 1, 2007
See http://www.freertos.org/a00110.html and http://www.freertos.org/a00111.html.
If you ran out of heap you would not be able to create the semaphore - are you checking the return value when the semaphore is created. Once the semaphore is created successfully it should not make any difference.
It looks like you are not using the latest FreeRTOS.org release. This does not matter in this case, but in later releases I changed these definitions to get around the 16K RAM+ROM limit imposed by the eval versions on the Keil tools. Instead of allocating a 7KByte array for the heap I just created a pointer to the end of the used memory. While this has the advantage of taking 7K from the RAM+ROM limit, it has the disadvantage of not being able to determine when the heap was exhausted making error detection harder.
Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd..
See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.