常见的RTOS有:
- VxWorks:广泛应用于工业、医疗、通信和航空航天领域。
- FreeRTOS:一个开源的RTOS,广泛用于嵌入式设备。
- uc/OS:一个适用于教育和小型商业项目的RTOS。
- QNX:主要应用于汽车和工业自动化领域。
- Windows CE(现在称为Windows Embedded Compact):微软提供的嵌入式操作系统。\
主要特点包括:
- 确定性(Determinism):系统能够保证在给定的时间限制内完成特定的任务。
- 任务调度(Task Scheduling):RTOS通常采用优先级为基础的抢占式调度策略,以确保高优先级任务能够及时执行。
- 中断处理(Interrupt Handling):快速和高效的中断处理是RTOS的关键特性,它能够快速响应外部事件。
- 内存管理(Memory Management):为了提高效率,RTOS通常采用静态内存分配而不是动态内存分配。
- 同步和通信机制(Synchronization and Communication Mechanisms):如互斥锁(mutex)、信号量(semaphore)、事件标志(event flag)和消息队列(message queue)等,以确保任务间的正确通信和数据一致性。
嵌入式系统类型:
- 按复杂度分:
- 复杂嵌入式系统:这类系统一般使用Linux、Android等全功能操作系统。使用应用处理器,具备复杂的人机、网络、文件系统等。
- 深度嵌入式系统:这类系统比较简单,通常不使用操作系统,或者仅仅使用RTOS(实时操作系统)。处理器一般是微控制器(MCU)或DSP等,仅具备简单的人机交互,甚至没有人机交互,物联网设备多属于此类。
- 按所使用的操作系统分:
- Rich OS类(全能操作系统):这类嵌入式系统运行功能非常齐全的操作系统,例如Linux、Android、iOS等。这类系统通常使用应用处理器,如Cortex-A、x86等架构的处理器。智能手机、平板电脑、智能电视、车载娱乐系统等属于这类系统。
- RTOS类(实时操作系统):这类嵌入式系统运行功能紧凑但具有很强实时性的RTOS,例如FreeRTOS、RT-Threads、uC/OS-II等。这类系统通常使用微控制器,例如Cortex-M、MSP430、AVR、PIC等架构的微控制器。有些高性能的应用场合也可能会选用应用处理器。
- Bare-metal类:这类嵌入式系统不包含任何操作系统,可能会包含事件调度器。这类系统也使用微控制器,主要是功能比较单一的应用。
- 按硬件组成分:
- 嵌入式微处理器:通常以某一种微处理内核为核心,每一种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置和封装。
- 微控制器(MCU):又称单片机,与微处理器相比,微控制器的最大优点在于单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。
- DSP处理器(DSP):对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率高,指令执行速度也高。
内部区别
裸机系统
裸机系统是一种没有配置任何操作系统和定制服务的物理硬件设备,用户需要自行安装和配置操作系统及其他软件。它直接运行在物理硬件上
轮询系统
轮询系统即是在裸机编程的时候,先初始化好相关的硬件,然后让主程序
在一个死循环里面不断循环,顺序地做各种事情,通常只适用于那些只需
要顺序执行代码且不需要外部事件来驱动的就能完成的事情
前后台系统
相比轮询系统,前后台系统是在轮询系统的基础上加入了中断。外部事件
的响应在中断里面完成,事件的处理还是回到轮询系统中完成,中断在这
里我们称为前台,
main()
函数里面的无限循环我们称为后台。
多任务系统
相比前后台系统,多任务系统的事件响应也是在中断中完成的,但是事件
的处理是在任务中完成的。在多任务系统中,任务跟中断一样,也具有优
先级,优先级高的任务会被优先执行。当一个紧急的事件在中断被标记之
后,如果事件对应的任务的优先级足够高,就会立马得到响应。