FreeRTOS常用的API函数总结 - minichao9901/TangNano-20k-Zynq-7020 GitHub Wiki

参考文献

https://blog.csdn.net/m0_63211938/article/details/133280685
https://blog.csdn.net/weixin_42895086/article/details/120154812

Task

xTaskCreate()
xTaskCreateStatic()
vTaskDelete()
xTaskSuspend()
xTaskResume()

vTaskStartScheduler() 
taskENTER_CRITICAL()
taskEXIT_CRITICAL()
taskENTER_CRITICAL_FROM_ISR()
taskEXIT_CRITICAL_FROM_ISR()

Delay函数

相对延时(用到比较多):vTaskDelay():
绝对延时:vTaskDelayUntil()
将ms转换为ticks:pdMS_TO_TICKS()

例如:vTaskDelay( pdMS_TO_TICKS( 15 ) );

Queue

xQueueCreate()
xQueueSend()
xQueueSendFromISR()
xQueueReceive()
xQueueReceiveFromISR()

BinarySemphore

xSemaphoreCreateBinary()
xSemaphoreCreateBinaryStatic()
xSemaphoreGive()
xSemaphoreGiveFromISR()
xSemaphoreTake()
xSemaphoreTakeFromISR()

CounterSemphore

xSemaphoreCreateCounting()
xSemaphoreCreateCountingStatic() 
uxSemaphoreGetCount()

Mutex

xSemaphoreCreateMutex() 
xSemaphoreCreateMutexStatic()
  • 互斥信号量不能用于中断服务函数中!
  • 在多数情况下,互斥型信号量和二值型信号量非常相似,但是从功能上二值型信号量用于同步,而互斥型信号量用于资源保护。
  • 互斥型信号量和二值型信号量还有一个最大的区别,互斥型信号量可以有效解决优先级反转现象。

事件标志位

xEventGroupCreate()
xEventGroupCreateStatic()
xEventGroupClearBits()
xEventGroupClearBitsFromISR()
xEventGroupSetBits()
xEventGroupSetBitsFromISR()
xEventGroupWaitBits()

软件定时器

xTimerCreate()
xTimerCreateStatic()
xTimerStart()
xTimerStop()
xTimerReset()
xTimerChangePeriod()
xTimerStartFromISR()
xTimerStopFromISR()
xTimerResetFromISR()
xTimerChangePeriodFromISR()