FreeRTOS常用函数清单

任务相关

//	创建任务函数
portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode , 
			   const signed portCHAR * const pcName , 
			   unsigned portSHORT usStackDepth , 
			   void *pvParameters,
			   unsigned portBASE_TYPE uxPriority ,
			   xTaskHandle *pxCreatedTask );
							
//	延时函数
void vTaskDelay( portTickType xTicksToDelay );

//	精确延时函数
void vTaskDelayUntil( portTickType * pxPreviousWakeTime , portTickType xTimeIncrement );
	
//	空闲任务钩子函数
void vApplicationIdleHook( void );

//	改变任务优先级函数
void vTaskPrioritySet( xTaskHandle pxTask , unsigned portBASE_TYPE uxNewPriority );

//	查询任务优先级函数
unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle pxTask );

//	删除任务函数
void vTaskDelete( xTaskHandle pxTaskToDelete );

队列相关

//	创建队列函数
xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength , unsigned portBASE_TYPE uxItemSize );

//	发送数据至队首函数
portBASE_TYPE xQueueSendToFront( xQueueHandle xQueue , const void * pvItemToQueue , portTickType xTicksToWait );

//	发送数据至队尾函数
portBASE_TYPE xQueueSendToBack( xQueueHandle xQueue , const void * pvItemToQueue , portTickType xTicksToWait );

//	从队列接收数据函数
portBASE_TYPE xQueueReceive( xQueueHandle xQueue , const void * pvBuffer , portTickType xTicksToWait );

//	从队列接收数据函数
portBASE_TYPE xQueuePeek( xQueueHandle xQueue , const void * pvBuffer , portTickType xTicksToWait );

//	查询队列有效数据个数函数
unsigned portBASE_TYPE uxQueueMessagesWaiting( xQueueHandle xQueue );

中断相关

//	创建二值信号量函数
void vSemaphoreCreateBinary( xSemaphoreHandle xSemaphore );

//	获取信号量函数
portBASE_TYPE xSemaphoreTake( xSemaphoreHandle xSemaphore , portTickType xTicksToWait );

//	在中断里给出信号量函数
portBASE_TYPE xSemaphoreGiveFromISR( xSemaphoreHandle xSemaphore , portBASE_TYPE *pxHigherPriorityTaskWoken );

//	创建计数信号量函数
xSemaphoreHandle xSemaphoreCreateCounting( unsigned portBASE_TYPE uxMaxCount , unsigned portBASE_TYPE uxInitialCount );

//	在中断里发送数据至队首函数
portBASE_TYPE xQueueSendToFrontFromISR( xQueueHandle xQueue , void *pvItemToQueue , portBASE_TYPE *pxHigherPriorityTaskWoken );

//	在中断里发送数据至队尾函数
portBASE_TYPE xQueueSendToBackFromISR( xQueueHandle xQueue , void *pvItemToQueue , portBASE_TYPE *pxHigherPriorityTaskWoken);

资源管理相关

//	临界区
taskENTER_CRITICAL();
/****用户代码****/
taskEXIT_CRITICAL();

//	挂起调度器函数
void vTaskSuspendAll( void );

//	唤醒调度器函数(时间较长)
portBASE_TYPE xTaskResumeAll( void );

//	创建互斥信号量函数
xSemaphoreHandle xSemaphoreCreateMutex( void );

你可能感兴趣的:(学习笔记)