1 裸机与RTOS介绍
1.1 裸机
对于裸机而言,处理任务是以时间段进行处理:
1.2 RTOS
对于RTOS而言,处理任务是以时间片进行处理:
![](https://i-blog.csdnimg.cn/direct/fd90f924309442d297c819aa8664544f.png)
1.3 裸机与RTOS特点
裸机 | RTOS |
定义:裸机又称为前后台系统,前台指定是中断服务程序,后台指的是大循环即应用程序 | 定义:Real Time OS,就是实时操作系统,强调的是实时性 |
实时性差:(应用程序)轮流执行 | 分而治之:实现功能划分为多个任务 |
delay :空等待,CPU不执行其他代码 | 延时函数:任务调度 |
结构臃肿:实现功能都放在无限循环 | 抢占式:高优先级任务抢占低优先级任务 |
—— | 任务堆栈:每个任务都有自己的栈空间(当中断来时,可以保存寄存器中的数据) |
![]() | ![]() |
注意:
- 在RTOS中,中断可以打断任意任务(中断是内核的,任务是软件实现的)
- 在RTOS中,任务可以同等优先级
- 在RTOS中,如果高优先级的任务一直在运行,只有等待高优先级在执行延时函数,或者等待获取数据的间隙,会把CPU的使用权交出来。
2 FreeRTOS简介
FreeRTOS是一个免费的嵌入式实时操作系统:
- 免费开源:商业产品中使用,无潜在商业风险,无须担心
- 可剪裁:FreeRTOS的核心代码9000+行,包含在3个.c文件中
- 简单:简单易用,可移植性非常好
- 优先级不限:任务优先级分配没有限制(没有限制指的是软件方法,如果使用硬件方法,STM32最多有32个优先级),多任务可同意优先级。
- 任务不限:可创建的实时任务数量没有软件限制,但需要注意的是每一个任务都需要分配任务堆栈,而任务堆栈需要MCU分配内存
- 抢占/协程/时间片:支持抢占式、协程式、时间片流转任务调度