《ARM嵌入式系统结构与编程》习题答案
ARM嵌入式系统结构与编程习题答案(全).
《ARM嵌入式系统结构与编程》习题答案第一章绪论1.国内嵌入式系统行业对“嵌入式系统”的定义是什么?如何理解?答:国内嵌入式行业一个普遍认同的定义是:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专业计算机系统。
从这个定义可以看出嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的剪裁利用。
因此有人把嵌入式系统比作是一个针对特定的应用而“量身定做”的专业计算机系统。
2.嵌入式系统是从何时产生的,简述其发展历程。
答:从20世纪70年代单片机的出现到目前各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了30多年的发展历史。
嵌入式系统的出现最初是基于单片机的。
Intel公司1971年开发出第一片具有4位总线结构的微处理器4004,可以说是嵌入式系统的萌芽阶段。
80年代初的8051是单片机历史上值得纪念的一页。
20世纪80年代早期,出现了商业级的“实时操作系统内核”,在实时内核下编写应用软件可以使新产品的沿着更快,更节省资金。
20世纪90年代实时内核发展为实时多任务操作系统。
步入21世纪以来,嵌入式系统得到了极大的发展。
在硬件上,MCU的性能得到了极大的提升,特别是ARM技术的出现与完善,为嵌入式操作系统提供了功能强大的硬件载体,将嵌入式系统推向了一个崭新的阶段。
3.当前最常用的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点。
答:主要有嵌入式Linux和嵌入式实时操作内核uC/OS-II嵌入式Linux操作系统是针对嵌入式微控制器的特点而量身定做的一种Linux操作系统,包括常用的嵌入式通信协议和常用驱动,支持多种文件系统。
主要有以下特点:源码开放,易于移植,内核小,功能强大,运行稳定,效率高等。
uC/OS是源码工卡的实时嵌入式系统内核,主要有以下特点:源码公开,可移植性强,可固化,可剪裁,占先式,多任务,可确定性,提供系统服务等。
ARM嵌入式系统结构与编程习题答案邱铁著
ARM嵌入式系统结构与编程习题答案邱铁著第8章ARM汇编语言与嵌入式C混合编程1.严格按照嵌入式C语言的编程规范,写一个C语言程序,实现将一个二维数组内的数据行和列进行排序。
答:略2.嵌入式C程序设计中常用的移位操作有哪几种,请说明每种运算所对应的ARM指令实现。
答:移位操作分为左移操作与右移操作左移运算符―<右移运算符―>>‖实现将―>>‖左边的操作数的各个二进制位向右移动―<对于空位的补齐方式,无符号数与有符号数是有区别的。
对无符号数进行右移时,低位丢弃,高位用0补齐,其值相当于除以:2―右移位数‖次方对有符号数进行右移时,根据处理器的不同选择逻辑右移或算术右移3.volatile限制符在程序中起到什么作用。
请举例说明。
答:volatile的本意为―暂态的‖或.―易变的‖,该说明符起到抑制编译器优化的作用。
如果在声明时用―volatile‖关键进行修饰,遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供特殊地址的稳定访问。
例:硬件端口寄存器读取Char某=0,y=0,z=0;某=ReadChar(0某54000000);//读端口y=某;某=ReadChar(0某54000000);//再读端口z=某;以上代码可能被编译器优化为Char某=0,y=0,z=0;某=ReadChar(0某54000000);//读端口y=某;z=某;为了确保某的值从真实端口获取,声明时应该为Volatilechar某;Chary,z;4.请分析下列程序代码的执行结果。
#includemain(){intvalue=0某FF1;int某p1,某某p2,某某某p3,某某某某p4;p1=&value;p2=&p1;p3=&p2;p4=&p3;printf(\}答:程序输出结果为:某某某某p4=40815.分析宏定义#definePOWER(某)某某某是否合理,举例说明。
arm嵌入式系统课后习题部分答案
a r m嵌入式系统课后习题部分答案The pony was revised in January 2021一填空题嵌入式系统从大的方面分为(嵌入式系统硬件平台)和(嵌入式软件)两大部分。
驱动层程序一般包括(硬件抽象层HAL)、(板级支持包BSP)和(设备驱动程序)。
嵌入式系统核心是嵌入式处理器,可分为(嵌入式微处理器)、(嵌入式微控制器)、嵌入式DSP处理器和(嵌入式片上系统SoC)4大类。
处理器分为(ARM)和(Thumb)两种操作状态。
状态下,SP寄存器指的是(R13)、LR寄存器指的是(R14)、PC寄存器指的是(R15).处理器支持的数据类型中,字节为(8)位、半字为(16)位、字为(32)位。
(-S)指令集包括(ARM)指令集和(Thumb)指令集。
指令用于从(存储器)中将一个32位的字数据传送到(目的寄存器)中。
指出下面各条指令的寻址方式。
SUB R0,R1,R2 ;寻址方式:(寄存器寻址)。
SUBS R0,R0,#1 ;寻址方式:(立即寻址)。
MOV R0,R2,LSL#3 ;寻址方式:(寄存器移位寻址)。
SWP R1,R1,[R2] ;寻址方式:(寄存器间接寻址)。
LDR R2,[R3,#0x0C] ;寻址方式:(基址寻址)。
汇编语言源程序中语句一般有(指令)、(伪指令)、(伪操作)和宏指令组成。
对Flash存储器的编程可通过(JTAG仿真/调试器)、( ISP )和(IAP)3重方法来实现。
异常向量表可以来自4个不同的存储器区域,分别是(片内Flash )、(片内SRAM )、( Boot Block )和片外存储器。
系列的定时器主要用于3个方面:(对内部事件进行计数的间隔定时器)、(通过捕获输入实现脉宽解调器)、(自由运行的定时器)。
二选择题可以表示微控制器的缩略词是( B )A. MPUB. MCUC. WDT类存储器包括( ABD )A. NOR FlashB. EPROMC. SRAMD. PROM不属于ARM的系列是( D )A. MCS-96B. 80C51C. LPC2000处理器系列采用( A )级流水线。
ARM嵌入式系统结构与编程(第2版)_第6-8章_习题答案
BNE
loop_2
Stop:
B
Stop
.end (2).在 ARM 集成开发环境下编程:
AREA Fctrl, CODE, READONLY
ENTRY
CODE32
START
MOV
R0,#0xB000
MOV
R1,#0x10000001
MOV
R2,#100
loop_1
STR
R1,[R0],#4
ADD
R1,R1,#1
解答: 伪指令是 ARM 处理器支持的汇编语言程序里的特殊助记符,它不在处理器运
行期间由机器执行,只是在汇编时将被合适的机器指令代替成 ARM 或 Thumb 指令, 从而实现真正的指令操作。
伪操作(Directive)是 ARM 汇编语言程序里的一些特殊的指令助记符,其作用主要 是为完成汇编程序做各种准备工作,对源程序运行汇编程序处理,而不是在计算机运 行期间由处理器执行.也就是说,这些伪操作只是汇编过程中起作用,一旦汇编结束,伪 操作也就随之消失。
(1)分配一段字节内存单元,并用57, 0x11, 031, ‘Z’,0x76进行初始化;
《ARM 嵌入式系统结构与编程》第 2 版,邱铁 编著. 清华大学出版社. 2013 年 8 月第 2 版,2015 年 8 月第 4 次印刷
(2)分配一段半字内存单元,并用0xFFE0,0xAABB,0x12,进行初始化;
《ARM 嵌入式系统结构与编程》第 2 版,邱铁 编著. 清华大学出版社. 2013 年 8 月第 2 版,2015 年 8 月第 4 次印刷
《ARM 嵌入式系统结构与编程》第 2 版,第 6~8 章
思考与练习题答案(此答案仅供教师教学用)
ARM嵌入式系统课后习题(部分)答案
一填空题1、1嵌入式系统从大的方面分为(嵌入式系统硬件平台)与(嵌入式软件)两大部分。
1、2驱动层程序一般包括(硬件抽象层HAL)、(板级支持包BSP)与(设备驱动程序)。
1、3嵌入式系统核心就是嵌入式处理器,可分为(嵌入式微处理器)、(嵌入式微控制器)、嵌入式DSP处理器与(嵌入式片上系统SoC)4大类。
2、2ARM7TDMI处理器分为(ARM)与(Thumb)两种操作状态。
2、3ARM状态下,SP寄存器指的就是(R13)、LR寄存器指的就是(R14)、PC寄存器指的就是(R15)、2、4ARM处理器支持的数据类型中,字节为(8)位、半字为(16)位、字为(32)位。
3、1ARM7TDMI(-S)指令集包括(ARM)指令集与(Thumb)指令集。
3、2LDR指令用于从(存储器)中将一个32位的字数据传送到(目的寄存器)中。
3、3指出下面各条指令的寻址方式。
SUB R0,R1,R2 ;寻址方式:( 寄存器寻址)。
SUBS R0,R0,#1 ;寻址方式:( 立即寻址)。
MOV R0,R2,LSL#3 ;寻址方式:( 寄存器移位寻址)。
SWP R1,R1,[R2] ;寻址方式:( 寄存器间接寻址)。
LDR R2,[R3,#0x0C] ;寻址方式:( 基址寻址)。
4、3ARM汇编语言源程序中语句一般有(指令)、(伪指令)、(伪操作)与宏指令组成。
6、1对Flash存储器的编程可通过(JTAG仿真/调试器)、( ISP )与(IAP)3重方法来实现。
6、2异常向量表可以来自4个不同的存储器区域,分别就是( 片内Flash )、( 片内SRAM )、( Boot Block )与片外存储器。
6、3LPC2000系列的定时器主要用于3个方面:( 对内部事件进行计数的间隔定时器 )、( 通过捕获输入实现脉宽解调器 )、( 自由运行的定时器)。
二选择题1、1可以表示微控制器的缩略词就是( B )A、MPUB、MCUC、WDTD、SPI1、2ROM类存储器包括( ABD )A、NOR FlashB、EPROMC、SRAMD、PROM1、3不属于ARM的系列就是( D )A、MCS-96B、80C51C、LPC2000D、80X862、2ARM7处理器系列采用( A )级流水线。
arm9嵌入式课后答案
arm9 嵌入式课后答案【篇一:arm 嵌入式系统结构与编程习题答案(全)】ass=txt> 第一章绪论1. 国内嵌入式系统行业对“嵌入式系统”的定义是什么?如何理解?答:国内嵌入式行业一个普遍认同的定义是:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专业计算机系统。
从这个定义可以看出嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的剪裁利用。
因此有人把嵌入式系统比作是一个针对特定的应用而“量身定做”的专业计算机系统。
2 .嵌入式系统是从何时产生的,简述其发展历程。
答:从20 世纪70 年代单片机的出现到目前各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了30 多年的发展历史。
嵌入式系统的出现最初是基于单片机的。
intel 公司1971 年开发出第一片具有 4 位总线结构的微处理器4004 ,可以说是嵌入式系统的萌芽阶段。
80 年代初的8051 是单片机历史上值得纪念的一页。
20 世纪80 年代早期,出现了商业级的“实时操作系统内核”,在实时内核下编写应用软件可以使新产品的沿着更快,更节省资金。
20 世纪90 年代实时内核发展为实时多任务操作系统。
步入21 世纪以来,嵌入式系统得到了极大的发展。
在硬件上,mcu 的性能得到了极大的提升,特别是arm 技术的出现与完善,为嵌入式操作系统提供了功能强大的硬件载体,将嵌入式系统推向了一个崭新的阶段。
3 .当前最常用的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点。
答:主要有嵌入式linux 和嵌入式实时操作内核uc/os-ii嵌入式linux 操作系统是针对嵌入式微控制器的特点而量身定做的一种linux 操作系统,包括常用的嵌入式通信协议和常用驱动,支持多种文件系统。
主要有以下特点:源码开放,易于移植,内核小,功能强大,运行稳定,效率高等。
最新《ARM嵌入式系统结构与编程》第二章课后答案
第2章ARM技术与ARM体系结构121.简述ARM处理器内核调试结构原理3答:ARM处理器一般都带有嵌入式追踪宏单元ETM(Embedded Trace Macro),4它是ARM公司自己推出的调试工具。
ARM处理器都支持基于JTAG(Joint TestAction Group 联合测试行动小组)的调试方法。
它利用芯片内部的Embedded ICE 56来控制ARM内核操作,可完成单步调试和断点调试等操作。
当CPU处理单步执7行完毕或到达断点处时,就可以在宿主机端查看处理器现场数据,但是它不能8在CPU运行过程中对实时数据进行仿真。
910ETM解决了上述问题,能够在CPU运行过程中实时扫描处理器的现场信息,并11数据送往TAP(Test Access Port)控制器。
上图中分为三条扫描链(图中的粗12实线),分别用来监视ARM核,ETM,嵌入式ICE的状态。
13141.分析ARM7TDMI-S各字母所代表的含义。
15答:ARM7 T D M I – S 中16ARM是Advanced RISC Machines的缩写177是系列号;T:支持高密度16位的Thumb指令集;1819D:支持JTAG片上调试;20M:支持用于长乘法操作(64位结果)ARM指令,包含快速乘法器;;21I:带有嵌入式追踪宏单元ETM,用来设置断点和观察点的调试硬件;22S:可综合版本,意味着处理器内核是以源代码形式提供的。
这种源代码形式23又可以编译成一种易于EDA工具使用的形式。
24252.ARM处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异26常模式,并指出处理器在什么情况下进入相应的模式。
27答:ARM技术的设计者将ARM处理器在应用中可能产生的状态进行了分类,并28针对同一类型的异常状态设定了一个固定的入口点,当异常产生时,程序会自29动跳转到对应异常入口处进行异常服务。
301.用户模式:非特权模式,也就是正常程序执行的模式,大部分任31务在这种模式下执行。
ARM嵌入式系统结构与编程习题标准答案
《ARM嵌入式系统结构与编程》习题答案第一章绪论1.国内嵌入式系统行业对“嵌入式系统”的定义是什么?如何理解?答:国内嵌入式行业一个普遍认同的定义是:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专业计算机系统。
从这个定义可以看出嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的剪裁利用。
因此有人把嵌入式系统比作是一个针对特定的应用而“量身定做”的专业计算机系统。
2.嵌入式系统是从何时产生的,简述其发展历程。
答:从20世纪70年代单片机的出现到目前各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了30多年的发展历史。
嵌入式系统的出现最初是基于单片机的。
Intel公司1971年开发出第一片具有4位总线结构的微处理器4004,可以说是嵌入式系统的萌芽阶段。
80年代初的8051是单片机历史上值得纪念的一页。
20世纪80年代早期,出现了商业级的“实时操作系统内核”,在实时内核下编写应用软件可以使新产品的沿着更快,更节省资金。
20世纪90年代实时内核发展为实时多任务操作系统。
步入21世纪以来,嵌入式系统得到了极大的发展。
在硬件上,MCU的性能得到了极大的提升,特别是ARM技术的出现与完善,为嵌入式操作系统提供了功能强大的硬件载体,将嵌入式系统推向了一个崭新的阶段。
3.当前最常用的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点。
答:主要有嵌入式Linux和嵌入式实时操作内核uC/OS-II嵌入式Linux操作系统是针对嵌入式微控制器的特点而量身定做的一种Linux操作系统,包括常用的嵌入式通信协议和常用驱动,支持多种文件系统。
主要有以下特点:源码开放,易于移植,内核小,功能强大,运行稳定,效率高等。
uC/OS是源码工卡的实时嵌入式系统内核,主要有以下特点:源码公开,可移植性强,可固化,可剪裁,占先式,多任务,可确定性,提供系统服务等。
ARM嵌入式系统结构与编程复习题答案 邱铁著
第8章 ARM汇编语言与嵌入式C混合编程1.严格按照嵌入式C语言的编程规,写一个C语言程序,实现将一个二维数组的数据行和列进行排序。
答:略2.嵌入式C程序设计中常用的移位操作有哪几种,请说明每种运算所对应的ARM指令实现。
答:移位操作分为左移操作与右移操作左移运算符“<<”实现将“<<”左边的操作数的各个二进制位向左移动“<<”右边操作数所指定的位数,高位丢弃,低位补0。
其值相当于乘以:2“左移位数”次方。
右移运算符“>>”实现将“>>”左边的操作数的各个二进制位向右移动“<<”右边操作数所指定的位数。
•对于空位的补齐方式,无符号数与有符号数是有区别的。
•对无符号数进行右移时,低位丢弃,高位用0补齐,其值相当于除以:2“右移位数”次方•对有符号数进行右移时,根据处理器的不同选择逻辑右移或算术右移3.volatile限制符在程序中起到什么作用。
请举例说明。
答:volatile的本意为“暂态的”或.“易变的”,该说明符起到抑制编译器优化的作用。
如果在声明时用“volatile”关键进行修饰,遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供特殊地址的稳定访问。
•例:硬件端口寄存器读取•Char x=0,y=0,z=0;•x=ReadChar(0x54000000);//读端口•y=x;•x=ReadChar(0x54000000);//再读端口•z=x;•以上代码可能被编译器优化为•Char x=0,y=0,z=0;•x=ReadChar(0x54000000);//读端口•y=x;•z=x;•为了确保x的值从真实端口获取,声明时应该为•Volatile char x;•Char y,z;4.请分析下列程序代码的执行结果。
#include<stdio.h>main(){int value=0xFF1;int *p1,**p2,***p3,****p4;p1=&value;p2=&p1;p3=&p2;p4=&p3;printf("****p4=%d\n",****p4);}答:程序输出结果为:****p4=40815.分析宏定义#define POWER(x) x*x 是否合理,举例说明。
arm嵌入式系统试题及标准答案
arm嵌入式系统试题及标准答案一、选择题1. ARM的英文全称为()。
A. Advanced RISC MachinesB. Advanced Reduced Instruction Set ComputingC. Advanced Risk Instruction Set MachinesD. Advanced Reduced Innovative System Machines 正确答案:A2. ARM的发展平台主要有()。
A. CortexB. Keil MDKC. MbedD. All of the above正确答案:D3. ARM架构中,RISC指的是()。
A. Reduced Instructions for Simple ComputingB. Reduced Instruction Set ComputingC. Reduced Instructions for Speedy ComputingD. Reduced Innovative System Computing正确答案:B4. ARM的家族庞大,主要分为()。
A. ARMv1-ARMv5B. ARMv6-ARMv7C. ARMv8-ARMv12D. ARMv12-ARMv16正确答案:B5. 在ARM处理器中,Cortex-A系列主要针对()。
A. 浮点运算B. 实时性C. 安全性D. 性能正确答案:D二、填空题1. ARM架构的特点之一是指令集精简,采用()指令集。
正确答案:RISC(Reduced Instruction Set Computing)2. ARM处理器的体积小、功耗低的特点使得其在()领域得到广泛应用。
正确答案:嵌入式系统3. ARM主要设计并销售()和相关的软件开发工具、IP核等。
正确答案:处理器4. Keil MDK是由ARM公司开发的()。
正确答案:集成开发环境5. ARM Cortex-M系列处理器适用于对能耗和成本有严格要求的()。
ARM嵌入式体系结构与接口技术(Cortex-A9版)-习题答案
第一章1.简述ARM可以工作的几种模式。
答:ARMv7-A架构处理器共有8种工作模式,即用户模式(User)、快速中断模式(FIQ)、外部中断模式(IRQ)、特权模式(Supervisor)、数据访问中止模式(Abort)、未定义指令中止模式(Undef)、系统模式(System)、监控模式(Monitor)2.ARM 核有多少个寄存器?答:ARM处理器有40个32位长的寄存器3.什么寄存器用于存储PC和LR寄存器?答:R15和R14寄存器4.R13通常用来存储什么?答:R13通常用来存储堆栈指针5.哪种模式使用的寄存器最少?答:用户模式(User)和系统模式(System),因为这两种模式下没有SPSR寄存器6.CPSR 的哪一位反映了处理器的状态?答:T位是处理器的状态控制位第二章1.熟悉 Eclipse 开发环境。
答:略,参照第2.3节2.新建一个工程,编写一个汇编程序实现3+13=16的操作。
答:略,参照第2.6节第三章1.用 ARM 汇编实现下面列出的操作。
R0=15R0=R1/16(有符号数)R1=R2*3R0=−R0答:R0=15-- MOV R0,#15R0=R1/16 --MOV R0,R1,ASR #4BIC R0, R0, #0x78000000R1=R2*3-- MOV R3, #3MUL R1,R2,R3R0=−R0 -- MOV R1, #-1MOV R2, R0MUL R0,R1,R22.BIC 指令的作用是什么?答:将一个寄存器中的某一位或者某几位清零3.执行 SWI 指令时会发生什么情况?答:执行SWI指令时ARM处理器会自动将CPSR拷贝到SVC模式下的SPSR,然后修改CPSR 寄存器的T位使处理器进入ARM状态,修改CPSR寄存器的低五位模式位使处理器进入SVC模式,修改CPSR寄存器的I位禁止IRQ中断,保存当前SWI指令下一条指令的地址到SVC 模式下的LR寄存器,然后PC的值改为异常向量表中偏移地址为0x08的地址。
《ARM嵌入式系统结构与编程》习题答案
1章绪论1.国内嵌入式系统行业对“嵌入式系统”的定义是什么?如何理解?答:见教材1.1节。
2.嵌入式系统是从何时产生的,简述其发展历程。
答:见教材1.1节。
3.当前最常见的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点。
答:见教材1.2.1节的嵌入式Linux和嵌入式实时操作内核UC /OS-I 。
4.举例说明嵌入式设备在工控设备中的应用。
答:见教材1.3节的“工业控制领域”。
5.未来嵌入式技术的发展趋势有哪些?答:见教材1.4节的嵌入式技术的发展趋势。
2章ARM技术与ARM体系结构1.简述ARM处理器内核调试结构原理。
答:对教材1.2节的图2-1进行描述。
2.分析ARM7TDMI-S各字母所代表的含义。
答:参考教材2.1.2 ARM核版本命名规则说明。
3.ARM处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式,并指出处理器在什么情况下进入相应的模式。
ARM处理器共有7种工作模式:用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。
在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器会自动切换工作模式FIQ模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优(fast)中断产生时将会进入这种模式。
IRQ模式:也称为普通中断模式,:当一个低优先级中断产生时将会进入这种模式。
在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。
通常的中断处理都在IRQ 模式下进行。
SVC模式:称之为管理模式,它是一种操作系统保护模式。
当复位或软中断指令执行时处理器将进入这种模式。
中止模式:当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟存储或存储保护。
未定义指令异常模式:当执行未定义指令时会进入这种模式,主要是用来处理未定义的指令陷阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协处理器的操作上。
《ARM嵌入式系统结构与编程》习题答案 邱铁编著
《ARM嵌入式系统结构与编程》邱铁编著. 清华大学出版社.年月第版 年月第二次印刷20093120108 《ARM嵌入式系统结构与编程》第1~4章思考与练习题答案 此答案仅供教师教学用 第1章绪论思考与练习题答案 1. 国内嵌入式系统行业对“嵌入式系统”的定义是什么 如何理解答 见教材1.1节。
2. 嵌入式系统是从何时产生的 简述其发展历程。
答 见教材1.1节。
3. 当前最常见的源码开放的嵌入式操作系统有哪些 请举出两例 并分析其特点。
答 见教材1.2.1节的嵌入式Linux和嵌入式实时操作内核μC /OS-II。
4. 举例说明嵌入式设备在工控设备中的应用。
答 见教材1.3节的“工业控制领域”。
5. 未来嵌入式技术的发展趋势有哪些 答 见教材1.4节的嵌入式技术的发展趋势。
第2章 ARM技术与ARM体系结构思考与练习题答案 1 简述ARM处理器内核调试结构原理。
答 对教材1.2节的图2-1进行描述。
2 分析ARM7TDMI-S各字母所代表的含义。
答 参考教材2 1 2 ARM核版本命名规则说明。
课后答案网《ARM嵌入式系统结构与编程》邱铁编著. 清华大学出版社. 年月第版 年月第二次印刷200931201083 ARM处理器的工作模式有哪几种 其中哪些为特权模式 哪些为异常模式并指出处理器在什么情况下进入相应的模式。
答 ARM处理器共有7种工作模式用户模式 非特权模式 也就是正常程序执行的模式 大部分任务在这种模式下执行。
在用户模式下 如果没异常发生 不允许应用程序自行改变处理器的工作模式 如果有异常发生 处理器会自动切换工作模式FIQ模式 也称为快速中断模式 支持高速数据传输和通道处理 当一个高优先级(fast)中断产生时将会进入这种模式。
IRQ模式 也称为普通中断模式 :当一个低优先级中断产生时将会进入这种模式。
在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。
通常的中断处理都在IRQ模式下进行。
ARM嵌入式体系结构与接口技术(Cortex-A9版)-习题答案
ARM嵌入式体系结构与接口技术(Cortex-A9版)-习题答案第一章1.简述ARM可以工作的几种模式。
答:ARMv7-A架构处理器共有8种工作模式,即用户模式(User)、快速中断模式(FIQ)、外部中断模式(IRQ)、特权模式(Supervisor)、数据访问中止模式(Abort)、未定义指令中止模式(Undef)、系统模式(System)、监控模式(Monitor)2.ARM 核有多少个寄存器?答:ARM处理器有40个32位长的寄存器3.什么寄存器用于存储PC和LR寄存器?答:R15和R14寄存器4.R13通常用来存储什么?答:R13通常用来存储堆栈指针5.哪种模式使用的寄存器最少?答:用户模式(User)和系统模式(System),因为这两种模式下没有SPSR寄存器6.CPSR 的哪一位反映了处理器的状态?答:T位是处理器的状态控制位第二章1.熟悉 Eclipse 开发环境。
答:略,参照第2.3节2.新建一个工程,编写一个汇编程序实现3+13=16的操作。
答:略,参照第2.6节第三章1.用 ARM 汇编实现下面列出的操作。
R0=15R0=R1/16(有符号数)R1=R2*3R0=?R0答:R0=15-- MOV R0,#15R0=R1/16 --MOV R0,R1,ASR #4BIC R0, R0, #0x78000000R1=R2*3-- MOV R3, #3MUL R1,R2,R3R0=?R0 -- MOV R1, #-1MOV R2, R0MUL R0,R1,R22.BIC 指令的作用是什么?答:将一个寄存器中的某一位或者某几位清零3.执行 SWI 指令时会发生什么情况?答:执行SWI指令时ARM处理器会自动将CPSR拷贝到SVC模式下的SPSR,然后修改CPSR 寄存器的T位使处理器进入ARM状态,修改CPSR寄存器的低五位模式位使处理器进入SVC模式,修改CPSR寄存器的I位禁止IRQ中断,保存当前SWI指令下一条指令的地址到SVC 模式下的LR寄存器,然后PC的值改为异常向量表中偏移地址为0x08的地址。
ARM嵌入式系统结构与编程课后复习题答案
《ARM嵌入式系统结构与编程》课后思考与练习题参考答案第一章绪论思考与练习题答案:1、答:见教材P2的1.1节容。
2、答:见教材P1的1.1节容。
3、答:见教材P4的1.2.1节的嵌入式Linux和嵌入式实时操作系统核µC/OS-Ⅱ。
4、答:见教材P6的1.3节的“工业控制领域”。
5、答:见教材P8的1.4节的嵌入式技术的发展趋势。
第二章ARM技术与ARM体系结构思考与练习题答案:1、答:对教材P15的2.2节的图2-1进行描述。
2、答:参考教材P12的2.1.2节ARM核版本命名规则说明。
3、答:见教材P18的2.3节的ARM处理器共有7种工作模式。
4、答:PSR具体的格式为:P21的图2-7,描述“标志域”和“控制域”各位的功能。
C、Z、N、V进行置位和清零见P22的容。
5、答:ARM在异常时会进行以下操作:P24最上面的(1)(2)(3)(4)。
ARM在异常返回时:(1)从SPSR_<mode>恢复CPSR;(2)从LR_<mode>恢复PC。
6、答:见教材P25的“数据存储格式”中的“小端存储格式”和“大端存储格式”。
7、答:在ARM三级流水线下:见教材P27的“三级流水线运行情况分析”的(1)带有存储器访问指令的流水线。
8、答:ARM9在指令操作上采用的5级流水线:(1)取指令:从指令Cache中读取指令。
(2)译码:对指令进行译码,识别出是对哪个寄存器进行操作,并从通用寄存器中读取操作数。
(3)执行:进行ALU运算和移位操作,如果是对存储器操作的指令,则在ALU中计算出要访问的存储器地址。
(4)存储器访问:如果是对存储器访问的指令,用来实现数据缓冲功能(通过数据Cache);如果不是对存储器访问的指令,本级流水线为一个空的时钟周期。
(5)寄存器回写:将指令运算或操作结果写回到目标寄存器中。
9、答:见教材P29的“5级流水线互锁分析”的容。
第三章ARM指令集寻址方式思考与练习题答案:1、答:见教材P32的3.1节中“2.指令条件码”的容。
ARM嵌入式系统结构与编程,课后练习及答案
第一章思考与练习1、举出3个书本中未提到的嵌入式系统的例子。
答:红绿灯控制,数字空调,机顶盒2、什么叫嵌入式系统?嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
3、什么叫嵌入式处理器?嵌入式处理器分为哪几类?嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。
嵌入式微处理器(Embedded Microprocessor Unit, EMPU)嵌入式微控制器(Microcontroller Unit, MCU)嵌入式DSP 处理器(Embedded Digital Signal Processor, EDSP)嵌入式片上系统(System On Chip)4、什么是嵌入式操作系统?为何要使用嵌入式操作系统?是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。
其次,提高了开发效率,缩短了开发周期。
再次,嵌入式实时操作系统充分发挥了 32 位CPU 的多任务潜力。
第二章1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么?项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。
识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。
提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。
执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展,分析项目偏差,采取必要措施以实现目标。
结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。
2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险?在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。
需求风险;时间风险;资金风险;项目管理风险3、何谓系统规范?制定系统规范的目的是什么?规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。
《ARM嵌入式系统结构与编程》第二章课后答案复习进程
第2章ARM技术与ARM体系结构1.简述ARM处理器内核调试结构原理答:ARM处理器一般都带有嵌入式追踪宏单元ETM(Embedded Trace Macro),它是ARM 公司自己推出的调试工具。
ARM处理器都支持基于JTAG(Joint Test Action Group 联合测试行动小组)的调试方法。
它利用芯片内部的Embedded ICE来控制ARM内核操作,可完成单步调试和断点调试等操作。
当CPU处理单步执行完毕或到达断点处时,就可以在宿主机端查看处理器现场数据,但是它不能在CPU运行过程中对实时数据进行仿真。
ETM解决了上述问题,能够在CPU运行过程中实时扫描处理器的现场信息,并数据送往TAP(Test Access Port)控制器。
上图中分为三条扫描链(图中的粗实线),分别用来监视ARM核,ETM,嵌入式ICE的状态。
1.分析ARM7TDMI-S各字母所代表的含义。
答:ARM7 T D M I – S 中ARM是Advanced RISC Machines的缩写7是系列号;T:支持高密度16位的Thumb指令集;D:支持JTAG片上调试;M:支持用于长乘法操作(64位结果)ARM指令,包含快速乘法器;;I:带有嵌入式追踪宏单元ETM,用来设置断点和观察点的调试硬件;S:可综合版本,意味着处理器内核是以源代码形式提供的。
这种源代码形式又可以编译成一种易于EDA工具使用的形式。
2.ARM处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式,并指出处理器在什么情况下进入相应的模式。
答:ARM技术的设计者将ARM处理器在应用中可能产生的状态进行了分类,并针对同一类型的异常状态设定了一个固定的入口点,当异常产生时,程序会自动跳转到对应异常入口处进行异常服务。
⏹1.用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。
在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器不会自动切换工作模式⏹2.FIQ模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优先级(fast)中断产生时将会进入这种模式。
arm嵌入式系统课后习题部分答案精修订
a r m嵌入式系统课后习题部分答案GE GROUP system office room 【GEIHUA16H-GEIHUA GEIHUA8Q8-一填空题1.1嵌入式系统从大的方面分为(嵌入式系统硬件平台)和(嵌入式软件)两大部分。
1.2驱动层程序一般包括(硬件抽象层HAL)、(板级支持包BSP)和(设备驱动程序)。
1.3嵌入式系统核心是嵌入式处理器,可分为(嵌入式微处理器)、(嵌入式微控制器)、嵌入式DSP处理器和(嵌入式片上系统SoC)4大类。
2.2ARM7TDMI处理器分为(ARM)和(Thumb)两种操作状态。
2.3ARM状态下,SP寄存器指的是(R13)、LR寄存器指的是(R14)、PC寄存器指的是(R15).2.4ARM处理器支持的数据类型中,字节为(8)位、半字为(16)位、字为(32)位。
3.1ARM7TDMI(-S)指令集包括(ARM)指令集和(Thumb)指令集。
3.2LDR指令用于从(存储器)中将一个32位的字数据传送到(目的寄存器)中。
3.3指出下面各条指令的寻址方式。
SUB R0,R1,R2 ;寻址方式:(寄存器寻址)。
SUBS R0,R0,#1 ;寻址方式:(立即寻址)。
MOV R0,R2,LSL#3 ;寻址方式:(寄存器移位寻址)。
SWP R1,R1,[R2] ;寻址方式:(寄存器间接寻址)。
LDR R2,[R3,#0x0C] ;寻址方式:(基址寻址)。
4.3ARM汇编语言源程序中语句一般有(指令)、(伪指令)、(伪操作)和宏指令组成。
6.1对Flash存储器的编程可通过(JTAG仿真/调试器)、( ISP )和(IAP)3重方法来实现。
6.2异常向量表可以来自4个不同的存储器区域,分别是(片内Flash )、(片内SRAM )、( Boot Block )和片外存储器。
6.3LPC2000系列的定时器主要用于3个方面:(对内部事件进行计数的间隔定时器)、(通过捕获输入实现脉宽解调器)、(自由运行的定时器)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1章绪论1.国内嵌入式系统行业对“嵌入式系统”的定义是什么?如何理解?答:见教材1.1节。
2.嵌入式系统是从何时产生的,简述其发展历程。
答:见教材1.1节。
3.当前最常见的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点。
答:见教材1.2.1节的嵌入式Linux和嵌入式实时操作内核UC /OS-I 。
4.举例说明嵌入式设备在工控设备中的应用。
答:见教材1.3节的“工业控制领域”。
5.未来嵌入式技术的发展趋势有哪些?答:见教材1.4节的嵌入式技术的发展趋势。
2章ARM技术与ARM体系结构1.简述ARM处理器内核调试结构原理。
答:对教材1.2节的图2-1进行描述。
2.分析ARM7TDMI-S各字母所代表的含义。
答:参考教材 2.1.2 ARM核版本命名规则说明。
3.ARM处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式,并指出处理器在什么情况下进入相应的模式。
ARM处理器共有7种工作模式:用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。
在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器会自动切换工作模式FIQ模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优(fast)中断产生时将会进入这种模式。
IRQ模式:也称为普通中断模式,:当一个低优先级中断产生时将会进入这种模式。
在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。
通常的中断处理都在IRQ 模式下进行。
SVC模式:称之为管理模式,它是一种操作系统保护模式。
当复位或软中断指令执行时处理器将进入这种模式。
中止模式:当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟存储或存储保护。
未定义指令异常模式:当执行未定义指令时会进入这种模式,主要是用来处理未定义的指令陷阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协处理器的操作上。
系统模式:使用和User模式相同寄存器组的特权模式,用来运行特权级的操作系统任务。
在这7种工作模式中,除了用户模式以外,其他6种处理器模式可以称为特权模式,在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。
在这6种特权模式中,除了系统模式外的其他5种特权模式又称为异常模式4.分析程序状态寄存器(PSR)各位的功能描述,并说明C、Z、N、V在什么情况下进行置位和清零。
PSR的具体格式为V—溢出标志位对于加/减法运算指令,当操作数和运算结果为二进制补码表示的带符号数时,V=1表示符号位溢出,其他的指令通常不影响V位。
例如:两个正数(最高位为0)相加,运算结果为一个负数(最高位为1),则符号位溢出,相应V=1。
C—进位或借位标志位对于加法指令(包括比较指令CMN),结果产生进位,则C=1,表示无符号数运算发生上溢出,其他情况下C =0;在减法指令中(包括比较指令CMP),结果产生借位,则C=0,表示无符号数运算发生下溢出,其他情况下C =1;对于包含移位操作的非加/减法运算指令,C中包含最后一次溢出位的数值;对于其他非加/减法运算指令,C位的值通常不受影响。
Z—结果为0标志位 Z=1表示运算结果是0,Z=0表示运算结果不是零;对于CMP指令,Z=1表示进行比较的两个数大小相等。
N—T符号标志位本位设置成当前指令运算结果的bit[31]的值。
当两个补码表示有符号整数运算时,N=1表示运算的结果为负数,N=0 表示结果为正数或零。
5.简述ARM处理器异常处理和程序返回的过程。
答:ARM在异常产生时会进行以下操作:(1)将引起异常指令的下一条指令地址保存到新的异常模式的LR中,使异常处理程序执行完后能根据LR 中的值正确返回;(2)将CPSR的内容复制到新的异常模式下的SPSR中;(3)根据异常类型将CPSR模式控制位强制设定为发生异常所对应的模式值;(4)强制PC指向相应的异常向量地址。
ARM在异常返回时(1)从 SPSR_<mode>恢复CPSR;(2)从LR_<mode>恢复PC 。
6.ARM处理器字数据的存储格式有哪两种?并指出这两种格式的区别。
答:1)小端存储格式(Little-Endian)在小端存储格式中,对于地址为A的字单元,其中字节单元由低位到高位字节地址顺序为A,A+1,A+2,A+3;对于地址为A的半字单元,其中字节单元由低位到高位字节地址顺序为A,A+1;2)大端存储格式(Big-Endian)在大端存储格式中,对于地址为A的字单元,其中字节单元由高位到低位字节地址顺序为A,A+1,A+2,A+3;对于地址为A的半字单元,其中字节单元由高位到低位字节地址顺序为A,A+1。
7.分析带有存储器访问指令(LDR)的流水线运行情况,并用图示说明其流水线的运行机制。
答:在ARM三级流水线下:对存储器的访问指令LDR就是非单周期指令。
这类指令在“执行”阶段后,还要进行“存储器访问”和“寄存器回写”操作,每一步占用1个时钟周期。
在指令执行时空图中,处于时钟周期T5时,LDR 指令要进行数据的存储器操作(访存),在时钟周期T6 要进行寄存器的回写操作,这两步还要占用执行单元,因此其下1条指令的“执行”就被阻断了,其下数第2 条指令的译码被阻断,要等待LDR 指令操作完毕后,流水线的正常运行才能被恢复。
在图中,处理器用6个时钟周期执行了4条指令,指令平均周期数(CPI) = 1.5 时钟周期。
8.简述ARM9的5级流水线每一级所完成的功能和实现的操作。
答:在ARM9在指令操作上采用5级流水线。
1)取指:从指令Cache中读取指令。
2)译码:对指令进行译码,识别出是对哪个寄存器进行操作并从通用寄存器中读取操作数。
3)执行:进行ALU运算和移位操作,如果是对存储器操作的指令,则在ALU中计算出要访问的存储器地址。
4)存储器访问:如果是对存储器访问的指令,用来实现数据缓冲功能(通过数据Cache);如果不是对存储器访问的指令,本级流水线为一个空的时钟周期。
寄存器回写:将指令运算或操作结果写回到目标寄存器中。
9.什么叫做流水线互锁?应如何来解决,举例说明。
答:在流水线运行过程中可能会出现这种情况:当前指令的执行可能需要前面指令的执行结果,但这时前面的指令没有执行完毕,从而会导致当前指令的执行无法获得合法的操作数,这时就会引起流水线的等待,这种现象在流水线机制里称为互锁。
举例:参见教材第29页:当互锁发生时,硬件会停止这个指令的执行,直到数据准备好为止。
如图所示,LDR指令进行完执行阶段,还需要两个时钟周期来完成存储器访问和寄存器写操作,但这时指令MOV中用到的R9正是LDR中需要进行寄存器加载操作后的寄存器,因此MOV要进行等待,直到LDR指令的寄存器写操作完成。
3章 ARM指令集寻址方式1.在指令编码中,条件码占有几位,最多有多少个条件,各个条件是如何形成的?答:见教材3.1节的描述。
2.指令条件码中,V标志位在什么情况下才能等于1?答:当指令的算术运算发生异常时,V标志位置1。
例如,两个正数相加,其结果为一负数;或者是两个负数相加,其结果为一正数,都会置V标志位。
3.在ARM指令中,什么是合法的立即数?判断下面各立即数是否合法,如果合法则写出在指令中的编码格式(也就是8位常数和4位的移位数)。
0x5430 0x108 0x304 0x501 0xFB10000 0x334000 0x3FC000 0x1FE0000 0x5580000 0x7F800 0x39C000 0x1FE80000答:每个立即数由一个8位的常数进行32位循环右移偶数位得到,其中循环右移的位数由一个4位二进制的两倍表示。
即:<immediate>=immed_进行32位循环右移(2*rotate_4)位符合这一条件的都为合法的立即数。
0x54300B 0101 0100 0011 0000 不合法0x1080B 0001 0000 1000 1111 01000010(30/2)0x3040B 0011 0000 0100 1111 11000001(30/2)0x5010B 0101 0000 0001 不合法0xFB100000B 1111 1011 0001 0000 0000 0000 不合法0x3340000B 0011 0011 0100 0000 0000 0000 1001 11001101(18/2)0x3FC0000B 0011 1111 0000 0000 0000 1010 00111111(18/2)0x1FE00000B 0001 1111 1110 (0000)[4] 不合法0x55800000B 0101 0101 1000 (0000)[4] 不合法0x7F800000B 0111 1000 0001 (0000)[4] 不合法0x39C0000B 0011 1001 1100 0000 0000 0000 1001 11100111(18/2)0x1FE800000B 0001 1111 1110 (0000)[4] 不合法4.分析逻辑右移、算术右移、循环右移、带扩展的循环右移它们间的差别。
答:见教材3.2节的图3-1移位操作功能描述。
5.ARM数据处理指令具体的寻址方式有哪些,如果程序计数器PC作为目标寄存器,会产生什么结果?ARM数据处理指令具体的寻址方式有5种,见教材3.2节的具体说明。
如果程序计数器PC作为目标寄存器,会产生程序发生跳转。
6.在Load/Store指令寻址中,字、无符号字节的Load/Store指令寻址和半字、有符号字节寻址,试分析它们之间的差别。
答:在Load/Store指令寻址中,字、无符号字节的Load/Store指令寻址有三种,具体见教材 3.3.2 节;Load/Store指令寻址中,半字、有符号字节寻址有两种,具体见教材3.3.3节;它们之间的差别:在半字、有符号字节寻址中,没有Addressing_mode中的偏移量通过寄存器移位得到的形式。
7.块拷贝Load/Store指令在实现寄存器组和连续的内存单元中数据传递时,地址的变化方式有哪几种类型,并分析它们的地址变化情况。
答:Load/Store指令在实现寄存器组和连续的内存单元中数据传递时,地址的变化方式(addr_mode)有以下 4 种类型:后增IA (Increment After) :每次数据传送后地址加4;IB (Increment Before) :每次数据传送前地址加 4 ;后减DA (Decrement After) :每次数据传送后地址减4 ;DB (Decrement Before) :每次数据传送前地址减4 。