[STM32 L1 Discovery Board] [Semaphore] Idle task creation fails

Hi, I am using the STM32 L1 Discovery Board (256KB). I am trying to create two semaphores using the below code:
  osSemaphoreDef(SEM1);
  osSemaphoreDef(SEM2);

  /* Create the semaphore used by the two threads */
//  osSemaphore = osSemaphoreCreate(osSemaphore(SEM) , 1);
  osSemaphoreProducer = osSemaphoreCreate(osSemaphore(SEM1) , 1);
  osSemaphoreConsumer = osSemaphoreCreate(osSemaphore(SEM2) , 1);

  osThreadDef(SEM1_Thread1, Sem_Thread1, osPriorityLow, 0, semtstSTACK_SIZE);
  osThreadDef(SEM2_Thread2, Sem_Thread2, osPriorityIdle, 0, semtstSTACK_SIZE);

  /* Start thread */
  semThreadHandle1 = osThreadCreate(osThread(SEM1_Thread1), NULL);
  semThreadHandle2 = osThreadCreate(osThread(SEM2_Thread2), NULL);

  /* Start scheduler */
  osKernelStart();

  /* We should never get here as control is now taken by the scheduler */
  for (;;);
But I am reaching the infinite for (;;) loop. I debugged and found that the code is not able to create the IDLE Thread. Below is the trace for the failure:
osKernelStart()
    vTaskStartScheduler()
        xTaskCreate( prvIdleTask, "IDLE", ...)
            xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY;
Then I created just one semaphore and the code works perfectly fine. So is there any stack / heap limitation for creating 2 or more semaphores ? If there is any solution, then please do let me know. Awaiting your reply. Thanks, Sunny

[STM32 L1 Discovery Board] [Semaphore] Idle task creation fails

You need to increase the configTOTALHEAPSIZE value. See http://www.freertos.org/a00111.html