嵌入式操作系统基础培训.ppt_第1页
嵌入式操作系统基础培训.ppt_第2页
嵌入式操作系统基础培训.ppt_第3页
嵌入式操作系统基础培训.ppt_第4页
嵌入式操作系统基础培训.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式操作系统基础培训,日期:2019年7月9日,版次:v1.0,培训内容,嵌入式操作系统基本概念 vxWorks操作系统介绍 运行支撑MAP和IAP简介,培训内容,嵌入式操作系统基本概念,实时计算机系统,实时计算机系统 简称为实时系统(real-time system),指能够在确定和限定的时间内执行其功能并对外部的异步事件作出响应的计算机系统。 三个衡量指标: 响应时间(Response Time) 生存时间(Survival Time) 吞吐量(Throughput),实时操作系统,实时多任务操作系统 (Real Time Operating System) 对规模较大的实时系统,需要使用实时多任务操 作系统来加以管理。实时操作系统是指具有实时 性,能支持实时控制系统工作的操作系统。重要 特点是要满足对时间的限制和要求。 实时操作系统可以分为: 一般实时操作系统 嵌入式实时操作系统,嵌入式系统,嵌入式系统 (Embedded System):以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。 交叉开发“宿主机/目标机”方式,嵌入式实时操作系统,嵌入式实时操作系统具备了实时操作系统和嵌入式系统的特征。即采用的是交叉开发的方式,同时要满足实时操作系统对时间的限制和要求。 常用的商用实时操作系统 1.Tornado/VxWorks 2.pSOSystem 3.WindowsCE,任务,任务(task) RTOS的任务是由计算机所执行的一项活动,也就是一段程序,该程序可以认为CPU完全只属于该程序自己。,任务(续),任务的特点: 动态性 并发性 异步独立性 任务的状态: 运行态(Executing) 就绪态(Ready) 等待(waiting,通常又称为挂起,suspend) 休眠(Dormant),状态迁移图,互斥,互斥 用于确保当一个任务使用一个共享资源时,其它任务不能做同样的操作的手段。 与共享资源打交道时,使之满足互斥条件最一般的方法有: 关中断 使用测试并置位指令 禁止做任务切换 利用信号量,同步,同步 在实时系统中通常几个任务是协同工作的,需要在确定的时间里执行各自的功能,这就产生同步问题。 对于单个任务,所谓同步就是使它能在指定的时间执行。一个任务可以通过系统调用来使自己挂起一段时间或者挂起到某一指定的时刻。 通常我们所谓的任务同步,主要是指两个或两个以上的任务需要协调执行的情况。实现同步主要有两种方式:信号量和事件。,任务间通信,任务间通信主要有两种途径 共享数据结构 -全局变量 -缓冲区数据结构 发消息给另一个任务 -邮箱 -消息队列,中断,中断处理 中断是一种硬件机制,用于通知CPU有个异步事件发生了。异步事件是指无一定时序关系的随机发生的事件。中断一旦被识别,CPU就保存部分(或全部)上下文,即部分或全部寄存器值,跳转到专门的子程序,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后,程序回到: 在前后台系统中,程序回到后台程序 对非抢占内核,程序回到被中断的任务 对抢占内核,让进入就绪态的优先级最高的任务开始运行,时钟节拍,时钟节拍 在实时系统中,一般不能缺少实时时钟,它是实时软件运行的必不可少的硬件设施。 实时时钟单纯地提供一个规则的脉冲序列,脉冲之间的间隔可以作为系统的时间基准称为时基,时基的大小代表了实时时钟的精度,这个精度取决于系统的要求。 软时钟方法 硬件所做的工作,死锁,死锁 若一个进程集合中的每一个进程都在等待只能由本集合中的另一个进程才能引发的事件,则这种情况被视为死锁(deadlock)。 例:系统有两个信号量,初始值都是1,任务1和任务2优先级相同。任务1申请到信号量1,此时系统调度到任务2,任务2申请到了信号量2,此时,任务2又想申请信号量1,由于任务1没有释放而阻塞。系统调度任务1运行,任务1想申请信号量2,同样由于任务2没有释放而阻塞。这样一来,任务1和任务2都想获得对方占用的资源,永远都不可能继续执行下去,引起了死锁。,调度策略,实时调度策略 任务调度就是从就绪状态的任务中,挑选一个任务到处理器上运行。 常见的调度算法有: 1.先进先出 2.短任务优先 3.轮循调度 4.基于优先级的抢占式调度,培训内容,vxWorks操作系统介绍,任务的定义,代码,上下文(context),任务上下文,内存位置: TCB 内容: CPU的寄存器(PC+SP+) 堆栈 I/O输入,输出分配的I/O。 延时定时器 时间片定时器 内核的控制结构 信号句柄 其它用于调试和监控的值,任务的状态及转换,任务状态转换图,基于优先级可抢占调度算法,时间片轮转调度算法,抢占禁止,taskLock() /taskUnlock () 执行时间长 不禁止中断 intLock()/intUnlock() 执行时间短 会增加系统的中断时延 不会关掉任务调度(semTake会调度),消息队列,消息队列使用注意,使用消息队列发送和接受消息时都存在着内存拷贝 。因此要注意效率。 如果传递的是指针的话要注意堆栈的问题。 注意消息队列的大小。 中断中可以调用msgQSend ,但必须使用NO_WAIT的方式。,二进制信号量,二进制信号量能够满足两种类型的任务协调需要:互斥和同步。二进制信号量需要的系统开销最小,因而特别适用于高性能的需求。 二进制信号量可以处于两种状态:FULL态或者EMPTY态。FULL态代表信号量可用,一般量化为1;EMPTY态代表信号量不可用,对应的量化为0。 用于互斥时信号量的初始值必须是1(FULL) 用于同步时信号量的初始值必须是0(EMPTY),互斥信号量,互斥信号量:用来解决任务的优先级继承、安全删除和对资源的递归访问等问题。互斥信号量使用有一些特别要求: 1)它只能用于互斥 2)它只能被取走它的任务释放,且可以嵌套调用 3)它不能被中断服务程序使用 4)不能用semFlush()函数对它进行操作,计数信号量,计数信号量是任务同步和互斥的另一种实现方式。计数信号量除了保留信号量被释放的次数的跟踪以外,其他功能和二进制信号量是一样的。每次信号量被释放一次,计数增加1;每次信号量被占用一次,计数减少1。当计数减少为0时,要求得到信号量的任务被阻塞。,中断服务,中断使用注意,不能调用那些由可能引起阻塞的程序 (malloc、free、printf等) 不允许通过VxWorks的驱动来执行其它I/O操作 浮点寄存器 (自己保存和恢复) 请注意能被中断中调用的系统函数 (semGive,logMsg,msgQSend,intLock等),内存划分,LOCAL_MEM_LOCAL_ADRS到RAM_LOW_ADRS之间的空间用于存放一些与具体CPU相关的系统信息如中断向量等; RAM_LOW_ADRS到FREE_RAM_ADRS之间用于存放VxWorks image(映像文件); WDB_POOL_SIZE段专供调试使用; SYSTEM MEMORY POOL与USER_RESERVED_MEM段可供用户使用。,内存分配方式,从静态存储区域分配,固定长度的内存池,如UB:user block 在栈上创建 从堆上分配,即malloc,频繁使用会造成内存碎片,培训内容,运行支撑MAP和IAP简介,支撑系统位置,系统位置 应用模块之下 系统层面之上,支撑系统作用,功能或作用 约束上层应用(框架规范) 简化应用设计 屏蔽系统层面差异 资源控制,便于管理 辅助故障诊断,支撑系统组成,支撑内核模块 内存管理 进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论