I am using an STM32F207 platform and the ST HAL drivers. One of the I2C interfaces is connected to a Microchip MCP23017 GPIO expander. The GPIO expander has its interrupt output pin connected to a GPIO pin on the STM32F207.
When the interrupt is triggered the HAL calls
HAL_GPIO_EXTI_IRQHandler() which clears the interrupt within the microcontoller and then calls
HAL_GPIO_EXTI_Callback() do the actual work of reading the GPIO expander to determine what caused the interrupt and then pass that information to a FreeRTOS task to deal with it or should
HAL_GPIO_EXTI_Callback() simply wake up a FreeRTOS task and have the task read the GPIO expander?