实时操作系统:RTX51 深入解析
1. 实时操作系统概述
实时操作系统(RTOS)是位于硬件和用户代码之间的软件,它提供了一个抽象层,将处理器的细节对应用程序隐藏起来。通常,我们也把它称为内核或执行进程。这里主要聚焦于 Keil 为 8051 系列微控制器开发的商业 RTOS——RTX51。
在实时系统中,应用程序层被划分为多个任务。这些任务是具有时间限制、同步和通信关系的通用计算块,一般每个设备由一个独立的任务来表示。任务的时间限制决定了其最坏情况下的执行时间(WCET)或执行截止日期。而且,大多数任务需要与其他任务进行数据或信号的传递,不能孤立运行。
由于只有一个处理器,任何时候只有一个任务在运行。RTOS 负责通过上下文切换来调度任务的运行,并使任务在以下四种状态之间转换:
- READY(就绪) :任务准备好运行,等待 CPU 控制权。
- RUNNING(ACTIVE,运行) :任务正在执行。
- BLOCKED(WAITING,阻塞) :任务等待事件发生或资源可用。
- SLEEPING(休眠) :任务未准备好运行,可能是尚未创建、已终止或已删除。
所有声明的任务初始都处于 SLEEPING 状态。在 RTX51 中, main()
函数通常负责使任务 0 就绪并启动 RTOS。简化版本 RTX51 - Tiny 会自动使任务 0 就绪并进入 RTOS,跳过 main()
函数。任务状态的转换基于任