I’m stuck when I try to use vTaskNotifyGiveFromISR
in ISR on my STM32F4 DISC board, I use FreeRTOS Kernel V10.3.1.
First of all in my main.c I create two task,
xTaskCreate((TaskFunction_t) T_initTask, "start_task", 1024,
NULL, 0, (TaskHandle_t *) initTask);
xTaskCreate((TaskFunction_t) T_handleRFInt, "start_task", 10124,
NULL, 0, (TaskHandle_t *) handleRFInt);
T_ initTask
init some pin and like PB9 with extern interrupt
....
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
....
My interruptworks fine, so righ now i’d like to use vTaskNotifyGiveFromISR
So here is my HAL_GPIO_EXTI_Callback
function :
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
if (GPIO_Pin == GPIO_PIN_9) {
s_newRf95Interrupt = 1;
vTaskNotifyGiveFromISR(handleRFInt ,&xHigherPriorityTaskWoken);
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
}
And in my second task I have this :
void T_handleRFInt(void const *argument) {
static uint32_t thread_notification;
thread_notification = ulTaskNotifyTake(pdTRUE,
portMAX_DELAY);
if(thread_notification)
{
USER_LOG_INFO("here???");
}
}
I never see my log, what I missed?