FreeRtos学习:(一)任务的创建

一、动态创建任务

1、将宏configSUPPORT_DYNAMIC_ALLOCATION

2、创建任务,并配置入口参数:xTaskCreate( )

任务创建后立马进入就绪态,并且开启任务调度对任务运行:vTaskStartScheduler();

3、编写任务函数:函数名要和任务函数的指针相同 

注:一些小知识点:

①任务句柄就是TCB的指针

②临界区保护:创建一个区域,在这个区域内的任务都不会进入运行态,会被打断执行。

进入临界区:taskENTER_CRITICAL( );

退出临界区:taskEXIT_CRITICAL( );

二、任务删除

1、使用删除任务函数,将宏INCLUDE_vTaskDelete配置成1

2、vTaskDelete( )入口参数输入要删除的任务句柄(Null表示删除任务本身)

三、静态任务创建

1、将宏configSUPPORT_STATIC_ALLOCATION配置为1

2、定义空闲任务和定时器任务的任务堆栈和TCB:

空闲任务函数(空闲任务控制块,空闲任务堆栈[数组],堆栈大小):
void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer, 

                                   StackType_t **ppxIdleTaskStackBuffer, 

                                   uint32_t *pulIdleTaskStackSize)
软件定时器任务函数(软件定时器任务控制块,软件定时器任务堆栈[数组],堆栈大小):
void vApplicationGetTimerTaskMemory(StaticTask_t **ppxTimerTaskTCBBuffer, 

                                   StackType_t **ppxTimerTaskStackBuffer, 

                                   uint32_t *pulTimerTaskStackSize)

 3、创建任务,并配置入口参数:xTaskCreateStatic( ),任务句柄不用配置,而是通过此函数的返回值

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值