Hard Fault after Interupt processing

sirdogged wrote on Tuesday, September 25, 2012:

I installed and configured freeRTOS 7.2.0. After that i wrote a test program just to play with semaphores. If i push button on the board, led flashing mode should change. So i implemented all tasks, and, the strange fact is ISR process only one interrupt from the buttion, after second it executes portEND_SWITCHING_ISR function and hardfaults immidiatly.
Could someone help me?
Here is my code:
Here is problem part:

void EXTI0_IRQHandler(void)
	  if(EXTI_GetITStatus(EXTI_Line0) != RESET)
		  static portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
		  xHigherPriorityTaskWoken = pdFALSE;
		  xSemaphoreGiveFromISR( xBinarySemaphore, &xHigherPriorityTaskWoken );

After 2 press hardfault exception occurs.

rtel wrote on Wednesday, September 26, 2012:

Some ideas.

- The code you post does not show the interrupt priority being set, or the number of preemption priority bits being set.  Please see http://www.freertos.org/RTOS-Cortex-M3-M4.html.

- When cr is 1, you create vBlinkLed before deleting vBlinkLed1.  Are they trying to access the same hardware pins simultaneously?

- What is being executed when the hard fault occurs?