说明:该内容示例在如下博客的基础上进行。
三、从官方源码精简出第1个FreeRTOS_朱嘉鼎的博客-CSDN博客
1、创建任务
(1)程序
/*任务1的函数*/
void Task1Function( void * param)
{while(1){printf("task1\r\n");}
}/*任务2的函数*/
void Task2Function( void * param)
{while(1){printf("task2\r\n");}
}int main( void )
{TaskHandle_t xHandleTask1; /*任务1的句柄*/ //...xTaskCreate(Task1Function, "task1", 100, NULL, 1, &xHandleTask1); /*创建任务1*/xTaskCreate(Task2Function, "task2", 100, NULL, 1, NULL); /*创建任务2*///...return 0;
}
(2)创建任务时使用的函数如下
BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, // 函数指针,任务函数 const char * const pcName, // 任务的名字 const configSTACK_DEPTH_TYPE usStackDepth, // 栈大小,单位world,10表示40字节void * const pvParameters, // 调用任务时传入的参数UBaseType_t uxPriority, // 优先级TaskHandle_t * const pxCreatedTask ) //任务句柄,以后使用它来操作这个任务
2、FreeRTOS源码结构
(1)芯片厂商提供的芯片操作库,如STM32的标准库和HAL库。
(2)FreeRTOS的源码。
(3)用户编写的源码。