FREERTOS(入门自学)----基础知识了解

2023-12-29 04:27:03

RTOS:实时操作系统

?一:裸机与RTOS的区别

1.对于多个同级事件处理,比如做菜和烧水,对于裸机来说,你在烧水的时候必须盯着烧水,一直到水烧开后才做菜。而RTOS是在烧水的时候可以做菜,偶尔还可以看看水是否烧开。

2.对于更高级的事件到来,比如做饭做着突然着火了,裸机进入中断,灭完火,就又做菜了。而RTOS会灭完火后,还能再给自己治疗伤口什么的时间更长的事,然后再去做饭。

3.也就是说RTOS可以充分利用时间和CPU资源。

二:RTOS特点

1.分任务:一个功能可以分多个任务,每个任务都有自己独立的while

2.任务调度:任务延时函数是让出CPU资源去执行其他任务,而不是原来的Delay等待

3.任务堆栈:每个任务都有自己的堆栈,储存被打断前执行完的数据

4.抢占式:高优先级任务抢占低优先级任务

三:为什么使用FREERTOS

1.免费的使用和开源

2.市场主流

3.稳定性,安全性好

4.好用,上手简单

5.优先级不限,且数字越大,优先级越高。一个优先级下可以挂很多任务。(软件不限,硬件会限制,如STM32是0~31)

四:任务调度

1.指:利用调度算法决定执行哪个任务

2.三个调度方法:

1>抢占调度:高低优先级

2>时间调度:同级任务,到时间切换,即为一个时间片(Tick)。一个时间片等于一个滴答时钟(SysTick)中断周期。若没运行到一个Tick就阻塞,直接下一个任务,把没运行的扔了。采用时间片轮回。

3>携程式调度:(了解,不咋儿用了,渐渐被淘汰)

五:任务状态

运行态:当前只能有一个任务执行

阻塞态:任务阻塞

挂起态:任务暂停

就绪态:任务准备好要执行,只有就绪态能进入运行态

任务状态列表:除运行态,其他三种任务态都有列表

就绪列表的搜寻:对应32个优先级,若创建Task1且优先级31,bit31会置1,在搜寻时知道其中有任务创建。若优先级31中有两个及以上任务,采用时间调度的方式执行

学习来源正点原子

文章来源:https://blog.csdn.net/Lapland7/article/details/135232091
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。