# Hard Fault after Interupt processing

**URL:** <https://forums.freertos.org/t/hard-fault-after-interupt-processing/2491>\
**Category:** Kernel\
**Created:** [September 25, 2012, 7:29pm UTC](https://forums.freertos.org/t/hard-fault-after-interupt-processing/2491 "2012-09-25T19:29:28Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://d2v6vdsk2p900z.cloudfront.net/original/1X/7fc8fdb729c645aab5b20282bbe34e57cb407be6.jpeg) [@system](https://forums.freertos.org/u/system)\
**Post date:** [September 25, 2012, 7:29pm UTC](https://forums.freertos.org/t/hard-fault-after-interupt-processing/2491/1 "2012-09-25T19:29:28Z")

</div>

**[sirdogged](https://sourceforge.net/u/sirdogged/)** wrote on [Tuesday, September 25, 2012](https://sourceforge.net/p/freertos/discussion/382005/thread/6e7e0ade/#756b):

Hello.  
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:  
[http://pastebin.com/JLHmR8j7](http://pastebin.com/JLHmR8j7)  
Here is problem part:

```
void EXTI0_IRQHandler(void)
{
	  if(EXTI_GetITStatus(EXTI_Line0) != RESET)
	  {
		  static portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
		  EXTI_ClearITPendingBit(EXTI_Line0);
		  xHigherPriorityTaskWoken = pdFALSE;
		  xSemaphoreGiveFromISR( xBinarySemaphore, &xHigherPriorityTaskWoken );
		  portEND_SWITCHING_ISR(xHigherPriorityTaskWoken);
	  }
}

```

After 2 press hardfault exception occurs.

---

<div class="post-metadata">

**Author:** ![rtel](https://d3iykfbgfh8zhg.cloudfront.net/user_avatar/forums.freertos.org/rtel/32/31_2.png) [@rtel](https://forums.freertos.org/u/rtel)\
**Post date:** [September 26, 2012, 8:55am UTC](https://forums.freertos.org/t/hard-fault-after-interupt-processing/2491/2 "2012-09-26T08:55:09Z")

</div>

**[rtel](https://sourceforge.net/u/rtel/)** wrote on [Wednesday, September 26, 2012](https://sourceforge.net/p/freertos/discussion/382005/thread/6e7e0ade/#780f):

Some ideas.

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

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

- What is being executed when the hard fault occurs?&nbsp;  
[http://www.freertos.org/Debugging-Hard-Faults-On-Cortex-M-Microcontrollers.html](http://www.freertos.org/Debugging-Hard-Faults-On-Cortex-M-Microcontrollers.html)

Regards.
