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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!