全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 ARM寄存器组织 ARM微处理器共有37个32位寄存器 分成两大类 31个通用32位寄存器 6个状态寄存器 但是这些寄存器不能被同时访问 具体哪些是可编程访问的取决于微处理器的工作状态及具体的运行模式 但在任何时候 通用寄存器R0 R14 程序计数器PC 一个或两个状态寄存器都是可访问的 ARM的通用寄存器包括R0 R15分三类 1 未分组寄存器R0 R7 2 分组寄存器R8 R14 3 程序计数器PC R15 在汇编语言中寄存器R0 R13为保存数据或地址值的通用寄存器 它们是完全通用的寄存器 不会被体系结构作为特殊用途 并且可用于任何使用通用寄存器的指令 其中R0 R7为未分组的寄存器 也就是说对于任何处理器模式 这些寄存器都对应于相同的32位物理寄存器 寄存器R8 R14为分组寄存器 它们所对应的物理寄存器取决于当前的处理器模式 几乎所有允许使用通用寄存器的指令都允许使用分组寄存器 寄存器R8 R12有两个分组的物理寄存器 一个用于除FIQ模式之外的所有寄存器模式 另一个用于FIQ模式 这样在发生FIQ中断后 可以加速FIQ的处理速度 寄存器R13 R14分别有6个分组的物理寄存器 一个用于用户和系统模式 其余5个分别用于5种异常模式 寄存器R13常作为堆栈指针 SP 在ARM指令集当中 没有以特殊方式使用R13的指令或其它功能 只是习惯上都这样使用 但是在Thumb指令集中存在使用R13的指令 R14为链接寄存器 LR 在结构上有两个特殊功能 1 在每种模式下 模式自身的R14版本用于保存子程序返回地址 2 当发生异常时 将R14对应的异常模式版本设置为异常返回地址 有些异常有一个小的固定偏移量 寄存器R15用作程序计数器 PC 当处理器执行在ARM状态 所有指令 32 bits 宽 所有指令必须 word 对齐 所以 pc值由bits 31 2 决定 bits 1 0 未定义 所以指令不能halfword byte对齐 当处理器执行在Thumb状态 所有指令 16 bits 宽 所有指令必须 halfword 对齐 所以 pc值由bits 31 1 决定 bits 0 未定义 所以指令不能 byte对齐 当处理器执行在Jazelle状态 所有指令 8 bits 宽 处理器执行 word 存取一次取4条指令 寄存器R15为程序计数器 PC 它指向正在取指的地址 可以认为它是一个通用寄存器 但是对于它的使用有许多与指令相关的限制或特殊情况 如果R15使用的方式超出了这些限制 那么结果将是不可预测的 ARM的程序状态寄存器 ARM体系结构包含一个当前程序状态寄存器 CPSR 加上5个程序状态保存寄存器SPSR CPSR可以在任何运行模式下被访问 它包括条件码标志位 中断禁止位 当前处理器模式标志位 以及其他一些相关的控制和状态位 SPSR是当异常发生时 用于保存CPSR的状态 程序状态寄存器的功能是 保存ALU当前操作信息 控制允许和禁止中断 设置处理器操作模式 程序状态寄存器每一位的定义 1 条件码标志位 2 控制位 3 保留位 N Z C V为条件码标志位 N 1 结果为负 0 结果为正或0 Z 1 结果为0 0 结果不为0 C 1 进位 0 借位 V 1 结果溢出 0结果没溢出 可以在处理器中作为数学和逻辑操作改变 可以被所有的指令测试 以决定指令是否被执行 N Negative Z Zero C Carry V Overflow 程序状态寄存器的低8位 包括I F T和M 4 0 称为控制位 I and F 位是中断禁止位 I 1 禁止IRQ中断 F 1 禁止FIQ中断 M0 M1 M2 M3 and M4 位是模式位 保留位用于ARM的扩展 Thumb状态寄存器与ARM状态寄存器有如下的关系 Thumb状态R0 R7与ARM状态R0 R7相同 Thumb状态CPSR和SPSR与ARM状态CPSR和SPSR相同 Thumb状态SP映射到ARM状态R13 Thumb状态LR映射到ARM状态R14 Thumb状态PC映射到ARM状态PC R15 ARM工作模式 除用户模式外 其它模式均为特权模式 除系统模式和用户模式外 其他模式为异常模式 ARM内部寄存器和一些片内外设在硬件设计上只允许 或者可选为只允许 特权模式下访问 此外 特权模式可以自由的切换处理器模式 而用户模式不能直接切换到别的模式 用户和系统模式都不能由异常进入 而且它们使用完全相同的寄存器组 系统模式是特权模式 不受用户模式的限制 操作系统在该模式下访问用户模式的寄存器就比较方便 而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源 异常响应 模式切换 当异常发生 CPU进入相应的异常模式时 以下工作是由CPU自动完成的 1 在异常模式的R14中保存前一工作模式的下一条即将执行的指令地址 2 将CPSR的值复制到异常模式的SPSR中 3 将CPSR的工作模式设为该异常模式对应的工作模式 4 令PC值等于这个异常模式在异常向量表中的地址 即跳转去执行异常向量表中的相应指令 从异常返回时 需要由软件来完成以下工作 1 将异常模式的R14减去一个适当的值 4或8 后赋给PC寄存器 2 将异常模式SPSR的值赋给CPSR 3 若在进入异常处理时设置了中断禁止位 要在此清除 CISC与RISC比较 CISC 复杂指令集计算机 RISC 精简指令集计算机 CISC的主要缺点 指令使用频度不均衡 大量复杂指令的控制逻辑不规整 不适于VLSI工艺 复杂指令增加硬件的复杂度 使指令执行周期大大加长 直接访存次数增多 降低了CPU性能 不利于先进指令级并行技术的采用 RISC也有它的缺点 代码密度不高 可执行文件体积较大 汇编代码可读性较差 i 与i 的效率 i 操作本身会影响CPSR 当前程序 状态寄存器 CPSR常见的标志有N 结果为负 Z 结果为0 C 有进位 O 有溢出 i 0 可以直接通过Z标志判断出来 i 操作也会影响CPSR 当前程序状态寄存器 但只影响O 有溢出 标志 这对于i n的判断没有任何帮助 所以还需要一条额外的比较指令 也就是说每个循环要多执行一条指令 进程与线程 在多道程序系统中 各个程序之间是并发执行的 共享系统资源 CPU需要在各个运行的程序之间来回地切换 这样的话 要想描述这些多道的并发活动过程就变得很困难 为此 操作系统设计者提出了进程的概念 一个进程应该包括 程序的代码 程序的数据 PC中的值 用来指示下一条将运行的指令 一组通用的寄存器的当前值 堆 栈 一组系统资源 如打开的文件 总之 进程包含了正在运行的一个程序的所有状态信息 进程的特性 动态性 程序的运行状态在变 PC 寄存器 堆和栈等 独立性 是一个独立的实体 是计算机系统资源的使用单位 每个进程都有 自己 的PC和内部状态 运行时独立于其他的进程 逻辑PC和物理PC 并发性 从宏观上看各进程是同时独立运行的 需要提出一种新的实体 满足以下特性 实体之间可以并发地执行 实体之间共享相同的地址空间 这种实体就是 线程 Thread 它是进程当中的一条执行流程 从两个方面来理解进程 从资源组合的角度 进程把一组相关的资源组合起来 构成了一个资源平台 环境 包括地址空间 代码段 数据 段 打开的文件等各种资源 从运行的角度 代码在这个资源平台上的一条执行流程 线程 进程 线程 资源平台 优点 一个进程中可以同时存在多个线程 各个线程之间可以并发地执行 各个线程之间可以共享地址空间 一个进程和一个线程最显著的区别是 线程有自己的全局数据 线程存在于进程中 因此一个进程的全局变量由所有的线程共享 由于线程共享同样的系统区域 操作系统分配给一个进程的资源对该进程的所有线程都是可用的 正如全局数据可供所有线程使用一样 mC OS的任务就是一个线程 任务的调度 何时进行调度 1 当一个新的任务被创建时 是执行新任务还是继续执行父任务 2 当一个任务运行完毕时 3 当一个任务由于I O 信号量或其他的某个原因被阻塞时 4 当一个I O中断发生时 表明某个I O操作已经完成 而等待该I O操作的任务转入就绪状态 5 在分时系统中 当一个时钟中断发生时 两种调度方式 不可抢占调度方式 一个进程若被选中就一直运行下去 直到它被阻塞 I O 或正在等待其他进程 或主动地交出CPU 以上的情形1 3均可发生调度 可抢占调度方式 当一个进程在运行时 调度程序可以打断它 以上的情形1 5均可发生调度 另外 在其他一些情形下 如就绪队列中有新进程的优先级高于当前正运行的进程 也可能立即进行调度 嵌入式调度算法的评价指标 响应时间 调度器为一个就绪任务进行上下文切换的时间 以及任务在就绪队列中等待的时间 周转时间 一个任务从提交到完成所经历的时间 调度开销 调度算法在执行时所需要的时间和空间开销 公平 大致相当的两个进程所得到的CPU时间也应是大致相同的 防止饥饿 均衡 尽可能使整个系统的各部分 CPU I O 都忙起来 提高系统资源的使用效率 吞吐量 单位时间内完成的任务数 调度算法 先来先服务 FCFS FIFO 按照任务到达就绪队列的先后次序进行调度 不可抢占方式 当前任务占用CPU 直到执行完或被阻塞 才让出CPU给另外一个任务 在任务被唤醒后 如I O完成 并不立即恢复执行 而是放在就绪队列的末尾 优点 简单 公平 易于理解也易于实现 现实生活中应用广泛 排队 短作业优先 SJF 设计目标是改进FCFS算法 减少平均周转时间 SJF算法要求任务在开始执行时预计执行时间 对预计执行时间短的任务优先分派处理器 两种实现方案 不可抢占方式 当前任务在运行时不会被打断 只有运行完毕或阻塞时 才让出CPU 可抢占方式 如果一个新的短任务到来 其运行时间小于当前正在运行任务的剩余时间 则抢占CPU运行 称为SRTF 时间片轮转算法 RR 将所有的就绪任务按照FCFS原则 排成一个队列 每次调度时将处理器分派给队首任务 让其执行一小段CPU时间 时间片 在一个时间片结束时 如果任务还没有执行完的话 将发生时钟中断 在时钟中断中 调度程序将暂停当前任务的执行 并将其送到就绪队列的末尾 然后执行当前的队首任务 如果一个任务在它的时间片用完之前就已结束或被阻塞 那么立即让出CPU 优点 公平性 各个就绪任务平均地分配CPU的使用 时间 假设有n个就绪任务 时间片大小为q 那么每个任务将得到1 n的CPU时间 活动性 每个任务最多等待 n 1 q时间就能够再次得到CPU去运行 缺点 q的大小难以确定 一般在20 50ms q太大 退化为FCFS算法 进程在一个时间片内都执行完 响应时间长 如q 100ms q太小 每个任务都需要更多的时间片才能处理完 任务切换次数增加 增大系统开销 如q 4ms 优先级调度算法 给每个任务设置一个优先级 然后在所有就绪任务中选择优先级最高的那个任务去运行 SJF就是一个优先级算法 每个任务的优先级是 它的CPU运行时间 时间越短 优先级越高 分为可抢占和不可抢占两种方式 各任务优先级 的确定方式可分为静态和动态两种 静态优先级方式 指在创建任务时即确定任务的优先级 并保持不变到任务运行结束 缺点 如果一直有高优先级的任务出现 则它们一直占用着CPU 而低优先级的任务 饥饿 动态优先级方式 指在创建任务时赋予给进程的优先级 在任务运行过程中可以动态改变 以便获得更好的调度性能 为防 饥饿 根据任务的等待时间调整优先级 在就绪队列中 等待时间延长则优先级提高 从而使优先级较低的任务在等待足够的时间后 其优先级提高到可被调度执行 可以把进程按照不同的优先级别分组 然后在不同 级别之间使用优先级算法 而在同一级别的各个进 程之间使用时间片轮转法 实时系统调度 RTOS调度器的主要目标就是要使得每个任务都必须在其最终时间期限 deadline 之前完成 大多数RTOS调度器都采用基于优先级的可抢占调度算法 单调速率调度 RMS 算法 RMS是一种静态优先级调度算法 也是最常用的一种确定任务优先级的算法 思路 单位时间内任务被执行的次数越多 优先级越高 即任务的周期越短 优先级越高 最早期限优先 EDF 调度算法 EDF是一种动态优先级调度算法 也是性能最好的一种调度算法 基本思路 对时间期限最近的任务 分配最高的优先级 mC OS的任务调度 C OS是可抢占实时多任务内核 它总是运行就绪任务中优先级最高的那一个 C OS中不支持时间片轮转法 每个任务的优先级要求不一样且是唯一的 所以任务调度的工作就是 查找准备就绪的最高优先级的任务并进行上下文切换 C OS任务调度所花的时间为常数 与应用程序中建立的任务数无关 确定哪个任务的优先级最高 应该选择哪个任务去运行 这部分的工作是由调度器 Scheduler 来完成的 任务级的调度是由函数OSSched 完成的 中断级的调度是由另一个函数OSIntExt 完成的 根据就绪表确定最高优先级两个关键 将优先级数分解为高三位和低三位分别确定 高优先级有着小的优先级号 异常和中断 异常是指任何打断处理器正常执行 并且迫使处理器进入一个由有特权的特殊指令执行的事件 异常可分为两类 同步异常和异步异常 同步异常 是由内部事件 如处理器指令运行产生的事件 引起的异常包括 在某些处理器体系结构中 对于确定的数据尺寸必须从内存的偶数地址进行读和写操作 从一个奇数内存地址的读或写操作将引起存储器存取一个错误事件并且引起一个异常 造成被零除的算术运算引发一个异常 异步异常 由外部事件 如处理器指令执行不相关的事件 引起的异常称为异步异常 一般这些外部事件与硬件信号相关 又称为中断 包括 复位异常 按下嵌入式板上的复位按钮 触发一个异步的异常 如串口 网口等通讯模块 接收数据包产生异常 陷阱 有意的异常 通常在用户程序和内核之间提供系统调用 故障 由错误情况引起的 它可能被故障处理程序修正 如缺页异常 终止 不可恢复的致命错误造成的结果 如硬件错误 DRAM或SRAM位损坏时发生的奇偶错误 ARM微处理器有两种中断类型 硬件中断 IRQ或FIQ 和软件中断 SWI 软件中断SWI用于用户模式下的程序切换到特权模式 IRQ中断用于通用中断 优先级低 中断延迟长 FIQ中断通常为要求快速响应的个别中断源保留 如DMA传输等 中断延迟是指从外部中断请求信号发出到取出对应的中断服务程序 ISR 的第一条指令 期间的间隔时间 软件可采用两种方法减小中断延迟 嵌套中断和中断优先级 快速中断请求 FIQ 适用于对一个突发事件的快速响应 数据传输和通道处理 保护的需要 这可以加速上下文切换的速度 通过处理器上的FIQ输入引脚 由外部产生FIQ异常 不管异常入口是来自ARM状态还是Thumb状态 FIQ处理程序都会通过执行下面的指令从中断返回 SUBS PC R14 fiq 4 中断请求 IRQ 异常是一个由nIRQ输入端的低电平所产生的正常中断 在具体的芯片中 nIRQ由片内外设拉低 nIRQ是内核的一个信号 对程序员不可见 IRQ的优先级低于FIQ 对于FIQ序列它是被屏蔽的 任何时候在一个特权模式下 都可通过置位CPSR中的I 位来禁止IRQ 不管异常入口是来自ARM状态还是Thumb状态 IRQ处理程序都会通过执行下面的指令从中断返回 SUBS PC R14 irq 4 mC OS C OS II 实时操作系统mC OS II中断处理 中断 由于某种事件的发生而导致程序流程的改变 产生中断的事件称为中断源 CPU响应中断的条件 至少有一个中断源向CPU发出中断信号 系统允许中断 且对此中断信号未予屏蔽 中断一旦被识别 CPU会保存部分 或全部 运行上下文 寄存器的值 然后跳转到专门的子程序去处理此次事件 称为中断服务子程序 ISR 用户ISR的框架 保存全部CPU寄存器的值 调用OSIntEnter 或直接把全局变量OSIntNesting 中断嵌套层次 加1 执行用户代码做中断服务 调用OSIntExit 恢复所有CPU寄存器 执行中断返回指令 在调用OSIntEnter 之前必须先将中断关闭 在任务切换时 为什么使用OSIntCtxSw 而不是调度函数中的OS TASK SW 原因有二点 一半的任务切换工作 即CPU寄存器入栈 已经在前面做完了 需要保证所有被挂起任务的栈结构是一样的 嵌入式数控系统设计开发实例 软件设计 嵌入式 以应用为中心 以计算机技术为基础 软件硬件可裁剪 功能 可靠性 成本 体积 功耗严格要求的专用计算机系统 特点 系统内核小 专用性强 系统精简 高实时性OS 嵌入式软件开发走向标准化 嵌入式系统需要开发工具和环境 嵌入式系统组成 嵌入式计算机系统 执行装置 嵌入式计算机系统组成 硬件层 中间层 系统软件层 应用软件层 嵌入式 以应用为中心 以计算机技术为基础 软件硬件可裁剪 功能 可靠性 成本 体积 功耗严格要求的专用计算机系统 特点 系统内核小 专用性强 系统精简 高实时性OS 嵌入式软件开发走向标准化 嵌入式系统需要开发工具和环境 嵌入式系统组成 嵌入式计算机系统 执行装置 嵌入式计算机系统组成 硬件层 中间层 系统软件层 应用软件层 嵌入式微处理器体系结构 冯 诺依曼体系结构 程序指令存储器和数据存储器合并在一起的存储结构 哈佛体系结构 程序指令存储器和数据存储器分开的体系结构 流水线技术 几个指令可以并行执行 提高了CPU的运行效率
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考英语吉林试卷及答案
- 2026年安全员之A证考试题库500道附完整答案【全优】
- 2025年高校教师资格证之高等教育法规考试题库及答案【名师系列】
- 澄海区升中考试卷及答案
- 小班认知训练远山
- 关于某某个人委托定制生物发光宠物合同
- 关于某某个人参与超长期(百年)科学实验的志愿协议
- 2025年石家庄经济职业学院单招职业技能测试题库及参考答案详解名师
- 谁的耳朵(幼儿园)课件
- 建筑设计之美
- correlation 测量相关性模板
- 山西农行笔试题目及答案
- 第三单元 分数除法 (讲义)-2025-2026学年六年级上册数学人教版
- 工厂玩手机管理办法规定
- DB35∕T 2169-2024 仲裁庭数字化建设规范
- 2025年福建省国有资产管理有限公司人员招聘笔试备考试题及答案
- 岭南版美术五年级上册3. 童眼看世界 课件(内嵌视频)
- 2025年党员党的基本理论应知应会知识100题及答案
- 2025方便速食行业线上消费趋势洞察
- 讨论防冰涂层的研究现状以及抗冻蛋白在防覆冰领域的应用前景
- 家政公司大酬宾活动方案
评论
0/150
提交评论