【FreeRTOS】1、学习FreeRTOS创建任务
1、学习FreeRTOS创建任务
void liao1( void *pvParameters )
{const char *pcTaskName = "development1111";volatile uint32_t ul; /* volatile用来避免被优化掉 *//* 任务函数的主体一般都是无限循环 */for( ;; ){/* 打印任务1的信息 */printf( pcTaskName );printf("Length of the string (development1111): %zu\n", strlen(pcTaskName));/* 延迟一会(比较简单粗暴) */for( ul = 0; ul < mainDELAY_LOOP_COUNT; ul++ ){}}
}void liao2( void *pvParameters )
{const char *pcTaskName = "##########01 I will become a excellent enginer##########\r\n";volatile uint32_t ul; /* volatile用来避免被优化掉 */char *liao2_string = "ExampleTask";/* 任务函数的主体一般都是无限循环 */int length = strlen(liao2_string);for( ;; ){/* 打印任务1的信息 */printf(liao2_string);printf("Length of the string (liao2_string): %d\n",length);/* 延迟一会(比较简单粗暴) */for( ul = 0; ul < mainDELAY_LOOP_COUNT; ul++ ){}}
}int main( void )
{prvSetupHardware();// xTaskCreate(vTask1, "Task 1", 1000, NULL, 1, NULL);//任务函数 任务名字 栈大小 调用任务函数传入的参数 优先级 任务句柄
// xTaskCreate(vTask2, "Task 2", 1000, NULL, 1, NULL);xTaskCreate(liao1, "Task 1", 1000, NULL, 1, NULL);xTaskCreate(liao2, "Task 2", 1000, NULL, 1, NULL);/* 启动调度器 */vTaskStartScheduler();/* 如果程序运行到了这里就表示出错了, 一般是内存不足 */return 0;
}
/*-----------------------------------------------------------*/
栈就是一块空闲的内存。