FreeRTOS学习(一)

FreeRTOS 入门手册_中文版

1 任务函数

由C语言组成 必须返回void 带一个void* 指针参数

void ATaskFunction(void*pvParameter)

{

int iVariableExample=0;

for(;;)

{

死循环

}

}

2 任务状态

总的状态 分两个状态 运行态 休眠态

3创建任务

xTaskCreate(); 创建任务

4任务优先级

xTaskCreate()函数参数列表的倒数第二个参数表示任务的优先级,

如果是任务启动后,可以调用vTaskPrioritySet() 函数进行修改

5 扩充非运行态

如果创建的任务只顾不停地处理自己的事情而没有其它任何事情需要等待,由于它不需要任何等待就能够进入运行态,这种“不停处理”类型的任务就限制了其有用性,因为这种任务只能创建在最低的优先级上。如果他们运行在其它优先级上,比这个任务优先级低的任务永远没有运行的机会。

为了使我们的任务切实有用,我们需要通过某种方式来进行事件驱动。一个事件驱动任务只会在事件发生后触发工作(处理),而在事件没有发生时是不能进入运行态的。一个优先级高的但是不能运行的任务不会被调度器选中,而代之以一个优先级虽然更低但能够运行的任务。因此,采用事件驱动的意义就在于任务可以被创建在许多不同的优先级上,并且最高优先级任务把所有的低优先级任务饿死。

6 阻塞状态

如果一个任务正在等待某个事件,则称这个任务处于“阻塞态”。阻塞态是非运行态的一个子状态。

任务可以进入阻塞态以等待以下两种不同类型的事件:

1 定时事件

2 同步事件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值