FreeRTOS 任务创建和删除(静态)
2017-10-24 22:25
465 查看
#define configSUPPORT_STATIC_ALLOCATION 1 //打开静态方法 StackType_t TaskStackBuffer[50]; //任务堆栈大小 StaticTask_t TaskTCBBuffer; //任务控制块大小 StackType_t TaskStackBuffer0[50]; StaticTask_t TaskTCBBuffer0; StackType_t TaskStackBuffer1[50]; StaticTask_t TaskTCBBuffer1; TaskHandle_t taskhandle0; TaskHandle_t taskhandle1; StaticTask_t pxIdleTaskTCBBuffer; StackType_t pxIdleTaskStackBuffer[configMINIMAL_STACK_SIZE]; //需要用户添加定义 void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize ) { *ppxIdleTaskTCBBuffer = &pxIdleTaskTCBBuffer; *ppxIdleTaskStackBuffer = pxIdleTaskStackBuffer; *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE; } void vTask0(void *t) { int i = 0; while(1) { i++; if(i == 5) { vTaskDelete(taskhandle1); printf("vTask0: delete vTask1.\r\n"); } printf("vTask: 0.\r\n"); vTaskDelay(1000); } } void vTask1(void *t) { while(1) { printf("vTask: 1.\r\n"); vTaskDelay(1000); } } void start_vTask(void *t) { taskhandle0 = xTaskCreateStatic( vTask0, "vTask0", 50, ( void * ) NULL, 2, (StackType_t *const)TaskStackBuffer0, (StaticTask_t *const)&TaskTCBBuffer0 ); taskhandle1 = xTaskCreateStatic( vTask1, "vTask1", 50, ( void * ) NULL, 3, (StackType_t *const)TaskStackBuffer1, (StaticTask_t *const)&TaskTCBBuffer1 ); vTaskDelete(NULL); } int main(void) { xTaskCreateStatic( start_vTask, "start_vTask", 50, ( void * ) NULL, 1, (StackType_t *const)TaskStackBuffer, (StaticTask_t *const)&TaskTCBBuffer ); vTaskStartScheduler(); }
运行结果:
相关文章推荐
- FreeRTOS静态任务创建与删除
- Project01:FreeRTOS创建任务和删除任务
- FreeRTOS 任务创建和删除(动态)
- FreeRTOS之任务创建删除
- FREERTOS之任务创建删除
- FreeRTOS之任务创建和删除函数
- FREERTOS之任务创建删除
- FreeRTOS系列第10篇---FreeRTOS任务创建和删除
- FreeRTOS动态创建任务和删除任务
- FreeRTOS任务创建和删除API函数
- 02_FreeRTOS任务创建和删除
- FreeRTOS系列第10篇---FreeRTOS任务创建和删除
- FreeRTOS学习笔记——创建任务
- pSOS&Win32--系统调用封装-任务管理(1): 创建 删除 取得
- freertos 任务创建 xTaskCreate xTaskGenericCreate 源代码分析
- 自动创建计划任务 删除
- 自动创建计划任务之删除n天以前的备份文件批处理
- FreeRTOS 任务调度 任务创建
- 深度解剖~ FreeRtos阅读笔记2 任务创建、内核链表初始化
- quartz 2.x 定时任务创建,修改,删除,执行的工具类