2011-11第十一课、RTLinux, uCOS嵌入式软件

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
课程大纲
RT-Linux操作系统 RT-Linux操作系统 实时操作系统μC/OS简介 实时操作系统μC/OS简介 μC/OS 实时操作系统μ /OS-II的内核结构 实时操作系统μC/OS-II的内核结构 实时操作系统μ /OS-II中的中断与任务通讯 实时操作系统μC/OS-II中的中断与任务通讯 实时操作系统µC/OS-II在ARM7上的移植 实时操作系统µC/OS-II在ARM7上的移植 µC/OS 上的 实时操作系统µC/OS实时操作系统µC/OS-III µC/OS
12
的性能特点-2 µC/OS的性能特点 的性能特点
抢占式(Preemptive) 抢占式(Preemptive)实时结构 多任务 C/OS-II可以管理64个任务 其中保留8个给系统。 可以管理64个任务, µC/OS-II可以管理64个任务,其中保留8个给系统。应用程序最多 可以有56 56个任务 可以有56个任务 可确定性 全部µ C/OS-II的函数调用与服务的执行时间是可确定的 的函数调用与服务的执行时间是可确定的。 全部µ C/OS-II的函数调用与服务的执行时间是可确定的。 任务栈 每个任务有自己单独的栈, 允许每个任务有不同的栈空间, 每个任务有自己单独的栈, 允许每个任务有不同的栈空间,以便减 少应用程序对RAM的需求。 RAM的需求 少应用程序对RAM的需求。 系统服务 C/OS-II提供很多系统服务 例如邮箱、消息队列、信号量、 提供很多系统服务, µC/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大 小固定的内存的申请与释放、时间相关函数等。 小固定的内存的申请与释放、时间相关函数等。 中断管理 中断可以使正在执行的任务暂时挂起, 中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该 中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行, 中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中 断嵌套层数可达255 255层 断嵌套层数可达255层。 稳定性与可靠性 13
Tlinux收到实时中断 收到实时中断) if(RTlinux收到实时中断) 继续向硬件发出中断; 继续向硬件发出中断; else if(Linux内核屏蔽它 内核屏蔽它) if(Linux内核屏蔽它) 此中断请求将被忽略; 此中断请求将被忽略; else 将其交于Linux内核来处理; Linux内核来处理 将其交于Linux内核来处理;
4
RTLinux
支持POSIX.1b标准 支持POSIX.1b标准 POSIX 不同于微内核和大型内核,属于实时EXE( EXE(realtime executive)体 不同于微内核和大型内核,属于实时EXE(realtime executive)体 系结构。 系结构。 核技术: 个微型的RTLinux内核把原始的Linux RTLinux内核把原始的Linux内核作为它在空 双核技术:一个微型的RTLinux内核把原始的Linux内核作为它在空 闲wenku.baidu.com的一个线程来运行 闲时的一个线程来运行 Linux内核与硬件中断之间增加一个精巧的可抢先的实时内核 在Linux内核与硬件中断之间增加一个精巧的可抢先的实时内核
µC/OS-II提供的系统服务 提供的系统服务
信号量 带互斥机制的信号量 减少优先级倒置的问题 事件标志 消息信箱 消息队列 内存管理 时钟管理 任务管理
嵌入式系统
AnIntroductiontoEmbeddedSystem
第十一课 嵌入式实时操作系统 RT-Linux,μC/OS RT-Linux,μC/OS
浙江大学计算机学院 陈天洲 2011.4.27 2011夏学期 周三下午1 夏学期, 周四晚上1 2011夏学期,周三下午1-3节,周四晚上1-3节 玉泉曹光彪西501 玉泉曹光彪西501
正常的Linux进程仍可以在Linux内核上运行 正常的Linux进程仍可以在Linux内核上运行 Linux进程仍可以在Linux
既可以使用标准分时操作系统即Linux的各种服务 既可以使用标准分时操作系统即Linux的各种服务 Linux 又能提供低延时的实时环境
RT-Linux
一个实时内核负责处理硬件消息,接管中断, 一个实时内核负责处理硬件消息,接管中断,实时任 务可在该内核上直接运行
没有针对实时操作系统的特性而重写Linux的 没有针对实时操作系统的特性而重写Linux的内核 Linux
工作量非常大 工作量非常大 非常 难以保证兼容性 难以保证兼容性
3
Linux提供实时性需要解决三个问题 提供实时性需要解决三个问题 提供实时性需要解决三个
1.关中断问题
Linux处于内核临界区时,中断会被系统屏蔽 Linux处于内核临界区时,中断会被系统屏蔽 处于内核临界区时 如果当前进程正处于临界区 即使它的优先级较低, 当前进程正处于临界区, 如果当前进程正处于临界区,即使它的优先级较低,也会延迟 高优先级的中断请求。 高优先级的中断请求。
2000年 得到美国航空管理局(FAA)的认证, 2000年,得到美国航空管理局(FAA)的认证,可以用 于飞行器中 11 网站www.ucos II.com( www.ucos网站www.ucos-II.com(www.micrium.com)
µC/OS的性能特点 的性能特点
开源代码 可移植性(Portable) 可移植性(Portable) C/OS-II源码主要用 源码主要 C写 移植性很强的。 µ C/OS-II源码主要用ANSI C写,移植性很强的。 只有和微处理器硬件相关的那部分直接用汇编语言写的 只有和微处理器硬件相关的那部分直接用汇编语言写的,汇编语 言写的部分已经压到最低限度,约200行 言写的部分已经压到最低限度, 200行 限度 µ C/OS-II可以在绝大多数8位、16位、32位以至64位微处理器、 C/OS-II可以在绝大多数8 16位 32位以至64位微处理器、 可以在绝大多数 位以至64位微处理器 数字信号处理器(DSP)上运行。 微控制器 、数字信号处理器(DSP)上运行。 可固化(ROMable) 可固化(ROMable) C/OS-II是为嵌入式应用而设计的 内核可以裁剪得很小, 是为嵌入式应用而设计的, µ C/OS-II是为嵌入式应用而设计的,内核可以裁剪得很小,可 以嵌入到任何产品中 以嵌入到任何产品中 最小内核可编译至 2KB 可裁剪(Scalable) 可裁剪(Scalable) 通过条件编译,可以根据应用需要只使用µ C/OS-II中的部分那 通过条件编译,可以根据应用需要只使用µ C/OS-II中的部分那 些系统服务。 些系统服务。
可以将其用于教学和私下研究 可以将其用于教学和私下研究 用于商业须许可 目前的版本 的版本µ 目前的版本µC/OS -II V2.88
2009年推出µC/OS2009年推出µC/OS-III 年推出
只提供库, 只提供库,不开源 抢先式多任务处理,无数目限制的任务及优先级,时间片轮番调度法 抢先式多任务处理,无数目限制的任务及优先级, 允许多任务具有相同的优先级
2.进程调度问题 2.进程调度问题
内核不可抢占,基于固定时间片的可变优先级调度 内核不可抢占,基于固定时间片的可变优先级调度 固定时间片的可变优先级
3.时钟问题
Linux为了提高系统的平均吞吐率, Linux为了提高系统的平均吞吐率,将时钟中断的最小间隔设 为了提高系统的平均吞吐率 置为10ms 不能满足实时任务的 10ms, 满足实时任务的需要 置为10ms,不能满足实时任务的需要 由于Linux的进程切换比较费时 把时钟间隔改 Linux的进程切换比较费时, 时钟中断变 由于Linux的进程切换比较费时,把时钟间隔改小,时钟中断变 频繁, 在中断处理上的时间就越多 频繁,花在中断处理上的时间就越多
采用完全适应于实时应用的按优先级抢占CPU的调度方法 采用完全适应于实时应用的按优先级抢占CPU的调度方法 CPU 这种方法保证任何时刻都是优先级最高的任务占用CPU CPU。 这种方法保证任何时刻都是优先级最高的任务占用CPU。 优先级最高的任务可以中断当前运行的程序而抢占CPU; 优先级最高的任务可以中断当前运行的程序而抢占CPU; 优先级较低的任务, 优先级较低的任务,只有在所有优先级比它高的任务都运行完 后才能投入运行。 后才能投入运行。
由此可以看出,Linux程序的屏蔽中断( cli)不能禁止 由此可以看出,Linux程序的屏蔽中断( cli)不能禁止 ,Linux程序的屏蔽中断 实时中断的发生, 实时中断的发生,实时中断的延迟时间也完全由实时内 核的处理速度而决定。 核的处理速度而决定。
RTlinux的调度机制 的调度机制
任务调度策略
通过软件来模拟硬件的中断控制器 RT-Linux通过将系统的实时时钟设置为单次触发状态 通过将系统的实时时钟设置为单次触发状态, RT-Linux通过将系统的实时时钟设置为单次触发状态,可以 提供十几个微秒级的调度粒度
课程大纲
RT-Linux操作系统 RT-Linux操作系统 实时操作系统μC/OS简介 实时操作系统μC/OS简介 μC/OS 实时操作系统μ /OS-II的内核结构 实时操作系统μC/OS-II的内核结构 实时操作系统μ /OS-II中的中断与任务通讯 实时操作系统μC/OS-II中的中断与任务通讯 实时操作系统µC/OS-II在ARM7上的移植 实时操作系统µC/OS-II在ARM7上的移植 µC/OS 上的 实时操作系统µC/OS实时操作系统µC/OS-III µC/OS
10
实时操作系统µ 实时操作系统µC/OS简介 简介
1992年美国人Jean Labrosse开发了 开发了µ 1992年美国人Jean Labrosse开发了µC/OS 年美国人 用于照相机、医疗器械、音响设备、发动机控制、 用于照相机、医疗器械、音响设备、发动机控制、高速 公路电话系统、 公路电话系统、自动提款机等诸多应用领域 1998年推出 C/OS年推出µ 1998年推出µC/OS-II
2
RTLinux(A Real-Time Linux) ( )
新墨西哥矿业及科技学院的 Yodaiken开发 新墨西哥矿业及科技学院的V. Yodaiken开发 Fsmlabs公司 Fsmlabs公司
有限状态机实验室 finite state machine labs, 有限状态机实验室
两个版本
RTLinux Free:由社区支持的免费版本 Free: 社区支持的免费版本 RTLinux Pro:FSMLabs的商业版本 Pro:FSMLabs的商业版本 的商业
仅支持底层任务创建、中断服务例程的装人、底层任务通信队列、 仅支持底层任务创建、中断服务例程的装人、底层任务通信队列、中 断服务例程(ISR) Linux进程 (ISR)和 断服务例程(ISR)和Linux进程 把标准的Linux Linux内核作为实时内核的一个进程与用户进程一起调度 把标准的Linux内核作为实时内核的一个进程与用户进程一起调度 标准的Linux内核的优先级最低, Linux内核的优先级最低 标准的Linux内核的优先级最低,可以被实时进程抢断
也支持其他的调度策略
EDP算法(截止时限靠前者最先调度) EDP算法(截止时限靠前者最先调度) 算法 RM算法 周期短者优先级高) 算法( RM算法(周期短者优先级高)等
RTlinux将任务调度器本身设计成一个可装载的内核模 RTlinux将任务调度器本身设计成一个可装载的内核模 用户可以根据自己的实际需要, 块,用户可以根据自己的实际需要,编写适合自己的调 度算法
RTlinux的中断机制 的中断机制
RTlinux采用在Linux内核和中断控制硬件之间增加一 RTlinux采用在Linux内核和中断控制硬件之间增加一 采用在Linux 层仿真软件的方法截取所有的硬件中断, 层仿真软件的方法截取所有的硬件中断,将这些中断分 Linux中断和实时中断两类 中断和实时中断两类。 成Linux中断和实时中断两类。
相关文档
最新文档