冯诺依曼体系结构计算机的要点和工作过程_第1页
冯诺依曼体系结构计算机的要点和工作过程_第2页
冯诺依曼体系结构计算机的要点和工作过程_第3页
冯诺依曼体系结构计算机的要点和工作过程_第4页
冯诺依曼体系结构计算机的要点和工作过程_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1 简述冯诺依曼体系结构计算机的要点和工作过程 答 冯诺依曼体系结构计算机的要点 计算机中的信息 程序和数据 以二进制方式表示 程序预存储 机器自动执行 计算机由运算器 控制器 存储器 输入设备和输出设备五大 部分组成 计算机通过执行预存储在存储器中的程序来完成预定的运算 程序由计算机的指 令序列构成 计算机在处理器的控制下 首先从存储器读取一条待执行的指令到处理器中 接下来分析这条指令 而后发出该指令对应的电平脉码序列 即执行该指令 并以此递归运 行程序 2 何谓总线 计算机中有哪几类总线 简述其用途 答 计算机的总线 Bus 就是连接计算机硬件各部件 用于计算机硬件各部件之间信息传输 的公共通道 按照其传送信号的用途属性 总线可细分为 地址总线 Address Bus 数据 总线 Data Bus 和控制总线 Control Bus 三类 地址总线 A Bus 专用于在 CPU 存储器和 I O 端口间传送地址信息的信号线 此 类信号线传送的信息总是从 CPU 到存储器或 I O 端口 它是单向信号线 数据总线 D Bus 专用于在 CPU 存储器和 I O 端口间传送数据信息的信号线 此 类信号线传送的信息可以是从 CPU 到存储器或 I O 端口 写 操作 也可能是从 存储器或 I O 端口到 CPU 读 操作 它是双向信号线 控制总线 C Bus 专用于 CPU 与其它部件之间传送控制信息和状态信息的信号线 此类信号线的构成比较复杂 传送的控制 状态信息可以是从 CPU 到其它部件 也可能是从其它部件到 CPU 此类总线中的某些具体的线是单向的 或从 CPU 到 其它部件 或反之 但作为总线来说 它是双向信号线 3 中央处理器 CPU 是计算机的核心部件 主要功能是解释并执行计算机指令 完成数据处理 和对计算机其他各部分进行控制 存储器是计算机系统中用来存储程序和数据的信息记忆部件 4 嵌入式系统 嵌入式系统 以应用为中心 以计算机技术为基础 软件硬件可裁剪 适应应用系统对功 能 可靠性 成本 体积 功耗严格要求的专用计算机系统 简而言之 嵌入式系统就是 嵌入到目标应用系统中 完成特定处理功能的专用计算机系统 5 嵌入式处理器分类嵌入式微处理器 嵌入式微控制器 嵌入式 DSP 处理器 嵌入式片上系统 1 何谓计算机体系结构 答 计算机体系结构是对计算机较高层次的抽象 是摆脱具体电路的实现而主要着眼于计算机 系统的逻辑特征 原理特征 结构特征和功能特征的抽象 3 什么是 RISC 什么是 CISC 简述他们的特点与差别 答 RISC 是 Reduced Instruction Set Computer 精简指令集计算机 特点是指令系统精炼 处 理器电路逻辑相对简单 且能够以更快的速度执行操作 对于负载的功能需要编程实现 CISC 是 Complex Instruction Set Computer 复杂指令集计算机 特点是指令系统中含有大量 的类似于高级程序设计语言结构的复合功能指令 指令系统庞大 处理器硬件电路的复杂 度 21 存储器和 IO 端口统一编址和独立编址各有什么特点 ARM7 处理器统一编址编址方式 答 统一编址方式 存储器单元资源和 IO 端口资源统一编址在一个地址空间 特点 按地址 空间位置约定各分类资源 访问 IO 端口如同访问存储器单元 无需专用的 IO 访问指令 芯片上没有专用于 IO 访问的引脚 独立编址方式 存储器资源和 IO 端口资源分别编址在两个地址空间 存储器地址空间和 IO 地址空间 特点 按资源分类的地址空间清晰 使用不同的指令访问存储器和 IO 端口 处 理器指令系统中既有存储器访问指令 又有专用的 IO 访问指令 芯片上有专用于 IO 访问的 引脚 22 大端存储模式和小端存储模式的含义 高位数据存储在高地址字节 这种组织数据的存储 方式称为 小端模式 另一种则反之 高位数据存储在低地址字节 这种组织数据的存储方 式称为 大端模式 8 ARM 体系结构支持 7 种处理器模式 用户模式 系统模式 快中断模式 中断模式 管理模 式 中止模式 未定义模式 ARM 微处理器内共有 37 个 32 位的程序可访问寄存器物理资源 其中 31 个通用寄存器 6 个状态寄存器 ARM 中定义了复位 未定义指令 SWI 软中断 预取指终止 预取数终止 irq 以及 fiq 等 种异常 ARM7 的异常处理 异常响应 处理器转入 到 ARM 状态对应的异常模式 在该异常模式的 SPSR LR 寄存器分别备份 CPSR PC 的当前 数据 重置 CPSR 和 PC 9 ARM7TDMI 支持哪几种指令集 各有什么特点 答 ARM7TDMI 支持 32 位的 ARM 指令集和 16 位的 Thumb 指令集 ARM 指令集效率高 功能 全 但是代码密度低 所有 ARM 指令都是可以有条件执行的 Thumb 指令集 功能上是 ARM 指 令集的子集 Thumb 状态下的 ARM7TDMI S 仍然是 32 位的处理器 因此具有更高的代码密度 Thumb 指令中仅有 B 指令具备条件执行功能 1 解释 满堆栈 空堆栈 递增堆栈 和 递减堆栈 ARM 指令系统中是如何支持的 答 满堆栈就是堆栈指针总是指向最后压入堆栈的数据的存储单元 空堆栈就是堆栈指针总是 指向下一个将要放入数据的存储单元 递增堆栈就是堆栈底部位于低地址处 堆栈向高地址方 向增长 递减堆栈就是堆栈底部位于高地址处 堆栈向低地址方向递减 ARM 指令系统支持 的是满递减堆栈 1 请说明 MOV 指令与 LDR 加载指令的区别和用途 答 MOV 指令用于将 8 位位图立即数或寄存器数据传送到目标寄存器 Rd 也可用于移位运 算等操作 LDR 指令用于从存储器中加载一个数据到寄存器中 用于访问存储器操作 解释 B 指令 BL 指令与 BX 指令的功能差别 简述它们的应用场合 答 B 指令跳转到标号指定的地址执行程序 BL 指令先将下一条指令的地址拷贝到 R14 中 然后跳转到标号指定地址运行程序 BX 指令跳转到 Rm 指定的地址处执行程序 该指令 用于处理器状态切换 4 计算机语言 机器语言是一种用二进制代码表示指令和数据 能被机器直接识别的计算机语言 5 如何在汇编程序中显示声明文字池 什么情况下需要显示声明文字池 一般应在程序的什么位 置显示声明文字池 为什么 答 使用 LTORG 汇编器伪指令用于显示声明一个文字池 literal pool 实际应用中 如果 ARM 需 要处理的操作数不符合 8bit 位图立即数的要求时 那么就需要使用文字池来存放这个常量 在 ARM 汇编语言中 使用 LDR 加载指令相对寻址文字池中存放的任意 32bit 立即数 因为 LDR 指 令的寻址范围是指令位置的前后 4KB 所以如果 LDR 指令所在位置距离文字池超出 4KB 范围 那么 需要在程序中的适当位置 使用 LTORG 伪指令显式声明文字池 解决方法 一般总可以在 LDR 伪 指令前后 4KB 的范围内找到分支指令 文字池可声明在分支 B 指令之后的紧邻位置 因为 B 指 令总是会将程序的执行转移到其它地方的 所以这样做不会影响代码的正常执行 6 简述汇编程序设计的一般流程 分析问题 建立数学模型 确定算法 设计程序流程 1 2 3 图 合理分配寄存器 存储空间和外设资源 编制程序 调试程序 形成文档 4 5 6 7 7 实现汇编程序分支的关键语句有哪几条 分别用于什么场合 答 汇编程序分支结构的实现是通过在运行时由机器根据不同的条件自动作出判断 选择执行相 应的处理程序段 分支指令主要有 BL 指令 B 指令和 BX 指令 分别用于调用子程序 直接跳转和 带状态的跳转场合 8 循环控制有哪几种方法 各有什么应用特点 答 循环控制有两种方法 计数控制循环 通过计数循环次数 判断是否已达到预定次数 控 1 制循环 适合已知循环次数的循环控制 条件控制循环 通过判断循环终止条件是否已成立 2 控制循环 适合仅知道结束条件的循环控制 9 汇编子程序传递参数有哪几种方式 答 寄存器传递参数方式 存储区域传递参数方式 1 2 堆栈传递参数方式 3 10 用汇编语言编写程序将 R0 寄存器中的字数据分成 4 组 每组 8 位 然后分别存放到 R1 R2 R3 和 R4 中 AREA decode CODE READONLY 代码段名 decode ENTRY 程序的入口 CODE32 start LDR R0 x LDR R0 R0 将 x 加载到寄存器 R0 MOV R1 0 xFF AND R1 R1 R0 取 x 的低八位 MOV R2 0 xFF ANDR2 R2 R0 ROR 8 取 x 的次低八位 MOV R3 0 xFF AND R3 R3 R0 ROR 16 取 x 的次高八位 MOV R4 0 xFF AND R4 R4 R0 ROR 24 取 x 的高八位 stop MOVR0 0 x18 这三条指令是 ADS 调试环境特约 LDR R1 0 x20026 程序运行结束返回编译器调试环境 SWI0 x123456 AREA Data DATA READWRITE 数据段的名字 Data xDCD123456789 END 结束 11 用汇编语言编写程序统计任意字符串包含的字符个数 约定 字符串以 0 为结束标志 AREA count CODE READONLY 代码段名 count ENTRY 程序的入口 CODE32 start LDR R0 string R0 指向字符串 string 中第一个字符 MOV R2 0 CONTI LDRB R1 R0 将 string 中的一个字符加载到寄存器 R1 CMP R1 0 是否是字符串结束标志 ADDNE R2 R2 1 如果不是 统计个数增加 1 ADDNE R0 R0 1 如果不是 指针拨向下一个字符 BNE CONTI LDREQ R3 NUM 如果是 将统计的字符串个数 放入单元 num STREQ R2 R3 stop MOVR0 0 x18 这三条指令是 ADS 调试环境特约 LDR R1 0 x20026 程序运行结束返回编译器调试环境 SWI0 x123456 12 用汇编语言编写程序计算 100 1 2 N NSum AREA sum2n CODE READONLY 代码段名 sum2n ENTRY 程序的入口 CODE32 start LDR R0 sum R0 指向存储单元 sum MOV R1 0 R1 存放累加和 MOV R2 1 R2 初始化起始值 CONTI ADDR1 R1 R2 LSL 1 实现 R1 R1 R2 2 CMP R2 100 判断 R2 是否等于 100 ADDNE R2 R2 1 如果不等 R2 累加 1 BNE CONTI STREQ R1 R0 如果相等 将累加和 R1 放入存储单元 sum 中 stop MOVR0 0 x18 这三条指令是 ADS 调试环境特约 LDR R1 0 x20026 程序运行结束返回编译器调试环境 SWI0 x123456 AREA Data DATA READWRITE 数据段的名字 Data sumDCD0 END 结束 14 读程序 文件名 TEST1 S 功能 实现字符串拷贝功能 说明 使用 ARMulate 软件仿真调试 AREAExample1 CODE READONLY 声明代码段 Example1 num EQU 20 设置拷贝字的个数 ENTRY 标识程序入口 CODE32 声明 32 位 ARM 指令 STARTLDR R0 src R0 指向源数据块 LDR R1 dst R1 指向目的数据块 MOVR2 num R2 需要拷贝的数据个数 wordcopy LDR R3 R0 4 从源数据块中取一个字 放入 R3 中 R0 R0 4 STR R3 R1 4 将 R3 中的数据存入 R1 指向的存储单元中 R1 R1 4 SUBSR2 R2 1 R2 计数器减 1 BNE wordcopy 如果 R2 不为 0 则转向 wordcopy 处 stop MOVR0 0 x18 程序运行结束返回编译器调试环境 LDR R1 0 x20026 SWI 0 x123456 AREA BlockData DATA READWRITE 数据段的名字 BlockData AREA extra NOINIT READWRITE 未初始数据段的名字 extra dataSPACE1024 END 文件结束 第六章 1 主机与外设接口之间主要交互的三类信息 状态信息 输入 用于标示设备的状态情况 数据 信息 输入 输出 要传送的二进制目标数据 控制信息 输出 控制外设的工作方式与具体操作 对应于上述的三种信息 外设接口电路中的端口寄存器也分为了三类 状态端口 寄存器 数据端口 寄存器 和控制端口 寄存器 2 接口接口 与与 端口 端口 接口 和 端口是两个不同的概念 接口 侧重于物理连接 端口 侧重于 接口的内部工作方式 接口由若干个端口加上相应的控制电路构成 每个端口都对应与接口电路 中的各个工作寄存器 外设通过接口连接入计算机系统 计算机通过端口访问控制外设工作 3 处理器与外设之间的数据传送方式主要有 无条件数据访问方式 状态查询方式数据访问方式 中断方式数据访问方式和直接存储器访问 DMA 方式等几种方式 4 无条件外设 输入设备总是准备好向 CPU 提供数据 输出设备总是准备好接收 CPU 送来的数据 5 接口电路的主要功能 接口电路的主要功能 任何设备都不能长期占用系统总线 输入设备要经过三态缓冲器相连到 系统总线 输出设备要经过数据锁存器相连到系统总线 6 状态查询方式的原理状态查询方式的原理 在执行数据端口访问指令前 要先查询该设备的状态 当设备处于准备 好状态时 CPU 才执行对设备数据端口的输入 输出指令 与外设交换信息 否则 等待 中中 断方式数据访问断方式数据访问 当外设需要与 CPU 进行信息交换时 由外设主动向 CPU 发出数据传送请求 信号 中断申请 CPU 响应此请求信号后 中断响应 暂停正在执行的程序 转去执行该外 设的数据输入 输出操作程序 中断服务程序 ISR 外设数据端口访问后 CPU 再继续执行 被暂停的程序 中断返回 7 中断向量 中断服务程序 ISR 的入口地址 中断现场 CPU 响应中断离开主程序时 CPU 的相关寄存器数据情况 中断响应 CPU 敏感并进入到 ISR 的一系列动作 中断返回 CPU 返回被中断主程序断点处继续执行主程序的一系列动作 8 中断处理过程一般包括以下五个步骤 中断请求 中断响应 断点保护 中断处理和 中断返回 9 例 7 1 使用 Timer0 作为 1 秒钟的定时器 产生周期为 2 秒 占空比为 1 1 的方波信号 int main void PINSEL0 PINSEL0 设置 P0 5 管脚为 MAT0 1 功能 T0CTCR 0 x00 设置 Timer0 工作在定时方式 T0TC 0 定时器设置为 0 T0PR 99 时钟 100 预分频 T0MCR 0 x02 3 设置 T0MR1 匹配后复位 T0TC 无中断标志 T0MR1 Fpclk 100 1 秒钟定时 匹配目标值 T0EMR 0 xC2 设置 Timer0 发生 MR1 匹配时翻转 MAT0 1 位 T0TCR 0 x01 启动定时器 while 1 return 0 例例 7 2 假设车轮毂上已经均匀安装了 8 个霍尔传感器 车轮每转一周可产生 8 个正脉冲 使用 LPC2132 中的 Timer0 和 Timer1 资源 设计一个简易的车用综合仪表数据处理系统 可测量显示车 速 本次里程 总里程等数据 define KClr 1 0 KClr 按键连接与 P0 0 管脚 KClr 按下时 P0 0 为低电平 define L 2 5 车轮周长 2 5 米 define HrN 8 车轮箍霍尔传感器个数 uint32 Vspeed 当前车速 uint32 VtotalLen 总里程 uint32 VthisLen 本次里程 Km int main void uint32 Vx 暂存 1 秒钟车轮毂霍尔脉冲计数值 PINSEL0 PINSEL0 设置 P0 10 管脚为 CAP1 0 PINSEL0 PINSEL0 设置 P0 0 管脚为 GPIO 设置 Timer0 1 秒定时器 T0CTCR 设置 Timer0 工作在定时方式 T0TC 0 定时器设置为 0 T0PR 99 时钟 100 预分频 T0MCR 0 x03 设置 T0MR0 匹配后复位 T0TC 产生中断标志 T0MR0 Fpclk 100 1 秒钟定时 匹配目标值 设置 Timer1 计数器对 P0 10 管脚输入脉冲计数 T1CTCR T1CTCR 设置 Timer1 计数方式 计数 CAP1 0 的上升沿 T1TC 0 设置计数器初值为 0 T1MCR 0 x00 这也是芯片的复位值 00 T1CCR CAP1 0 不再用作捕获触发 T0TCR 0 x01 启动定时器 0 T1TCR 0 x01 启动定时器 1 while 1 if T0IR 清除 MR0 中断标志 Vx T1TC T1TC 0 下一秒重新计数 VtotalLen Vx 累计总里程 VthisLen Vx 累计小里程 Vspeed Vx L 3 6 HrN 单位 Km Hr if IO0PIN 如果 KClr 按下 清 0 本次里程纪录 return 0 7 GPIO 应用举例 define K1 1 0 K1 按键连接与 P0 0 管脚 K1 按下时 P0 0 为低电平 define K2 1 1 K2 按键连接与 P0 1 管脚 K2 按下时 P0 1 为低电平 define BEEP 1 7 P0 7 控制蜂鸣器 高电平蜂鸣 define LED 1 0 dly for i 0 i 50000 i int main void PINSEL0 0 x00000000 P0 15 0 管脚用做 GPIO 功能 IO0DIR IO0DIR 设置 K1 控制口为输入 IO0DIR IO0DIR 设置 K2 控制口为输入 IO0DIR IO0DIR BEEP 设置 BEEP 控制口为输出 IO0DIR IO0DIR LED 设置 LED 控制口为输出 IO0CLR

温馨提示

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

评论

0/150

提交评论