单片机实时多任务操作系统分析 [摘要 ]简要介绍美国 Keil 公司开发的应用于 MCS51 系列单片机的实时多任务操作系统 RTX51 的基本情况和使用方法;分析这个内核的任务管理和内存管理的运行机制及其对硬件的要求,给出其在软件设计中应注意的问题。 [关键词]单片机 C51 RTX51 一、概述 一般说来,单片机的应用系统中都需要同时执行很多任务,我们可以利用实时操作系统来灵活地安排系统资源。RTX51 是美国 Keil 公司开发的一种小型的面对MCS51 系列单片机的实时多任务操作系统,它可以工作于 8051 单片机以及派生家族中,简化了复杂的软件设计,缩短了项目周期。 二、RTX51 介绍 RTX51 有 2 个模式:RTX51 完全模式和最小模式。RTX51 最小模式版是 RTX51 完全版的一个子集,可以很容易地运行在 8051系统上,而不需要外部 RAM。RTX51 完全模式有 4 个任务优先级,可以和中断函数并行处理,各个任务之间通过使用“邮箱”系统来进行信号和消息的传递,可以动态地申请和释放内存;同时,可以强制一个任务停止执行,等待一个中断,或者是其它中断传来的信号量或者消息。 RTX51 任务 RTX51 包括 2 类任务:快速任务和标准任务。快速任务有很快的响应速度,每个快速任务使用 8051 一个单独的寄存器组,并且有自己的堆栈区域。RTX51 支持最大同时有 3 个快速任务。标准任务需要多一点的时间来进行任务切换,因此使用的内部RAM 相对快速任务要少,所有的标准任务共用 1 个寄存器组和堆栈。当任务切换的时候,当前任务的寄存器状态和堆栈内容转移到外部存储器中。RTX51 支持最大 16 个标准任务。 RTX51 任务状态 运行当前正在运行的任务处于 RUNNING状态,同一时间只有 1 个任务可以运行。就绪等待运行的任务处于 READY 状态,在当前运行的任务退出运行状态后,就绪队列中优先级最高的任务进入到运行状态。 堵塞等待一个事件的任务处于 BLOCKED状态,假如事件发生且优先级比正在运行的任务高,此任务进入运行状态;假如优先级比正在运行的任务低,此任务进入READY 状态。删除没有开始的任务处于删除状态。 RTX51 中断处理 RTX51 完全模式提供 2 种方法来处理中断:一种是 C51 的中断函数,另一种是RTX51 的中断。它又可以分为快速任务中断和标准任务中断。对于中断函数这种方法,它同时也可以在不使用 RTX51 的情况下使用,当中断发生的时候,程序就跳到了相应的中断函数,它和正在运...