2022年ARM嵌入式系统基础教程第二版课后习题标准答案.docx

上传人:Che****ry 文档编号:12785528 上传时间:2022-04-26 格式:DOCX 页数:8 大小:55.57KB
返回 下载 相关 举报
2022年ARM嵌入式系统基础教程第二版课后习题标准答案.docx_第1页
第1页 / 共8页
2022年ARM嵌入式系统基础教程第二版课后习题标准答案.docx_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《2022年ARM嵌入式系统基础教程第二版课后习题标准答案.docx》由会员分享,可在线阅读,更多相关《2022年ARM嵌入式系统基础教程第二版课后习题标准答案.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品学习资源第 1 章 嵌入式系统概述(1) 举出 3 个本书中未提到的嵌入式系统的例子;答:键盘、鼠标、扫描仪;(2) 什么叫嵌入式系统?答:嵌入到对象体系中的专用运算机应用系统;(3) 什么叫嵌入式处理器?嵌入式处理器分为哪几类?答:嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器;分为3类: 1.留意尺寸、能耗和价格; 2. 关注性能; 3. 关注全部 4 个需求 性能、尺寸、能耗和价格;(4) 什么是嵌入式操作系统?为何要使用嵌入式操作系统?答:嵌入式操作系统是操作系统的一种类型,是在传统操作系统的基础上加入符合嵌入式系统要求的元素进展而来的;缘由:1.提高了系统的牢靠性; 2.

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) 分别列举 A

3、RM 的处理器模式和状态?答: ARM 的处理器模式:用户模式、系统模式、治理模式、中止模式、未定义模式、中断模式、快速模式; ARM 的处理器状态 :ARM 状态、 Thumb 状态;5PC 和 LR 分别使用哪个寄存器?答: PC:R15 ;LR:R14 ;(6) R13 寄存器的通用功能是什么? 答:堆栈指针 SP;(7) CPSR 寄存器中哪些位用来定义处理器状态?答:位 3128 : N、Z、C、V,条件代码标志位; 278 :保留位; 70 :I、F、T、M40 ,把握标志位;(8) 描述一下如何禁止 IRQ 和 FIQ 的中断;答:当把握位 I 置位时, IRQ 中断被禁止,否就

4、答应IRQ 中断使能;当把握位F 置位时, FIQ 中断被禁止,否就答应 FIQ 中断使能;2. 储备器格式答:无论是大端格式仍是小端格式, R2 的值与 R1 一样;地址 0x4000 单元的字节:大端: 0x12 、小端: 0x78 ;3. 处理器反常请描述一下 ARM7TDMI 产生反常的条件是什么?各种反常会使处理器进入哪种模式?进入反常时内核有何操作?各种反常的返回指令又是什么?答:【反常】 【模式】 【返回指令】欢迎下载精品学习资源复位 治理 无未定义指令 未定义 MOVS PC,R14软件中断 治理 MOVS PC,R14预取指中止 中止 SUBS PC,R14,#4 数据中止

5、中止 SUBS PC,R14,#8 IRQ中断 SUBS PC,R14,#4FIQ快速中断 SUBS PC,R14,#4进入反常时 ,内核自动做: PCLR 、CPSR 相应反常模式下的 SPSR 、设置 CPSR 为相应的反常模式、相应反常处理程序的中断入口向量地址PC; 第 3 章 ARM7TDMI-S 指令系统1. 基础学问(1) ARM7TDMI-S 有几种寻址方式? “ LDR R1,R0,#0x08 属”于哪种寻址方式? 答:有 8 种寻址方式: 1. 寄存器寻址 2. 马上寻址 3.寄存器移位寻址 4. 寄存器间接寻址 5. 基址寻址 6.多寄存器寻址 7. 堆栈寻址 8.相对寻

6、址; “LDRR1,R0,#0x08属”于基址寻址;(2) ARM 指令的条件码有多少个?默认条件码是什么? 答: 16 个; AL;(3) ARM 指令中的第 2 个操作数有哪几种形式?列举 5 个 8 位图马上数;答: 1.常数表达式 8 位图 2. 寄存器方式 3. 寄存器移位方式; 0x3FC 、0、0xF0000000 、200 、0xF0000001 ;(4) LDR/STR 指令的偏移形式有哪 4 种? LDRB 指令和 LDRSB 指令有何区分?答: 1.零偏移 2.前索引偏移 3.程序相对偏移 4. 后索引偏移; LDRB :加载无符号字节数据, LDRSB 加载有符号字节数

7、据(5) 请指出 MOV 指令与 LDR 加载指令的区分及用途?答: MOV 指令的源操作数是常数或(带偏移量的)寄存器,用于寄存器之间的数据传送; LDR 指令的源操作数是地址,用于储备器到寄存器的数据传送;6CMP 指令是如何执行的?写一程序,判定R1 的值是否大于 0x30 ,是就将R1 减去 0x30 ;答: CMP 指令将 Rn-operand2 ,依据结果更新 CPSR 中的相应条件标志位;CMP R1,0x30 SUBHI R1,0x30(7) 调用子程序是用 B 指令仍是用 BL 指令?请写出返回子程序的指令;答:用 BL;MOV PC,R14 ;(8) 请指出 LDR 伪指令

8、的用法;指令格式与 LDR 加载指令的区分是什么?答:用法: LDRcond Rd,= 马上数/标号+马上数; LDR 伪指令的源操作数是代表一个常数, LDR 加载指令的源操作数代表一个地址;(9) ARM 状态与 Thumb 状态的切换指令是什么?请举例说明;答: BX;从 ARM 状态切换到 Thumb 状态CODE32LDR R0,=Lable+1 BX R0CODE16Lable MOV R1,#12欢迎下载精品学习资源;从 Thumb 状态切换到 ARM 状态CODE16LDR R0,=Lable BX R0 CODE32Lable MOV R1,#10(10) Thumb 状态与

9、 ARM 状态的寄存器有区分吗? Thumb 指令对哪些寄存器的拜望受到确定限制?答:有区分; R8R15 ;(11) Thumb 指令集的堆栈入栈、出栈指令是哪两条? 答: PUSH 、POP ;(12) Thumb 指令集的 BL 指令转移范畴为何能达到 4MB ?其指令编码是怎样的?答: BL 指令事实上是两条指令,其编码为: 11110 地址偏移高 11 位、11111 地址偏移低 11 位,地址编码 22 位,再左移一位 半字对齐 ,23 位地址寻址 8MB ,即4MB ;2. 有符号和无符号加法答:10xFFFF000FA 0x0000FFF1B0x00000000NZCV=011

10、0假如两个操作数是有符号数, A 是负数, B 是正数,和是 0,没有溢出,所以V=0 ;假如两个操作数是无符号数,和是0,有进位,所以 C=1;20x7FFFFFFFA 0x02345678B0x82345677NZCV=1001假如两个操作数是有符号数, A 是正数, B 是正数,和是负数,有溢出,所以V=1 ;假如两个操作数是无符号数,没有进位,所以C=0 ;367654321A 23110000B0x0568F421NZCV=0000假如两个操作数是有符号数, A 是正数, B 是正数,和是正数,没有溢出,所以 V=0 ;欢迎下载精品学习资源假如两个操作数是无符号数,没有进位,所以C=

11、0 ;第五章1、基础学问:(1) ) LPC2114可使用的外部晶振频率范畴是多少(使用/不使用 PLL 功能时)?晶振频率范畴: 130 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

12、复位后用作一个调试端口;当 RESET为低时, BOOT0与 BOOT1 一同把握引导和内部操作;引脚的内部上拉确保了引脚未连接时显现高电平;外部复位输入:当该引脚为低电平常,器件复位,I/O 口和外围功能进入默认状态,处理器从地址 0 开头执行程序;复位信号是具有迟滞作用的TTL 电平;(3) ) LPC2000系列 ARM7 微把握器对向量表有何要求(向量表中的保留字)?向量表全部数据 32 位累加和为零 0x00000000 0x0000001C的 8 个字的机器码累加, 才能脱机运行用户程序,这是LPC2114/2124/2212/2214的特性;(4) )如何启动 LPC2000系列

13、 ARM7 微把握器的 ISP 功能?相关电路应当如何设计?(5) ) LPC2000系列 ARM7 微把握器片内Flash 是多位宽度的接口?它是通过哪个功能模块来提高 Flash 的拜望速度?128 位, 通过储备器加速模块(MAM )来提高 Flash 的拜望速度(6) )如 LPC2210的 BANK0储备块使用 32 位总线,拜望 BANK0 时,地址线 A1 、A0 是否有效? EMC 模块中的BLSOBLS4具有什么功能?无效 , 假如储备器组配置成16 位宽 ,就不需要 A0 ; 8 位宽的储备器组需要使用A0 ; 字节定位选择信号;(7) ) LPC2000系列 ARM7 微

14、把握器具有引脚功能复用特性,那么如何设置某个引脚为指定功能?通过引脚功能选择寄存器的设定来设置某个引脚为指定功能(8) )设置引脚为 GPIO 功能时,如何把握某个引脚单独输入/输出?当前要知道某个引脚当前的输出状态时,是读取IOPIN 寄存器仍是读取 IOSET 寄存器?GPIO 方向寄存器, IOPIN ;(9) ) P0.2 和 P0.3 口是 I2C 接口,当设置它们为GPIO 时,是否需要外接上拉电阻才能输出高电平?(10 )使用 SPI 主模式时, SSEL 引脚是否可以作为GPIO ?如不能, SSEL 引脚应如何处理?不能用作 GPIO , SSEL 应设这高电平,处于末激活状

15、态;(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 的系统

16、,所使用的晶振为 11.0592MHZ 石英晶振;请运算出最大的系统时钟( ccls )频率为多少 MHZ ?此时 PLL 的 M 值和 P 值各为多少?请列出运算公式,并编写设置 PLL 的程序段;3、储备重视影射:(1) ) LPC2210具有( 4)种存影射模式;3 51 4(2) )当程序已固化到片内Flash ,向量表储存在 0x00000000起始处,就 MAP 1:0 的值应当为(2);00 01 1011(3) ) LPC2000系列 APM7 微把握器 ccq 重影射的目标起始地址为(),共有()个字;0x00000000, 8 0x40000000, 80x00000000

17、, 16 0x7FFFE000, 84、外部中断唤醒掉电设计:以下代码是初始化外部中断0 ,用它来唤醒掉电的LPC2114 ,请填空;PINSEL0=0x00000000;PINSELI = PINSEL1&0XFFFFFFFC|0X01; /设置 I/O 连接, PO.16 设置为 EINTOEXTMODE =0X00; /设置 EINT0 为电平触发模式EXTPOLAR=0X00; / 设置 EINT0 为低电平触发EXTWAKE =0X01; / 答应外部中断0 唤醒掉电的 CPU EXTINT=0x0F;/ 清除外部中断标识第四章程序清单 4.1 寄存器相加;文件名: TESTI.S;

18、功能:实现两个寄存器相加;说明:使用ARMulate软件仿真调试AREA Examplel,CODE,READONLY;声明代码段 Examplel ENTRY;标识程序入口CODE32;声明 32 位 ARM 指令START MOV R0 ,#0;设置参数MOV R1 , #10LOOPBLADD_SUB;调用子程序 ADD_SUB BLOOP;跳转到 LOOPADD_SUBADDSR0 , R0 , R1; R0=R0+R1MOVPC , LR;子程序返回END;文件终止程序清单 4.2读取 SMI 马上数T_bitEQU0X20 SWI_Handler欢迎下载精品学习资源STMFDSP!

19、, R0_R3 , R12 , LR;现场爱惜MRSR0, SPSR;读取 SPSR STMEDSP!, R0;储存 SPSRTSTR0, #T_bit;测试 T 标志位LDRNEHR0, LR , #_2;如是 Thumb 指令,读取指令码( 16 位) BICNER0, R0, , #0xFF00;取得 Thumb 指令的 8 位马上数LDREQR0,LR , #_4;如是 ARM 指令,读取指令码( 32 位) BICEQR0,R0 ,#0Xff000000;取得 ARM 指令的 24 位马上数LDMFDSP!, R0_R3 , R12 ,PC ; SWI 反常中断返回程序清单 4.3

20、使用 IRQ 中断ENABLE_IRQMRSR0 , CPSRBICR0 , R0 , #0x80 MSRCPSR_C, R0 MOVPC , LR程序清单 4.4 禁能 IRQ 中断DISABLE_IRQ MRSR0 CPSRORRR0 , R0 , #0x80MSRCPSR_C, R0 MOVPC , LR程序清单 4.5 堆栈指令初始化INTSTACKWOVR0 , LR;储存返回地址;设置治理模式堆栈MSRCPSR_C, #0xD3LDRSP , stacksvc;设置中断模式堆栈MSRCPSR_C, #0xD2LDRSP , Stacklrq程序清单 4.6 小范畴地址的加载ADRR

21、0 , DISP_TAB;加载转换表地址LDRBR1, R0 , R2;使用 R2 作为参数,进行查表DISP_TABDCB0xC0, 0xF9 , 0xA4 ,0xB0 , 0x99 , 0x92 , 0x82 , 0xF8 , 0x80 , 0x90程序清单 4.7 中等范畴地址的加载ADRLR , RETURNI欢迎下载精品学习资源ADRL R1 , Thumb_sub 1 BXR1RETURNICODE 16Thumb_subMOVR1, #10程序清单 4.8 加载 32 位马上数LDRR0 , =IOPIN;加载 GPIO 的寄存器 IOPIN 的地址LDRR1 , R0;读取 I

22、OPIN 寄存器的值LDRR0 , =IOSETLDRR1 , =0x00500500STRR1 , R0; IOSET=0x00500500程序清单 4.9 软件延时 DELAYI NOPNOP NOPSUBSR1 , R1 , #1BNEDELAYI程序清单 4.10 ARM到 Thumb 的状态切换;文件名: TEST8.S;功能:使用BX 指令切换处理器状态;说明:使用ARMulate软件仿真调试AREAExample8, CODE , READONLY ENTRYCODE32ARM_CODEADRR0, THUMB_CODE+1BXR0;跳转并切换处理器状态CODE16 THUMB_CODEMOVR0 , #10; R0=10MOVR1 , #20; R1=20ADDR0 , R1; R0=R0+R1 BEND欢迎下载精品学习资源欢迎下载

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁