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:
if(EXTI_GetITStatus(EXTI_Line0) != RESET)
static portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
xHigherPriorityTaskWoken = pdFALSE;
xSemaphoreGiveFromISR( xBinarySemaphore, &xHigherPriorityTaskWoken );
After 2 press hardfault exception occurs.
- 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?