RTOS(Real Time Operating System),当有外部事件发生时,能够快速响应,调度一切可利用资源,控制实时任务协调一致的运行。
裸机开发:一次只能处理一个任务,无法执行并发处理;代码复杂的情况下,中断响应较快,但同时应对多个中断,不定因素较强,精度低;开发效率较差,需要考虑大量因素,代码复杂时可读性差;适用于简单,功能、资源有限的场景
实时操作系统:利用时间管理和优先级调度提供多任务支持;任务调度可以快速响应事件;开发效率较高,不同任务执行不同功能,代码模块化,可读性好;复杂功能,完全囊括了裸机开发。
实时操作系统和计算机操作系统的区别
目前计算机主流操作系统:
- Windows 个人桌面操作系统
- MacOS 个人桌面操作系统(苹果)
- Linux 小型设备,计算机,移动终端
Windows系统兼容性最强,可以兼容几乎所有软件,适合普通办公和娱乐
MacOS系统的图像处理能力,软件开发能力较强,适合软件开发人员,前端开发人员使用。
Linux系统的可裁剪性,安全性高,开源,可定制,适合极客或黑客
Windows和MacOS虽然功能强大,但是占用内存过大,消耗内存过高,不适合嵌入式开发
嵌入式实时操作系统:RTOS专注于轻量级,实时性,稳定性,相较于主流计算机操作系统,RTOS有更严格的时间控制和响应速度,成本低能耗低,适合嵌入式领域
stm32:FreeRTOS,RT-Thread,U-cosii
国产芯片:HarmonyOS,AliOS
FreeRTOS介绍
FreeRTOS是RTOS的一种,尺寸非常小,可运行于微控制器上,但其使用并不限于微控制器应用
微控制器是尺寸小,资源受限的处理器,它在单个芯片上包含了处理器本身、用于保存要执行的程序的只读存储器(ROM或Flash)、执行程序所需的随机存取存储器(RAM)。一般情况下,程序直接从只读存储器执行
FreeRTOS为可调整的实时示例生成器内核,专为小型嵌入式系统设计。其特点包括
- FreeRTOS示例生成器内核——优先式、合作式及混合式配置选项。
- 官方支持27种架构(ARM7和ARM Cortex M3每个算一种架构)。
- FreeRTOS-MPU支持Cortex M3存储器保护单元(MPU)。
- 设计目标为小尺寸、简单和易用。一般来说,示例生成器内核二进制映像大约为4k到9k
- 代码结构极易移植,主要用C编写。
- 支持任务和协同例程
- 可通过队列、二进制信号量、计数信号量、递归信号量、互斥量在任务间、任务与中断间通信和同步
- 互斥量有优先级继承
- 支持高效的软件定时器
- 强大的执行跟踪功能
- 栈溢出检测选项
- 预配置的示例应用,用于选定的单板电脑,可直接使用,加快学习曲线
- 免费论坛支持,或可选择商业支持和授权
- 可创建的任务数无软件限制
- 可使用的优先级数无软件限制
- 优先级指定无限制--可为多个任务制定同一优先级
- 免费的开发工具可用于很多支持的架构
- 免费的嵌入式软件源码
- 免版税
- 可从标准的Windows主机交叉开发
多任务相关概念
- 什么是任务:任务就是线程,是一个逻辑概念,为实现某一目的而进行的一系列操作,任务是RTOS的基本组成单位
- 任务的优先级