中断与FreeRTOS的配合
使用FreeRTOS安全API
中断中使用FreeRTOS资源队列、信号量时,需用“From ISR”后缀的API。
c
复制代码
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
xQueueSendFromISR(queueHandle, &data, &xHigherPriorityTaskWoken);
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
中断优先级限制
FreeRTOS对可使用API的中断优先级有限制:
优先级需高于 configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY。
示例:
c
复制代码
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
|