vSemaphoreCreateBinary ERROR

I port FreeRTOS to a new CPU.And it can run in simple 2 tasks which have the same priority using preemption. Now I use vSemaphoreCreateBinary to create a Semaphore to let 2 tasks giving and taking Semaphore.But run fail when vTaskStartScheduler()

CODE HERE

    xTaskCreate( vTestTask, "Task 1", configMINIMAL_STACK_SIZE, (void *) &task1id,tskIDLE_PRIORITY + 2, NULL );     gdb_putc(1);     xTaskCreate( vTestTask, "Task 2", configMINIMAL_STACK_SIZE, (void *) &task2id,tskIDLE_PRIORITY + 2, NULL );     vSemaphoreCreateBinary( xSemaphore );         if(xSemaphore != NULL)     {           gdb_putc(5);     }        gdb_putc(7);     vTaskStartScheduler();     // FAIL HERE

vSemaphoreCreateBinary ERROR

Which processor? vTaskStartScheduler will return if there is insufficient RAM to create the idle task.