我已经在 FreeRTOS 中实现了一个错误任务,该任务将二进制信号量用作错误标志。该故障标志由 STM32 HAL 错误回调函数触发,例如HAL_I2C_ErrorCallback
或HAL_UART_ErrorCallback
。如果发生错误,错误回调函数将调用signalFault()
函数,该函数将通过提供二进制信号量来引发故障标志。
我的问题是:我的signalFault()
函数是否被视为中断服务例程 (ISR),因为它在 HAL ISR 错误回调中被调用?我是否需要调用xSemaphoreGiveFromISR()
或xSemaphoreGive()
函数signalFault()
来提高故障标志?