《周立功ARM嵌入式系统基础教程课后习题复习资料11.docx》由会员分享,可在线阅读,更多相关《周立功ARM嵌入式系统基础教程课后习题复习资料11.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 第一章思考及练习1、举出3个书本中未提到的嵌入式系统的例子。答:红绿灯控制,数字空调,机顶盒2、什么叫嵌入式系统嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系 统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。3、什么叫嵌入式处理器?嵌入式处理器分为哪几类?嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。嵌入式微处理器( , )嵌入式微控制器( , )嵌入式 处理器( , )嵌入式片上系统( )4、什么是嵌入式操作系统?为何要使用嵌入式操作系统?是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。其次,提高了开发
2、效率,缩短了开发周期。再次,嵌入式实时操作系统充分发挥了 32 位 的多任务潜力。 第二章1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么?项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展, 分析项目偏差,采取必要措施以实现目标。结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。2、为何要进行风险分
3、析?嵌入式项目主要有哪些方面的风险?在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。需求风险;时间风险;资金风险;项目管理风险3、何谓系统规范?制定系统规范的目的是什么?规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。4、何谓系统规划?为何要做系统规划系统规划就是拟定一个开发进程,使项目在合理的进程范围中逐渐建构完成。其目地是让客户可以进一步地掌握系统开发的进程,并确定检查点,以让双方确定项目是否如预期中的进度完成。5、为什么在项目结束前需要进行项目讨论?项目的讨
4、论一个项目进行的反馈机制。通过这一个程序,项目团队的经验才可以被记录 下来,也就是说,这是一个撰写项目历史的过程。 第三章1、7中的T、D、M、I的含义是什么?64 位乘法指令(带M 后缀的)、支持片上调试(带D 后缀的)、高密度 16 位的 指令机扩展(带T 后缀的)和 观察点硬件(带I 后缀的)2、7采用几级流水线?使用何种存储器编址方式?三级流水线(取指 译码 执行);使用了冯诺依曼( )结构,指令和数据共用一条32 位总线。3、处理器模式和处理器状态有何区别?处理器模式指的是处理器在执行程序时在不同时刻所处的不同状态,处理器状态指的是处理器当前所执行的指令集。4、分别列举的处理器模式和
5、状态。 状态: 状态 32 位,这种状态下执行的是字方式的 指令 状态 16 位,这种状态下执行半字方式的 指令模式:用户模式、快中断模式、中断模式、管理模式、 中止模式、未定义模式和系统模式。5、和分别使用哪个寄存器?使用R15寄存器,使用R14寄存器6、R13寄存器的通用功能是什么?堆栈 第四章1、基础知识(1)7()有几种寻址方式? R1,R0,#0x08属于哪种寻址方式?1. 寄存器寻址;2. 立即寻址;3. 寄存器移位寻址;4. 寄存器间接寻址;5. 基址寻址;6. 多寄存器寻址;7. 堆栈寻址;8. 块拷贝寻址;9. 相对寻址; R1,R0,#0x08属于基址寻址。(2)指令的条件
6、码有多少个?默认条件码是什么?16条,默认条件码是。(3)指令中第二个操作数有哪几种形式?举例5个8位图立即数。(1) 立即数;(2) 寄存器;(3) 寄存器及移位常数;0x3(02)、0、00000000(0024)、200(08)、00000001(0x1F28)。(4)指令的偏移形式有哪4种?和有何区别?(1) 零偏移;(2) 前索引偏移;(3) 程序相对偏移;(4) 后索引偏移。就是读出指定地址的数据并存入指定寄存器,读出指定地址的数据,并高24位用符号位扩展,再存入指定寄存器。(5)请指出指令及加载指令的区别及用途。 将 8 位图()立即数或寄存器(2)传送到目标寄存器(),可用于移
7、位 运算等操作。读取指定地址上的存储器单元内容,执行条件.(6)指令的操作是什么?写一个程序,判断R1的值是否大于0x30,是则将R1减去0x30。 指令将寄存器 的值减去2 的值,根据操作的结果更新 中的相应条 件标志位,以便后面的指令根据相应的条件标志来判断是否执行。 R1,0x30 R11,0x30(7)调用子程序是用B还是用指令?请写出返回子程序的指令? 指令用于子程序调用。 , R14(8)请指出伪指令的用法。指令格式及加载指令的区别是什么? 伪指令用于加载 32 位的立即数或一个地址值到指定寄存器。第二个数为地址表达式。(9)状态及状态的切换指令是什么?请举例说明。指令,(10)状
8、态及状态的寄存器有区别吗?指令对哪些寄存器的访问受到一定限制?状态下不能更新 中的 状态标志。,指令对R815寄存器访问受限。(11)指令集的堆栈入栈、出栈指令是哪两条?(12)指令集的指令转换范围为何能达到4?其指令编码是怎样的? 采用两条16 位指令组合成22 位半字偏移(符号扩展为32 位),使指令转移范围为4。2 有符号和无符号加法 下面给出A 和B 的值,您可先手动计算,并预测N、Z、V 和 C 标志位的值。然后修改程序清单4.1 中R0、R1 的值,将这两个值装载到这两个寄存器中(使用 伪指令, 如 R00x 0000),使其执行两个寄存器的加法操作。调试程序,每执行一次加法 操作
9、就将标志位的状态记录下来,并将所得结果及您预先计算得出的结果相比较。如果两个 操作数看作是有符号数,如何解释所得标志位的状态?同样,如果这两个操作数看作是无符数,所得标志位又当如何理解? 0000F 0x7 67654321 (A) + 0x00001 + 0x02345678 + 23110000 (B) 结果: ( ) ( ) ( ) 3 数据访问 把下面的 C 代码转换成汇编代码。数组 a 和b 分别存放在以 0x4000 和 0x5000 为起始 地址的存储区内,类型为(即32 位)。把编写的汇编语言进行编译连接,并进行调试。 (0; i8; ) ai = b7; 第五章1、基础知识:
10、(1)2114可使用的外部晶振频率范围是多少(使用/不使用功能时)?晶振频率范围:130 ,若使用 或 功能为:1025。(2)描述一下2210的.14、P1.20、P1.26、1和0引脚在芯片复位时分别有什么作用?并简单说明2000系列7微控制器的复位处理流程。P0.14 的低电平强制片内引导装载程序复位后控制器件的操作,即进入 状态。P1.20 的低电平使 P1.25P1.16 复位后用作跟踪端口。P1.26 的低电平使 P1.31P1.26 复位后用作一个调试端口。当 为低时,0 及1 一同控制引导和内部操作。引脚的内部上拉确保了引脚未连接时呈现高电平。外部复位输入:当该引脚为低电平时,
11、器件复位,口和外围功能进入默认状态,处理器从地址0 开始执行程序。复位信号是具有迟滞作用的 电平。(3)2000系列7微控制器对向量表有何要求(向量表中的保留字)?向量表所有数据32 位累加和为零(0x000000000x0000001C 的8 个字的机器码累加),才能脱机运行用户程序,这是2114/2124/2212/2214 的特性。(4)如何启动2000系列7微控制器的功能?相关电路应该如何设计?(5)2000系列7微控制器片内是多位宽度的接口?它是通过哪个功能模块来提高的访问速度?128位, 通过存储器加速模块()来提高的访问速度(6)若2210的0存储块使用32位总线,访问0时,地址
12、线A1、A0是否有效?模块中的4具有什么功能?无效,( 如果存储器组配置成 16 位宽,则不需要 A0;8 位宽的存储器组需要使用 A0 。);字节定位选择信号。(7)2000系列7微控制器具有引脚功能复用特性,那么如何设置某个引脚为指定功能?通过引脚功能选择寄存器的设定来设置某个引脚为指定功能(8)设置引脚为功能时,如何控制某个引脚单独输入/输出?当前要知道某个引脚当前的输出状态时,是读取寄存器还是读取寄存器?方向寄存器,。(9)P0.2和P0.3口是I2C接口,当设置它们为时,是否需要外接上拉电阻才能输出高电平?(10)使用主模式时,引脚是否可以作为?若不能,引脚应如何处理?不能用作,应设
13、这高电平,处于末激活状态。(11)2114具有几个是符合什么标准?哪一个可用作通信?哪一个具有接口?0,1;0用于通信,1具有接口。(12)2114具有几个32位定时器?定时器是否可以作通用定时器使用?两个32位定时器,定时器不能用作通用定时器使用(13)2000系列7微控制器具有哪两种低耗模式?如何降低系统的功耗?2 个低功耗模式:空闲和掉电;2、计算设置值:假设有一个基于2114的系统,所使用的晶振为11.0592石英晶振。请计算出最大的系统时钟()频率为多少?此时的M值和P值各为多少?请列出计算公式,并编写设置的程序段。3、存储器重影射:(1)2210具有( 4 )种存影射模式。3 5
14、1 4(2)当程序已固化到片内,向量表保存在0x00000000起始处,则1:0的值应该为( 2 )。 00 01 10 11(3)2000系列7微控制器重影射的目标起始地址为( ),共有( )个字。 0x00000000,8 0x40000000,8 0x00000000,16 0x7000,84、外部中断唤醒掉电设计:以下代码是初始化外部中断0,用它来唤醒掉电的2114,请填空。0=0x00000000; = (1&0)|0X01; 设置连接,.16设置为 =0X00; 设置0为电平触发模式 0X00; 设置0为低电平触发 =0X01; 允许外部中断0唤醒掉电的0x0F; 清除外部中断标识
15、第四章程序清单4.1寄存器相加;文件名:;功能:实现两个寄存器相加;说明:使用软件仿真调试 ;声明代码段 ;标识程序入口32 ;声明32位指令 R0,#0 ;设置参数 R1,#10 ;调用子程序B ;跳转到 R0,R0,R1 ;R001 , ;子程序返回 ;文件结束程序清单4.2 读取立即数 0X20 !,R03,R12, ;现场保护 R0, ;读取 !,R0 ;保存 R0, ;测试T标志位 R0,2 ;若是指令,读取指令码(16位) R0,R0,,#000 ;取得指令的8位立即数 R0,4 ;若是指令,读取指令码(32位) R0,R0,#0000000 ;取得指令的24位立即数 !, R03
16、,R12, ;异常中断返回程序清单4.3使用中断 R0, R0,R0,#0x80 ,R0程序清单4.4禁能中断 R0 R0,R0,#0x80 ,R0程序清单4.5堆栈指令初始化 R0, ;保存返回地址;设置管理模式堆栈 ,#03;设置中断模式堆栈 ,#02程序清单4.6小范围地址的加载 R0, ;加载转换表地址 R1,R0,R2 ;使用R2作为参数,进行查表 00,09,04,00,0x99,0x92,0x82,08,0x80,0x90程序清单4.7中等范围地址的加载 R1,1 R1 16 R1,#10程序清单4.8加载32位立即数 R0, ;加载的寄存器的地址 R1,R0 ;读取寄存器的值
17、R0, R1,=0x00500500 R1,R0 ;0x00500500程序清单4.9软件延时 R1,R1,#1程序清单4.10 到的状态切换;文件名:8;功能:使用指令切换处理器状态;说明:使用软件仿真调试 8,32 R0,1 R0 ;跳转并切换处理器状态16 R0,#10 ;R0=10 R1,#20 ;R1=20 R0,R1 ;R001B 第一章思考及练习()不是常规意义上的嵌入式系统。P6手机 3 机 数码相机可用作嵌入式操作系统的有()(,)2000 什么叫嵌入式系统 p7 第二章嵌入式系统项目开发生命周期的阶段没有() p4、5 识别需求 提出方案 执行项目 系统规划 第三章7中的T
18、、D、M、I的含义是什么?p22不属于7三级流水线的是()p24 取指 译码 值递增 执行对于7三级流水线,当一条指令被译码时,上一条指令正被()p24取指 译码 值递增 执行对于7三级流水线,当一条指令被译码时,下一条指令正被( )p24取指 译码 值递增 执行7采用三级流水线?采用冯.诺依曼体系结构。7有(两种)处理器状态 ,分别是()状态和() 状态。P307有(7种)处理器模式,分别是(用户)、(快中断)、(中断)、(管理)、(中止)、(未定义)、(系统模式),其中5种异常模式是(快中断)、(中断)、(管理)、(中止)、(未定义)模式。P42p44(用户模式)是正常程序工作模式,特点是
19、不能(直接)切换到其它模式。(管理模式)是“操作系统保护代码”,复位和软中断响应时进入此模式。系统模式用于支持操作系统的(特权)任务等,及用户模式类似,但可以(直接)切换到其它模式。在7 (37)个用户可见寄存器中,有(6)个状态寄存器,(31)个通用寄存器。程序计数器是(R15),程序状态寄存器是(),链接寄存器是(R14),堆栈指针是(R13)。P47p49有若干控制位和若干条件代码标志构成:T为0 表示处理器工作在(状态).p80p87有若干控制位和若干条件代码标志构成:N为1表示前次运算结果(为负)。有若干控制位和若干条件代码标志构成:Z为1表示前次运算结果(为零)。有若干控制位和若干
20、条件代码标志构成:C为1表示前次运算产生了(进位/借位)。有若干控制位和若干条件代码标志构成:V为1表示前次运算(溢出)。若前次运算结果为负数,则的( )为1N Z C V 若前次运算结果为零,则的( )为1N Z C V 若前次运算产生了进位/借位,则的( )为1N Z C V 若前次运算溢出,则的( )为1N Z C V 欲使处理器禁止快中断,则应该使() 的F位为1 的F位为0 的I位为1 的I位为0欲使处理器禁止中断,则应该使( )的F位为1 的F位为0 的I位为1 的I位为0异常复习 p3p12子程序的最后一条指令必须是( )P3 14 14 144 144中断服务程序的最后一条指令
21、必须是( )P3 14 14 144 144 快中断服务程序的最后一条指令必须是( ) 14 14 144 144 P37处理器响应中断时,处理器硬件修改为( )p220x00000000 0x00000000 0x00000018 0x0000001C7处理器响应快中断时,处理器硬件修改为( )0x00000000 0x00000000 0x00000018 0x0000001C外部设备向处理器发出中断请求,处理器进入( )异常。快中断 中断 未定义指令 预取中止7处理器收到快中断请求,则进入( )异常。快中断 中断 未定义指令 预取中止 第四章7的寻址方式有( )种。P6 6 7 8 9条
22、件码复习 p35p36使用指令条件码可实现高效的逻辑操作,提高代码效率。指令条件码表如表4.1所列。指令条件码表操作码条件码助记符标志含义00001相等00010不相等100010无符号数大于100101无符号数小于或等于指令的条件码的作用是满足了(条件)则执行指令。P39p41处理器从存储器读数据的指令(加载指令)的助记符是()处理器往存储器写数据的指令(存储指令)的助记符是()将R0+0x12地址处的数据读出,保存到R1中 R1,R0,#0x12 将R1中数据保存到R0+0x12地址处 R1,R0,#0x12 将R00x12地址处的数据读出,保存到R1中 R1,R0,#0x12 将R1中的
23、数据保存到R00x12地址处 R1,R0,#0x12将R02地址处的数据读出,保存到R1中 R1,R1,R2 将R1中数据保存到R02地址处 R1,R1,R2 将R0R2地址处的数据读出,保存到R1中 R1,R0,R2 将R1中的数据保存到R0R2地址处 R1,R0,R2 P60p62数据传送指令的助记符是()。代进位加法指令的助记符是( )代借位减法指令的助记符是( )求R12,和放在R1中 R1,R1,R2 求R1R2,差放在R1中 R1,R1,R2 求R4R3R2R1,差放在R6R5中 R5,R3,R1 R6,R4,R2求R4R3R2R1,和放在R6R5中 R5,R3,R1 R6,R4,
24、R2求R4R31,差放在R6R5中 R5,R3,#1 R6,R4,#0求R4R31,和放在R6R5中 R5,R3,#1 R6,R4,#0 P69将R0最第4位数据保留,并影响标志位 R0,R0,#0x0F将R0的1,3,5位置1 R0,R0,#0x2A将R0的1,3,5位置0 R0,R0,0x2AP75,p76R1及99比较,设置相关标志位 R1,#99 R1及R2比较,设置相关标志位 R1,R2 P96跳转到标号处 B 前次运算结果为正,转到标号处前次运算结果为非正,转到标号处调用子程序前次运算结果为0,调用子程序前次运算结果为非0,调用子程序调用子程序是用()指令?子程序返回指令是( 14
25、)编程题:写一个程序,判断R1的值是否大于0x30,是则将R1减去0x30。 R1,0x30 R11,0x30编写实现两个寄存器R0,R1相加的子程序。 R0,R0,R1 ;R001 , ;子程序返回 ;文件结束P119p122将状态寄存器读取,保存到R1中 R1,将状态寄存器读出,保存到R2中 R2, 程序清单4.3 使能中断 R0, R0,R0,#0X80 ,R0程序清单4.4 禁能中断 R0 R0,R0,#0X80 ,R0 , ;即R14编一个简单的软件延时程序 R1,R1,#1第五章p62000系列单片机包含四大部分:7内核、7局部总线及相关部件、及相关部件、总线及相关部件。2000系
26、列芯片内部单元有和、系统功能之系统时钟和复位、向量中断控制器、外部存储器控制器、异步收/发器、外部中断等。P14由设置寄存器( )来选择P1口的引脚功能。0 1 2 p21p23片内编程方法不包括( )通过内置接口 通过在线系统编程(),通过0通信通过在线应用编程() 运行程序片内控制器包含一个(回写缓冲区),它总是保存着发生到内部的(最后)一个字数据。P26片内存储器可能的最大地址是( )0x7 0 0 0片外存储器可能的最大地址是( )0x7 0 0 0外设可能的最小地址是( )0x00000000 00000000 00000000 外设可能的最大地址是( )0x7 0 0 0p31 映
27、射到片内存储器(顶部),映射到片内存储器(底部)P5758时钟产生单元能产生供(内核)使用的时钟和供(外设)使用的时钟晶振输出的时钟频率最大为()25 20 35 40锁相环输出的最大频率为(60 )20 40 60 80p70p746及锁相环有关的寄存器有()、()、()、()锁相环计算流程是:1、选择内核工作频率。2、选择振荡器频率。3、计算M值,配置位。4、计算P值,配置位。及分频器有关的寄存器有()为了正确使用时钟技术,必须设置好()、()、()、()等寄存器。复位后程序计数器的值为( )0x00000000 0x00000004 0x00000008 0x0000001Cp113为了
28、使用好中断技术,要设置好(6)个寄存器。2位被设置为1,则( )引脚1输入信号高电平或上升沿有效 引脚2输入信号高电平或上升沿有效引脚3输入信号高电平或上升沿有效 引脚0输入信号高电平或上升沿有效2位设置为1,则( )引脚1输入信号为边沿触发有效 引脚2输入信号为边沿触发有效引脚3输入信号为边沿触发有效 引脚0输入信号为边沿触发有效要求外部中断2能将处理器从掉电模式唤醒,( )应该设置成10位 1位 2位 3位若引脚1输入中断请求,会使( )中断标志寄存器的第1位清0 中断标志寄存器的第1位置1中断标志寄存器的第0位清0 中断标志寄存器的第0位置1p126,p127用C语言设置0为低电平触发中
29、断1=(1&0)|0X01;0X00;0X00;用C语言设置0为下降沿触发中断1=(1&0)|0X01;0X01;0X00;用C语言设置1为高电平触发中断1=(1&0)|0X01;0X00;0X02;用C语言设置1为上升沿触发中断1=(1&0)|0X01;0X02;0X02;p130p138 p137有错异常向量表保存在0x00000000起始处,则1:0的值应该为( )。 00 01 10 11异常向量表保存在 中,则1:0的值应该为( )。 00 01 10 11异常向量表保存在片内中,则1:0的值应该为( )。 00 01 10 11异常向量表保存在外部存储器中,则1:0的值应该为( )
30、。 00 01 10 11p150空闲模式特点:内核停止执行指令,系统时钟一直有效,外设功能保持设置的位为1,进入空闲模式;中断请求使处理器退出空闲模式。掉电模式特点:关闭时钟,仅相关数据保持、处理器和引脚状态保持。设置的位为1,进入掉电模式;复位和无需时钟的中断使处理器退出中断。欲进入空闲模式,则应该使( )。为1 为0 为1 为0欲进入掉电模式,则应该使( )。为1 为0 为1 为0 p15外部存储器控制器输出地址线(24)位,4位存储器组选择线是(3:0)。P18外部存储器分为(4)组,每组有(自己的)配置寄存器,通过它分别可以设置每个寄存器组读写访问之间插入的等待周期(个数)、每个存储
31、器组的总线(宽度)等。P2033配置寄存器0的1为( ),外部寄存器组0的读操作周期为5个周期1 2 3 4配置寄存器0的2为( ),外部寄存器组0的写操作周期为5个周期1 2 3 4配置寄存器1的为( ),外部寄存器组1数据总线宽度为32位00 01 10 11当将03:0设置成( )时,P0.0和P0.1为脚。0000 0101 1010 1111 当将03:0设置成( )时,P0.0和P0.1分别为0和0脚。0000 0101 1010 1111当将03:0设置成( )时,P0.0和P0.1分别为1、3脚。0000 0101 1010 1111当将03:0设置成( )时,P0.1脚为0脚
32、。0000 0101 1010 1111用C编程,将P0.0和P0.1分别设置为0和0脚00&0000|0x00000005P53、p567内核具有(2)个中断输入,但经过向量中断控制器最多可以接收(32)个中断输入请求。外部中断请求0是向量中断控制器的( )中断请求输入14 中断请求输入15 中断请求输入16 中断请求输入17p58、p59允许0产生中断,应该使中断使能寄存器的( )为1。14 15 16 17设置0为快中断,应该使中断选择寄存器的( )为1。14 15 16 17设置0为中断,应该使中断选择寄存器的( )为0。14 15 16 17用C语言编程开放外部中断1,设置其为快中断
33、。 0x800x80p9P0为,欲使它的低8位为输出脚,而其他位为输入脚,则应该设置0为( )0 000 00000 P0为,欲使它的815位为输出脚,而其他位为输入脚,则应该设置0为( )0 000 00000 P0为,欲使它的1623位为输出脚,而其他位为输入脚,则应该设置0为( )0 000 00000 p11P0的低8位为输出脚。欲使其低4位输出高电平,则应该( ),设置0为00,设置0为0x0F设置0为00,设置0为00设置0为0x0F,设置0为00设置0为0x0F,设置0为0x0F设已经将P0口设置成,用C语言编程,使P0的低8位输出脚,低4位输出高电平。0000x0F000第 11 页