FreeRTOS一天一个小知识之任务延时函数vTaskDelay

本文深入剖析FreeRTOS中的延时函数vTaskDelay的工作原理,揭示其如何通过挂起和恢复任务实现精确延时,避免CPU资源浪费。

  想必各位嵌入式工程师对于Delay延时函数再也熟悉不过了~

但对于各位刚入RTOS的小白来说,有操作系统的延时函数,真的和裸机中的延时函数一样吗?FreeRTOS的任务调度是怎么调度的?如何分配系统的CPU?

今天小编就带大家来扒一下FreeRTOS中的延时函数相对延时vTaskDelay函数绝对延时vTaskDelayUntil函数。

从事嵌入式这一行的,想必大家在大学的时候一定上过C语言吧,上C语言的时候老师一定给大家写过Delay这个函数吧,给大家举个最简单的延时函数吧~

void Delay (u32 a)

{

   while(a--);

}

那同学们是否记得老师讲过这样一句话,“在以后项目开发中,千万不要用Delay这种死循环的方式来延时,最好用定时器来代替Delay延时函数“。

一般情况下,老师都会说过的对吧~

这是因为Dealy的延时,是通过CPU做循环的方式来延时,CPU在延时中是做不了其他东西的,大大浪费了CPU的效率!而且非常危险!

所以大家在裸机中如果要需要很长时间延时的话,建议用定时器来延时。但今天的重点不是裸机的延时函数,而是有操作系统的延时函数。

/*********************************************************************************************************************************************************************************/

刚开始学习FreeRTOS的时候看到FreeRTOS的API延时函数,不竟在想,实时操作系统不是讲究的是实时性吗,怎么也会有这种延时函数!给位大佬有没有共同的感受!

后来深入了解FreeRTOS之后,才发现,原来这延时函数写的这么巧妙!

<
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值