ARM嵌入式系统基础教程第二版课后习题答案

上传人:gbs****77 文档编号:10061584 上传时间:2020-04-09 格式:DOC 页数:9 大小:77KB
返回 下载 相关 举报
ARM嵌入式系统基础教程第二版课后习题答案_第1页
第1页 / 共9页
ARM嵌入式系统基础教程第二版课后习题答案_第2页
第2页 / 共9页
ARM嵌入式系统基础教程第二版课后习题答案_第3页
第3页 / 共9页
点击查看更多>>
资源描述
第 1 章 嵌入式系统概述 1 举出 3 个本书中未提到的嵌入式系统的例子 答 键盘 鼠标 扫描仪 2 什么叫嵌入式系统 答 嵌入到对象体系中的专用计算机应用系统 3 什么叫嵌入式处理器 嵌入式处理器分为哪几类 答 嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器 分为 3 类 1 注重尺寸 能耗和价格 2 关注性能 3 关注全部 4 个需求 性能 尺寸 能耗和价格 4 什么是嵌入式操作系统 为何要使用嵌入式操作系统 答 嵌入式操作系统是操作系统的一种类型 是在传统操作系统的基础上加入 符合嵌入式系统要求的元素发展而来的 原因 1 提高了系统的可靠性 2 提 高了开发效率 缩短了开发周期 3 充分发挥了 32 位 CPU 的多任务潜力 第 2 章 ARM7 体系结构 1 基础知识 1 ARM7TDMI 中的 T D M I 的含义是什么 答 T 高密度 16 位 Thumb 指令集扩展 D 支持片上调试 M 64 位乘法 指令 I Embedded ICE 硬件仿真功能模块 2 ARM7TDMI 采用几级流水线 使用何种存储器编址方式 答 3 级 冯 诺依曼结构 3 ARM 处理器模式和 ARM 处理器状态有何区别 答 ARM 处理器模式体现在不同寄存器的使用上 ARM 处理器状态体现在不 同指令的使用上 4 分别列举 ARM 的处理器模式和状态 答 ARM 的处理器模式 用户模式 系统模式 管理模式 中止模式 未定义 模式 中断模式 快速模式 ARM 的处理器状态 ARM 状态 Thumb 状态 5 PC 和 LR 分别使用哪个寄存器 答 PC R15 LR R14 6 R13 寄存器的通用功能是什么 答 堆栈指针 SP 7 CPSR 寄存器中哪些位用来定义处理器状态 答 位 31 28 N Z C V 条件代码标志位 27 8 保留位 7 0 I F T M4 0 控制标志位 8 描述一下如何禁止 IRQ 和 FIQ 的中断 答 当控制位 I 置位时 IRQ 中断被禁止 否则允许 IRQ 中断使能 当控制位 F 置位时 FIQ 中断被禁止 否则允许 FIQ 中断使能 2 存储器格式 答 无论是大端格式还是小端格式 R2 的值与 R1 一致 地址 0 x4000 单元的 字节 大端 0 x12 小端 0 x78 3 处理器异常 请描述一下 ARM7TDMI 产生异常的条件是什么 各种异常会使处理器进入哪 种模式 进入异常时内核有何操作 各种异常的返回指令又是什么 答 异常 模式 返回指令 复位 管理 无 未定义指令 未定义 MOVS PC R14 软件中断 管理 MOVS PC R14 预取指中止 中止 SUBS PC R14 4 数据中止 中止 SUBS PC R14 8 IRQ 中断 SUBS PC R14 4 FIQ 快速中断 SUBS PC R14 4 进入异常时 内核自动做 PC LR CPSR 相应异常模式下的 SPSR 设置 CPSR 为相应的异常模式 相应异常处理程序的中断入口向量地址 PC 第 3 章 ARM7TDMI S 指令系统 1 基础知识 1 ARM7TDMI S 有几种寻址方式 LDR R1 R0 0 x08 属于哪种寻址方式 答 有 8 种寻址方式 1 寄存器寻址 2 立即寻址 3 寄存器移位寻址 4 寄存器 间接寻址 5 基址寻址 6 多寄存器寻址 7 堆栈寻址 8 相对寻址 LDR R1 R0 0 x08 属于基址寻址 2 ARM 指令的条件码有多少个 默认条件码是什么 答 16 个 AL 3 ARM 指令中的第 2 个操作数有哪几种形式 列举 5 个 8 位图立即数 答 1 常数表达式 8 位图 2 寄存器方式 3 寄存器移位方式 0 x3FC 0 0 xF0000000 200 0 xF0000001 4 LDR STR 指令的偏移形式有哪 4 种 LDRB 指令和 LDRSB 指令有何区别 答 1 零偏移 2 前索引偏移 3 程序相对偏移 4 后索引偏移 LDRB 加载无符 号字节数据 LDRSB 加载有符号字节数据 5 请指出 MOV 指令与 LDR 加载指令的区别及用途 答 MOV 指令的源操作数是常数或 带偏移量的 寄存器 用于寄存器之间的 数据传送 LDR 指令的源操作数是地址 用于存储器到寄存器的数据传送 6 CMP 指令是如何执行的 写一程序 判断 R1 的值是否大于 0 x30 是则将 R1 减去 0 x30 答 CMP 指令将 Rn operand2 根据结果更新 CPSR 中的相应条件标志位 CMP R1 0 x30 SUBHI R1 0 x30 7 调用子程序是用 B 指令还是用 BL 指令 请写出返回子程序的指令 答 用 BL MOV PC R14 8 请指出 LDR 伪指令的用法 指令格式与 LDR 加载指令的区别是什么 答 用法 LDR cond Rd 立即数 标号 立即数 LDR 伪指令的源操作数是代 表一个常数 LDR 加载指令的源操作数代表一个地址 9 ARM 状态与 Thumb 状态的切换指令是什么 请举例说明 答 BX 从 ARM 状态切换到 Thumb 状态 CODE32 LDR R0 Lable 1 BX R0 CODE16 Lable MOV R1 12 从 Thumb 状态切换到 ARM 状态 CODE16 LDR R0 Lable BX R0 CODE32 Lable MOV R1 10 10 Thumb 状态与 ARM 状态的寄存器有区别吗 Thumb 指令对哪些寄存器的 访问受到一定限制 答 有区别 R8 R15 11 Thumb 指令集的堆栈入栈 出栈指令是哪两条 答 PUSH POP 12 Thumb 指令集的 BL 指令转移范围为何能达到 4MB 其指令编码是怎样的 答 BL 指令事实上是两条指令 其编码为 11110 地址偏移高 11 位 11111 地址偏移低 11 位 地址编码 22 位 再左移一位 半字对齐 23 位地 址寻址 8MB 即 4MB 2 有符号和无符号加法 答 1 0 xFFFF000F A 0 x0000FFF1 B 0 x00000000 NZCV 0110 如果两个操作数是有符号数 A 是负数 B 是正数 和是 0 没有溢出 所以 V 0 如果两个操作数是无符号数 和是 0 有进位 所以 C 1 2 0 x7FFFFFFF A 0 x02345678 B 0 x82345677 NZCV 1001 如果两个操作数是有符号数 A 是正数 B 是正数 和是负数 有溢出 所以 V 1 如果两个操作数是无符号数 没有进位 所以 C 0 3 67654321 A 23110000 B 0 x0568F421 NZCV 0000 如果两个操作数是有符号数 A 是正数 B 是正数 和是正数 没有溢出 所 以 V 0 如果两个操作数是无符号数 没有进位 所以 C 0 第五章 1 基础知识 1 LPC2114 可使用的外部晶振频率范围是多少 使用 不使用 PLL 功能时 晶振频率范围 1 30 MHz 若使用 PLL 或 ISP 功能为 10 25MHz 2 描述一下 LPC2210 的 PO 14 P1 20 P1 26 BOOT1 和 BOOT0 引脚在芯片复位 时分别有什么作用 并简单说明 LPC2000 系列 ARM7 微控制器的复位处理流程 P0 14 的低电平强制片内引导装载程序复位后控制器件的操作 即进入 ISP 状态 P1 20 的低电平使 P1 25 P1 16 复位后用作跟踪端口 P1 26 的低电平使 P1 31 P1 26 复位后用作一个调试端口 当 RESET 为低时 BOOT0 与 BOOT1 一同控制引导和内部操作 引脚的内部上拉确保 了引脚未连接时呈现高电平 外部复位输入 当该引脚为低电平时 器件复位 I O 口和外围功能进入默认状态 处理 器从地址 0 开始执行程序 复位信号是具有迟滞作用的 TTL 电平 3 LPC2000 系列 ARM7 微控制器对向量表有何要求 向量表中的保留字 向量表所有数据 32 位累加和为零 0 x00000000 0 x0000001C 的 8 个字的机器码累加 才能脱机运行用户程序 这是 LPC2114 2124 2212 2214 的特性 4 如何启动 LPC2000 系列 ARM7 微控制器的 ISP 功能 相关电路应该如何设计 5 LPC2000 系列 ARM7 微控制器片内 Flash 是多位宽度的接口 它是通过哪个功能模 块来提高 Flash 的访问速度 128 位 通过存储器加速模块 MAM 来提高 Flash 的访问速度 6 若 LPC2210 的 BANK0 存储块使用 32 位总线 访问 BANK0 时 地址线 A1 A0 是 否有效 EMC 模块中的 BLSO BLS4 具有什么功能 无效 如果存储器组配置成 16 位宽 则不需要 A0 8 位宽的存储器组需要使用 A0 字节定位选择信号 7 LPC2000 系列 ARM7 微控制器具有引脚功能复用特性 那么如何设置某个引脚为指 定功能 通过引脚功能选择寄存器的设定来设置某个引脚为指定功能 8 设置引脚为 GPIO 功能时 如何控制某个引脚单独输入 输出 当前要知道某个引脚 当前的输出状态时 是读取 IOPIN 寄存器还是读取 IOSET 寄存器 GPIO 方向寄存器 IOPIN 9 P0 2 和 P0 3 口是 I2C 接口 当设置它们为 GPIO 时 是否需要外接上拉电阻才能输 出高电平 10 使用 SPI 主模式时 SSEL 引脚是否可以作为 GPIO 若不能 SSEL 引脚应如何 处理 不能用作 GPIO SSEL 应设这高电平 处于末激活状态 11 LPC2114 具有几个 UART 是符合什么标准 哪一个 UART 可用作 ISP 通信 哪一 个 UART 具有 MODEM 接口 UART0 UART1 UART0 用于 ISP 通信 UART1 具有 MODEM 接口 12 LPC2114 具有几个 32 位定时器 PWM 定时器是否可以作通用定时器使用 两个 32 位定时器 PWM 定时器不能用作通用定时器使用 13 LPC2000 系列 ARM7 微控制器具有哪两种低耗模式 如何降低系统的功耗 2 个低功耗模式 空闲和掉电 2 计算 PLL 设置值 假设有一个基于 LPC2114 的系统 所使用的晶振为 11 0592MHZ 石英晶振 请计算出最 大的系统时钟 ccls 频率为多少 MHZ 此时 PLL 的 M 值和 P 值各为多少 请列出计算 公式 并编写设置 PLL 的程序段 3 存储器重影射 1 LPC2210 具有 4 种存影射模式 3 5 1 4 2 当程序已固化到片内 Flash 向量表保存在 0 x00000000 起始处 则 MAP 1 0 的 值应该为 2 00 01 10 11 3 LPC2000 系列 APM7 微控制器 ccq 重影射的目标起始地址为 共有 个字 0 x00000000 8 0 x40000000 8 0 x00000000 16 0 x7FFFE000 8 4 外部中断唤醒掉电设计 以下代码是初始化外部中断 0 用它来唤醒掉电的 LPC2114 请填空 PINSEL0 0 x00000000 PINSELI PINSEL1 0XFFFFFFFC 0X01 设置 I O 连接 PO 16 设置为 EINTO EXTMODE 0X00 设置 EINT0 为电平触发模式 EXTPOLAR 0X00 设置 EINT0 为低电平触发 EXTWAKE 0X01 允许外部中断 0 唤醒掉电的 CPU EXTINT 0 x0F 清除外部中断标识 第四章 程序清单 4 1 寄存器相加 文件名 TESTI S 功能 实现两个寄存器相加 说明 使用 ARMulate 软件仿真调试 AREA Examplel CODE READONLY 声明代码段 Examplel ENTRY 标识程序入口 CODE32 声明 32 位 ARM 指令 START MOV R0 0 设置参数 MOV R1 10 LOOP BL ADD SUB 调用子程序 ADD SUB B LOOP 跳转到 LOOP ADD SUB ADDS R0 R0 R1 R0 R0 R1 MOV PC LR 子程序返回 END 文件结束 程序清单 4 2 读取 SMI 立即数 T bit EQU 0X20 SWI Handler STMFD SP R0 R3 R12 LR 现场保护 MRS R0 SPSR 读取 SPSR STMED SP R0 保存 SPSR TST R0 T bit 测试 T 标志位 LDRNEH R0 LR 2 若是 Thumb 指令 读取指令码 16 位 BICNE R0 R0 0 xFF00 取得 Thumb 指令的 8 位立即数 LDREQ R0 LR 4 若是 ARM 指令 读取指令码 32 位 BICEQ R0 R0 0Xff000000 取得 ARM 指令的 24 位立即数 LDMFD SP R0 R3 R12 PC SWI 异常中断返回 程序清单 4 3 使用 IRQ 中断 ENABLE IRQ MRS R0 CPSR BIC R0 R0 0 x80 MSR CPSR C R0 MOV PC LR 程序清单 4 4 禁能 IRQ 中断 DISABLE IRQ MRS R0 CPSR ORR R0 R0 0 x80 MSR CPSR C R0 MOV PC LR 程序清单 4 5 堆栈指令初始化 INTSTACK WOV R0 LR 保存返回地址 设置管理模式堆栈 MSR CPSR C 0 xD3 LDR SP stacksvc 设置中断模式堆栈 MSR CPSR C 0 xD2 LDR SP Stacklrq 程序清单 4 6 小范围地址的加载 ADR R0 DISP TAB 加载转换表地址 LDRB R1 R0 R2 使用 R2 作为参数 进行查表 DISP TAB DCB 0 xC0 0 xF9 0 xA4 0 xB0 0 x99 0 x92 0 x82 0 xF8 0 x80 0 x90 程序清单 4 7 中等范围地址的加载 ADR LR RETURNI ADRL R1 Thumb sub 1 BX R1 RETURNI CODE 16 Thumb sub MOV R1 10 程序清单 4 8 加载 32 位立即数 LDR R0 IOPIN 加载 GPIO 的寄存器 IOPIN 的地址 LDR R1 R0 读取 IOPIN 寄存器的值 LDR R0 IOSET LDR R1 0 x00500500 STR R1 R0 IOSET 0 x00500500 程序清单 4 9 软件延时 DELAYI NOP NOP NOP SUBS R1 R1 1 BNE DELAYI 程序清单 4 10 ARM 到 Thumb 的状态切换 文件名 TEST8 S 功能 使用 BX 指令切换处理器状态 说明 使用 ARMulate 软件仿真调试 AREA Example8 CODE READONLY ENTRY CODE32 ARM CODE ADR R0 THUMB CODE 1 BX R0 跳转并切换处理器状态 CODE16 THUMB CODE MOV R0 10 R0 10 MOV R1 20 R1 20 ADD R0 R1 R0 R0 R1 B END
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!