- 裸机与RTOS对比
裸机:
- 实时性差 应用程序轮流执行,中断也只能执行少量任务,大多只能给予状态标志, 仍然在主函数内轮流执行。
- Delay 空等待,CPU不执行其他代码
- 结构臃肿 实现功能都放在无限循环内轮流执行
RTOS:
RTOS强调的是实时性
- 分而治之 实现功能划分为多个任务
- 延时函数 任务调度 高优先级任务中出现延时,则转而运行低优先级任务
- 抢占式 高优先级任务抢占低优先级任务
- 任务堆栈 每个任务都有自己的栈空间,被打断时,都会单独记录断点
注意:中断可以打断任意任务
任务是可以拥有同等优先级的
- FreeRTOS简介
FreeRTOS是一个免费的嵌入式实时操作系统
- 免费开源 商业产品中使用,无潜在商业风险,无须担心
- 可裁剪 核心代码9000+行,可根据需要裁剪
- 简单易用,可移植性非常好
- 优先级不限 任务优先级分配没有限制,多任务可同一优先级
- 可创建的实时任务数量没有软件限制
- 支持抢占式、协程式、时间片流转任务调度
关于FreeRTOS学习资料
学习路线:
- 了解任务调度,以及RTOS的特性,打好基础
- 任务启动流程,中断管理,任务切换……
- 列表、队列、信号量、内存管理等