第十三 RTX实时多任务操作系统PPT学习教案.pptx
上传者:风~吹
2022-07-23 07:14:41上传
PPTX文件
390 KB
会计学
1
第十三 RTX实时多任务操作系统
13.1 多任务编程思想
13.1.1 单任务机制工作原理
在单任务机制下,各功能模块按固定顺序构成一个整体,作为一个任务得到执行。各个模块要求的执行频率不一致时程序难以满足。
需在运行时动态改变执行结构的系统,程序需用许多条件判断和分枝转移语句进行控制,增加了程序的复杂性。
其可读性和可维护性很差,调试不便。增加了系统扩充难度。
第1页/共39页
13.1.2 多任务机制工作原理
各功能模块处于等同地位。
各功能模块执行顺序可在程序运行过程中动态地改变。
各功能模块的执行频率表现为它们的优先级。
各子任务在自已的时间片内运行,通过合理设计时间片大小和各任务的优先级,可以自然地满足系统内各种复杂的时序要求。
第2页/共39页
13.2 RTX51的特点及运行要求
RTX51 执行循环多任务处理,允许几个循环任务准并行执行。
任务并不同时执行而是按时间分段执行,有效的CPU 时间划分成时间段并由RTX51 将时间段分配给每个任务。每个任务允许执行预定数量的时间,然后RTX51 切换到另一个任务运行,时间段非常短,通常仅有几个毫秒,因此任务看起来好象是同时执行的。RTX51 使用一个定时子程序,其中断驱动是由8051的硬件定时器产生周期性中断来驱动RTX51时钟。
RTX51 不要求程序中有主函数。它自动从任务0 开始执行,如果有主函数,则必须使用os_create_task(RTX51 Tiny)或os_start_system(RTX51 Full)函数启动RTX51。
第3页/共39页
13.2.1 RTX51的特点
RTX51有2个模式:RTX51完全模式和最小模式。RTX51 Tiny是RTX51的一个子集,支持RTX51中绝大多数的特性,且不需要外部RAM (XDATA)。RTX51 Tiny 支持RTX51 Full 的许多特性,但不具有以下功能:
由循环多任务处理和信号实现任务切换
不支持优先任务切换
不包含信息子程序
无存储器库分配子程序
第4页/共39页
13.2.2 RTX51对硬件的要求
第5页/共39页
13.2.3 RTX51对软件的要求
在使用实时多任务操作系统 RTX51 TINY 时,需要以下软件支持:
1)C51 编译器
2)BL51 连接定位器
3)A51 宏汇编器
库文件 RTX51TNY.LIB 必须存储在 C51\LIB 下,必须指定 C51 运行库的路径。头文件 RTX51TNY.H 必须存储在C51\INC下,必须指定C51包含文件的路径。
RTX51 TINY 可以在没有外部数据存储器的单片机8051系统中运行,但应用程序可以存取外部存储器。RTX51 TINY 可以使用 C51 编译器支持的存储器模式,存储器模式的选择仅影响应用程序目标文件的定位。RTX51 TINY 的系统变量以及应用程序的堆栈区总是位于8051 的内部数据存储器中(DATA/IDATA),典型地,RTX51 TINY 应用程序应采用 SMALL 编译模式。
第6页/共39页
13.3 RTX51基本概念及实例分析
13.3.1 任务的状态及定义
RTX51区分2类任务:快速任务和标准任务。快速任务有很快的响应速度,每个快速任务使用8051一个单独的寄存器组,并且有自己的堆栈区域。RTX51支持最大同时有3个快速任务。标准任务需要多一点的时间来进行任务切换,因此使用的内部RAM相对快速任务要少,所有的标准任务共用1个寄存器组和堆栈。当任务切换的时候,当前任务的寄存器状态和堆栈内容转移到外部存储器中。
RTX51 FULL支持任务最多达64个,但一般RTX51 TINY支持最大16个标准任务。
第7页/共39页
RTX51任务状态
1)运行(RUNNING):当前正在运行的任务处于RUNNING状态,同一时间只有1个任务可以运行。
2)就绪(READY):等待运行的任务处于READY状态,在当前运行的任务退出运行状态后,就绪队列中优先级最高的任务进入到运行状态。
3)阻塞(BLOCKED):等待一个事件的任务处于BLOCKED状态,如果事件发生且优先级比正在运行的任务高,此任务进入运行状态;如果优先级比正在运行的任务低,此任务进入READY状态。
4)删除(DELETED):没有开始的任务处于删除状态。
第8页/共39页
RTX51任务状态
5)任务切换
RTX51是抢占式多任务系统;在时间片轮转模式下,同级别的任务
1
第十三 RTX实时多任务操作系统
13.1 多任务编程思想
13.1.1 单任务机制工作原理
在单任务机制下,各功能模块按固定顺序构成一个整体,作为一个任务得到执行。各个模块要求的执行频率不一致时程序难以满足。
需在运行时动态改变执行结构的系统,程序需用许多条件判断和分枝转移语句进行控制,增加了程序的复杂性。
其可读性和可维护性很差,调试不便。增加了系统扩充难度。
第1页/共39页
13.1.2 多任务机制工作原理
各功能模块处于等同地位。
各功能模块执行顺序可在程序运行过程中动态地改变。
各功能模块的执行频率表现为它们的优先级。
各子任务在自已的时间片内运行,通过合理设计时间片大小和各任务的优先级,可以自然地满足系统内各种复杂的时序要求。
第2页/共39页
13.2 RTX51的特点及运行要求
RTX51 执行循环多任务处理,允许几个循环任务准并行执行。
任务并不同时执行而是按时间分段执行,有效的CPU 时间划分成时间段并由RTX51 将时间段分配给每个任务。每个任务允许执行预定数量的时间,然后RTX51 切换到另一个任务运行,时间段非常短,通常仅有几个毫秒,因此任务看起来好象是同时执行的。RTX51 使用一个定时子程序,其中断驱动是由8051的硬件定时器产生周期性中断来驱动RTX51时钟。
RTX51 不要求程序中有主函数。它自动从任务0 开始执行,如果有主函数,则必须使用os_create_task(RTX51 Tiny)或os_start_system(RTX51 Full)函数启动RTX51。
第3页/共39页
13.2.1 RTX51的特点
RTX51有2个模式:RTX51完全模式和最小模式。RTX51 Tiny是RTX51的一个子集,支持RTX51中绝大多数的特性,且不需要外部RAM (XDATA)。RTX51 Tiny 支持RTX51 Full 的许多特性,但不具有以下功能:
由循环多任务处理和信号实现任务切换
不支持优先任务切换
不包含信息子程序
无存储器库分配子程序
第4页/共39页
13.2.2 RTX51对硬件的要求
第5页/共39页
13.2.3 RTX51对软件的要求
在使用实时多任务操作系统 RTX51 TINY 时,需要以下软件支持:
1)C51 编译器
2)BL51 连接定位器
3)A51 宏汇编器
库文件 RTX51TNY.LIB 必须存储在 C51\LIB 下,必须指定 C51 运行库的路径。头文件 RTX51TNY.H 必须存储在C51\INC下,必须指定C51包含文件的路径。
RTX51 TINY 可以在没有外部数据存储器的单片机8051系统中运行,但应用程序可以存取外部存储器。RTX51 TINY 可以使用 C51 编译器支持的存储器模式,存储器模式的选择仅影响应用程序目标文件的定位。RTX51 TINY 的系统变量以及应用程序的堆栈区总是位于8051 的内部数据存储器中(DATA/IDATA),典型地,RTX51 TINY 应用程序应采用 SMALL 编译模式。
第6页/共39页
13.3 RTX51基本概念及实例分析
13.3.1 任务的状态及定义
RTX51区分2类任务:快速任务和标准任务。快速任务有很快的响应速度,每个快速任务使用8051一个单独的寄存器组,并且有自己的堆栈区域。RTX51支持最大同时有3个快速任务。标准任务需要多一点的时间来进行任务切换,因此使用的内部RAM相对快速任务要少,所有的标准任务共用1个寄存器组和堆栈。当任务切换的时候,当前任务的寄存器状态和堆栈内容转移到外部存储器中。
RTX51 FULL支持任务最多达64个,但一般RTX51 TINY支持最大16个标准任务。
第7页/共39页
RTX51任务状态
1)运行(RUNNING):当前正在运行的任务处于RUNNING状态,同一时间只有1个任务可以运行。
2)就绪(READY):等待运行的任务处于READY状态,在当前运行的任务退出运行状态后,就绪队列中优先级最高的任务进入到运行状态。
3)阻塞(BLOCKED):等待一个事件的任务处于BLOCKED状态,如果事件发生且优先级比正在运行的任务高,此任务进入运行状态;如果优先级比正在运行的任务低,此任务进入READY状态。
4)删除(DELETED):没有开始的任务处于删除状态。
第8页/共39页
RTX51任务状态
5)任务切换
RTX51是抢占式多任务系统;在时间片轮转模式下,同级别的任务
第十三 RTX实时多任务操作系统PPT学习教案