嵌入式系统与通信协议总复习PPT课件.ppt_第1页
嵌入式系统与通信协议总复习PPT课件.ppt_第2页
嵌入式系统与通信协议总复习PPT课件.ppt_第3页
嵌入式系统与通信协议总复习PPT课件.ppt_第4页
嵌入式系统与通信协议总复习PPT课件.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

嵌入式系统与通信协议总复习 1 嵌入式系统定义 以应用为中心 以计算机技术为基础 软件硬件可裁剪 功能 可靠性 成本 体积 功耗严格要求的专用计算机系统 2 1 系统内核小 专用性强 系统精简 高实时性OS 嵌入式系统的几个重要特征 3 实时系统 实时系统的正确性依赖于运行结果的逻辑正确性和运行结果产生的时间正确性 即实时系统必须在规定的时间范围内正确地响应外部物理过程的变化 一个实时操作系统可以在不破坏规定的时间限制的情况下完成所有任务的执行 任务执行的时间可以根据系统的软硬件的信息而进行确定性的预测 也就是说 如果硬件可以做这件工作 那么实时操作系统的软件将可以确定性的做这件工作 4 硬实时软实时 软 意味着如果没有满足指定的时间约束并不会导致灾难性的后果 而对于硬实时系统来说却是灾难性的从实践上说 软实时和硬实时之间的区别通常 隐含的和错误的 与系统的时间精度有关 由于这个原因 典型的 软实时任务的调度精度必须大于千分之一秒 而硬实时任务为微秒级 5 嵌入式系统的软 硬件框架 6 硬件抽象层 硬件层和软件层之间为中间层 也称为硬件抽象层或板级支持包 BoardSupportPackage BSP 它将系统上层软件与底层硬件分离开来 使得系统的底层驱动程序与硬件无关 上层软件开发人员无须关心底层硬件的具体情况 根据BSP层提供的接口即可进行开发 该层一般包含相关底层硬件的初始化 数据的输入 输出操作和硬件设备的配置等功能 BSP具有以下两个特点 硬件相关性 因为嵌入式实时系统的硬件环境具有应用相关性 而作为上层软件与硬件平台之间的接口 BSP需要为操作系统提供操作和控制具体硬件的方法 操作系统相关性 不同的操作系统具有各自的软件层次结构 因此 不同的操作系统具有特定的硬件接口形式 7 冯 诺依曼计算机体系结构1 采用存储程序方式 指令和数据不加区别混合存储在同一个存储器中 数据和程序在内存中是没有区别的 它们都是内存中的数据 当IP指针指向哪CPU就加载那段内存中的数据 指令和数据都可以送到运算器进行运算 如果是不正确的指令格式 CPU就会发生错误中断 2 存储器是按地址访问的线性编址的一维结构 每个单元的位数是固定的 3 指令由操作码和地址组成 操作码指明本指令的操作类型 地址码指明操作数和地址 操作数本身无数据类型的标志 它的数据类型由操作码确定 4 以运算器为中心 I O设备与存储器间的数据传送都要经过运算器 8 与冯 诺曼结构处理器比较 哈佛结构处理器有两个明显的特点 使用两个独立的存储器模块 分别存储指令和数据 每个存储模块都不允许指令和数据并存 使用独立的两条总线 分别作为CPU与每个存储器之间的专用通信路径 而这两条总线之间毫无关联 哈佛体系结构 9 CISC和RISC CISC 复杂指令集 ComplexInstructionSetComputer 具有大量的指令和寻址方式8 2原则 80 的程序只使用20 的指令大多数程序只使用少量的指令就能够运行 RISC 精简指令集 ReducedInstructionSetComputer 在通道中只包含最有用的指令确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单 10 CISC与RISC的对比 11 流水线技术 流水线技术 几个指令可以并行执行提高了CPU的运行效率内部信息流要求通畅流动 译码 取指 执行add 译码 取指 执行sub 译码 取指 执行cmp 时间 Add Sub Cmp 12 什么是进程 Aprocess aprograminexecution 一个进程应该包括 程序的代码 程序的数据 PC中的值 用来指示下一条将运行的指令 一组通用的寄存器的当前值 堆 栈 一组系统资源 如打开的文件 总之 进程包含了正在运行的一个程序的所有状态信息 13 什么是线程 人们又提出了更小的能独立运行的基本单位 线程 进程当中的一条执行流程 进程 线程 资源平台 优点 一个进程中可以同时存在多个线程 各个线程之间可以并发地执行 各个线程之间可以共享地址空间 14 什么是任务 在许多嵌入式操作系统当中 一般把能够独立运行的实体称为 任务 任务是最抽象的 是由软件完成的一个活动 一个任务既可以是一个进程 也可以是一个线程 简而言之 它指的是一系列共同达到某一目的的操作 例如 读取数据并将数据放入内存中 这个任务可以作为一个进程来实现 也可以作为一个线程 或作为一个中断任务 来实现 15 桶形移位寄存器 16 ARM处理器有7种工作模式 17 ARM指令分类 数据处理指令 使用和改变寄存器的值数据传送指令 把存储器的值拷贝到寄存器中 load or把寄存器中的值拷贝到存储器中 store 控制流指令分支分支和链接 保存返回的地址 以恢复最先的次序协处理器指令软件中断指令程序状态寄存器指令 18 协处理器 coprocessor 一种芯片 用于减轻系统微处理器的特定处理任务 例如 数学协处理器可以控制数字处理 图形协处理器可以处理视频绘制 例如 intelpentium微处理器就包括内置的数学协处理器 协处理器可以附属于ARM处理器 一个协处理器通过扩展指令集或提供配置寄存器来扩展内核处理功能 一个或多个协处理器可以通过协处理器接口与ARM内核相连 这些新指令是在ARM流水线的译码阶段被处理的 如果在译码阶段发现是一条协处理器指令 则把它送给相应的协处理器 如果该协处理器不存在 或不认识这条指令 则ARM认为发生了未定义指令异常 19 堆栈操作寻址方式 ARM使用多寄存器Load Store指令来完成堆栈操作 使用堆栈时 需要确定堆栈在存储空间中是向上生长 递增的 A 还是向下生长 递减的 D 满堆栈 F 是指堆栈指针指向堆栈的最后一个已使用的地址或满位置 相反 空堆栈 E 是指SP指向堆栈的第一个没有使用的地址或空位置 20 例 把寄存器内容放入堆栈 更新sp PRE地址数据 POST地址数据 SP SP PRE r1 0 x00000002 r4 0 x00000003 sp 0 x00080014执行指令 STMFDsp r1 r4 POST r1 0 x00000002 r4 0 x00000003 sp 0 x0008000c 21 C OS II体系结构 C OS II微小内核源代码分为3部分 移植代码 配置文件 内核代码 C OS II微小内核 22 公开源代码可移植性可裁剪占先式多任务 C OS II可以管理64个任务 然而 目前这一版本保留8个给系统 应用程序最多可以有56个任务系统服务 C OS II提供很多系统服务 例如邮箱 消息队列 信号量 块大小固定的内存的申请与释放 时间相关函数等 稳定性与可靠性 C OS的性能特点 23 两种调度方式 不可抢占调度方式 一个进程若被选中就一直运行下去 直到它被阻塞 I O 或正在等待其他进程 或主动地交出CPU 以上的情形1 3均可发生调度 可抢占调度方式 当一个进程在运行时 调度程序可以打断它 以上的情形1 5均可发生调度 另外 在其他一些情形下 如就绪队列中有新进程的优先级高于当前正运行的进程 也可能立即进行调度 24 任务状态的状态转换 删除任务 25 任务的状态 休眠 休眠状态 Dormant 任务存在于内存空间中 但内核不可见 可以通过以下函数通知内核 使之变为就绪状态 OSTaskCreate 可以通过以下函数返回到休眠状态 OSTaskDel 26 任务的状态 就绪 就绪状态 Ready 万事具备 只欠CPU 在所有的就绪任务当中 具有最高优先级的任务被选中去运行 如果任务在运行的时候被抢占了CPU 则又回到就绪状态 27 任务就绪表 优先级最低任务 空闲任务 优先级最高任务 任务优先级号 对于整数OSRdyTbl i 0 i 7 若它的某一位为1 则OSRdyGrp的第i位为1 任务的优先级由X和Y确定 28 根据优先级确定就绪表 优先级为9的任务就绪9 1001b 则OSRdyTbl 1 的第1位置1 且OSRdyGrp的第1位置1 相应的数学表达式为 OSRdyGrp 0 x02 OSRdyTbl 1 0 x02 29 使任务脱离就绪态 将任务就绪表OSRdyTbl prio 3 相应元素的相应位清零 而且当OSRdyTbl prio 3 中的所有位都为零时 即该任务所在组的所有任务中没有一个进入就绪态时 OSRdyGrp的相应位才为零 if OSRdyTbl prio 3 30 任务的状态 运行 运行状态 任务在CPU上运行 当一个任务在运行时 如果没有关闭中断 则有可能被中断所打断 当一个任务在运行时 可能因为各种原因进入阻塞状态 OSMBoxPend OSQPend OSSemPend OSTaskSuspend OSTimeDly 31 任务的状态 阻塞 阻塞 等待状态 任务由于正在等待某个事件 信号量 邮箱或队列 而被挂起 当任务等待的事件发生时 回到就绪状态 OSMBoxpost OSQPost OSSemPost OSTaskResume OSTimeDlyResume 或OSTimeTick 32 OSTimeDLY OSTimeDLY 任务延时函数 申请该服务的任务可以延时一段时间 调用OSTimeDLY后 任务进入等待状态 使用方法voidOSTimeDly INT16Uticks ticks表示需要延时的时间长度 用时钟节拍的个数来表示 33 调用OSTimeDLY函数后 系统作的事情有 1 把调用OSTimeDly 的任务在就绪表中的相应位置为0 2 把要延长的时间ticks赋给OSTCBCur OSTCBDly 3 调用OS Sched 找出优先级最高的任务 并运行这个优先级最高的任务 34 由于任务的并发性 且有多个任务均处于就绪态 到底该哪个任务先运行呢 为了满足实时性的要求 C OS 内核采用了 可剥夺型 任务调度算法 C OS 总是运行处于就绪态中优先级最高的任务 任务级的任务调度是由OS Sched 函数完成的 而且任务级的调度要保存所有的状态 中断级的任务调度是由另一个函数OSIntExt 完成的 在中断级的调度中 一些状态在进入中断前已被保存 任务调度 35 OSSched 任务调度器执行流程 36 任务1 任务2 释放 释放 资源同步 图解 资源同步 37 1 使用关中断 通过调用禁止中断函数OS ENTER CRITICAL 和允许中断函数OS EXIT CRITICAL 实现的 2 使用关调度 通过调用禁止任务调度函数OSSchedLock 和允许任务调度函数OSSchedUnlock 实现的 因为禁止调度违背了多任务的初衷 所以不建议用户使用 3 使用信号量与互斥信号量 通过等待信号量和发送信号量实现共享资源的独享 资源同步实现方法 38 其他任何任务和中断都无法得到CPU 直到退出临界段 保证了临界段代码的运行完整性 进入然后退出临界段是 资源同步 的方法之一 能够在访问共享资源时保障信息的可靠性和完整性 进入然后退出临界区 39 任务1 任务2 任务优先级足够高 行为同步 信号量 事件标志组 消息邮箱 消息队列 任务之间的通讯 同步 40 优先级反转 高优先级的任务在申请已经被低优先级任务占据的资源时 高优先级被迫进入等待态 如果有一个中优先级的任务一直在执行 则高优先级将无法

温馨提示

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

评论

0/150

提交评论