当前位置:文档之家› ARM嵌入式系统基础教程第二版课后习题答案

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

第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一致;地址0x4000单元的字节:大端:0x12、小端:0x78。

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为相应的异常模式、相应异常处理程序的中断入口向量地址→P C。

第3章 ARM7TDMI(-S)指令系统

1.基础知识

(1)ARM7TDMI(-S)有几种寻址方式?“LDR R1,[R0,#0x08]”属于哪种寻址方式?

答:有8种寻址方式:1.寄存器寻址 2.立即寻址 3.寄存器移位寻址 4.寄存器间接寻址 5.基址寻址 6.多寄存器寻址 7.堆栈寻址 8.相对寻址;“LDR R1,[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加载有符号字节数据

(5)请指出MOV指令与LDR加载指令的区别及用途?

答:MOV指令的源操作数是常数或(带偏移量的)寄存器,用于寄存器之间的数据传送;LDR 指令的源操作数是地址,用于存储器到寄存器的数据传送。

(6)CMP指令是如何执行的?写一程序,判断R1的值是否大于0x30,是则将R1减去0x30。答:CMP指令将Rn-operand2,根据结果更新CPSR中的相应条件标志位。

CMP R1,0x30

SUBHI R1,0x30

(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)

0xFFFF000F (A)

+0x0000FFF1 (B)

——————

(0x00000000)

NZCV=0110

如果两个操作数是有符号数,A是负数,B是正数,和是0,没有溢出,所以V=0。

如果两个操作数是无符号数,和是0,有进位,所以C=1。

(2)

0x7FFFFFFF (A)

+0x02345678 (B)

——————

(0x82345677)

NZCV=1001

如果两个操作数是有符号数,A是正数,B是正数,和是负数,有溢出,所以V=1。

如果两个操作数是无符号数,没有进位,所以C=0。

(3)

67654321 (A)

+ 23110000 (B)

——————

(0x0568F421)

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 位累加和为零(0x00000000~0x0000001C 的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,向量表保存在0x00000000起始处,则MAP〔1:0〕的值应该为( 2 )。

①00 ②01 ③10 ④11

(3)LPC2000系列APM7微控制器ccq重影射的目标起始地址为(),共有()个字。

①0x00000000,8 ②0x40000000,8

③0x00000000,16 ④0x7FFFE000,8

4、外部中断唤醒掉电设计:

以下代码是初始化外部中断0,用它来唤醒掉电的LPC2114,请填空。

PINSEL0=0x00000000;

PINSELI = (PINSEL1&0XFFFFFFFC)|0X01; //设置I/O连接,PO.16设置为EINTO EXTMODE =0X00; //设置EINT0为电平触发模式

EXTPOLAR=0X00; //设置EINT0为低电平触发

EXTWAKE =0X01; //允许外部中断0唤醒掉电的CPU

EXTINT=0x0F; //清除外部中断标识

第四章

程序清单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,,#0xFF00 ;取得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,#0x80

MSR CPSR_C,R0

MOV PC,LR

程序清单4.4禁能IRQ中断

DISABLE_IRQ

MRS R0 CPSR

ORR R0,R0,#0x80

MSR CPSR_C,R0

MOV PC,LR

程序清单4.5堆栈指令初始化

INTSTACK

WOV R0,LR ;保存返回地址

;设置管理模式堆栈

MSR CPSR_C,#0xD3

LDR SP,stacksvc

;设置中断模式堆栈

MSR CPSR_C,#0xD2

LDR SP,Stacklrq

……

程序清单4.6小范围地址的加载

……

ADR R0,DISP_TAB ;加载转换表地址

LDRB R1,[R0,R2] ;使用R2作为参数,进行查表

……

DISP_TAB

DCB 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90

程序清单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,=0x00500500

STR R1,[R0] ;IOSET=0x00500500

……

程序清单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

1.什么是嵌入式系统?其特点有些什么?

答:嵌入式系统是“以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。”

特点:1)是专用的计算机系统,用于特定的任务;

2)资源较少,可以裁减;

3) 功耗低,体积小,集成度高,成本低;

4)使用实时操作系统;

5) 可靠性要求更高,具有系统测试和可靠性评估体系;

6)运行环境差异大

7)大部分程序固化在ROM中;

8) 较长的生命周期;

9)嵌入式微处理器通常包含专用调试电路

2.嵌入式系统的BooTLoader的功能是什么?

答:BootLoader是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程序代码。通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。(对于嵌入式系统来说,有的使用操作系统,也有的不使用操作系统,但在系统启动时都必须运行BootLoader,为系统运行准备好软硬件环境。)

3.目前嵌入式操作系统有哪些?

答:1)µC/OS-II 嵌入式操作系统内核;2)VxWorks嵌入式实时操作系统;3)WinCE 操作系统;4)Linux操作系统;5)Symbian操作系统

4.构造嵌入式开发环境有哪几种形式?

答:1)交叉开发环境;2)软件模拟环境;3)评估电路板

5.嵌入式系统开发的基本流程?

答:1)系统定义与需求分析;

2)系统设计方案的初步确立;

3)初步设计方案性价比评估与方案评审论证;

4)完善初步方案、初步方案实施;

5)软硬件集成测试;

6)系统功能性能测试及可靠性测试。

6.什么是可编程片上系统?

答:用可编程逻辑技术把整个系统放到一块硅片上,称作可编程片上系统SOPC.它是一种特殊的嵌入式系统,首先它是SOC,即由单个芯片实现整个系统的主要逻辑功能,具有一般SOC基本属性;其次,它又具备软硬件在系统可编程的功能,是可编程系统,具有可裁剪、可扩充、可升级等灵活的设计方式。

7.有时要使用Thumb技术的原因

答:(Thumb指令集是把32位的ARM指令集的一个子集重新编码后形成的一个特殊的16位指令集。)在性能和代码大小之间取得平衡,在需要较低的存储代码时采用Thumb指令系统用Thumb指令编写最小代码量的程序(能够很好的解决代码长度的问题),却取得以ARM代码执行的最好性能,可以带来低功耗,小体积,低成本。

8.ARM处理器的工作模式有哪几种?

答:1)正常用户模式(usr);

2)快速中断模式(fiq);

3)普通中断模式(irq);

4)操作系统保护模式(svc)或管理模式;

5)数据访问中止模式(abt);

6)处理未定义指令的未定义模式(und);

7)运行特权级的操作系统任务的系统模式(sys)。

9.寄存器R13,R14,R15的专用功能各是什么?

答:1)寄存器R13保存堆栈指针SP;2)寄存器R14用作子程序链接寄存器,也称为LR ,用以保存返回地址;3)R15(PC)用作程序计数器。

10.寄存器CPSR,SPSR的功能各是什么?

答:1)CPSR包含条件码标志、中断禁止位、当前处理器模式以及其它状态和控制信息。所有处理器模式下都可以访问当前的程序状态寄存器CPSR。

2)在每种异常模式下都有一个对应的物理寄存器——程序状态保存寄存器SPSR。当异常出现时,SPSR用于保存

CPSR的状态,以便异常返回后恢复异常发生时的工作状态。

11.ARM的异常有哪几种,各进入何种工作模式?他们退出各采用什么指令?

答:1)复位(Reset)异常(管理模式);

2)未定义指令(undefined instruction)异常(未定义模式);

3)软件中断(SWI)异常(管理模式);

4)指令预取中止(Prefech Abort)异常(中止模式);

5)数据访问中止(Data Abort)(中止模式);

6)快速中断请求(FIQ)(FIQ模式);

7)外部中断请求(IRQ)(IRQ模式)。

异常返回指令:1)SWI,未定义的返回:MOVS PC,R14;2)IRQ,FIQ,预取中止的返回:SUBS PC,R14,#4;3)数据中止返回并重新存取:SUBS PC,R14,#8 异常中断的优先级:复位(最高优先级)--> 数据异常中止--->FIQ --> IRQ--->预取指异常中止--->SWI---->未定义指令(包括缺协处理器)。

12.什么是小端和大端存储器组织?

答:1)小端存储器组织是较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址(同同小)。2) 大端存储器组织是较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址(正反大)。

13.什么是数据的边界对齐?

答:默认情况下,ADS编译器使用的是数据类型的自然边界对其方式。数据的自然对其方式是指:如果该数据类型是n个字节的,那么该数据类型就按n字节对齐。

14.ARM核现在有哪几种?

答:ARM7、ARM9、ARM9E 、ARM10E,、SecurCore 、ARM11

15.ARM的寻址方式有哪些?各写一条说明。

答:1)立即寻址(1)ADD R0,R0,#1 /*R0←R0+1*/

(2)ADD R0,R0,#0x3f /*R0←R0+0x3f*/;

2)寄存器寻址(ADD R0,R1,R2 /*R0←R1+R2*/);

3)寄存器间接寻址(1)、LDR R0,[R1] /*R0←[R1]*/;

(2)STR R0,[R1] /*[R1]←R0*/;

4)基址加偏址寻址(1)、LDR R0,[R1,#4];R0←[R1+4];

(2)、LDR R0,[R1,#4]!;R0←[R1+4]、R1←R1+4;

(3)、LDR R0,[R1] ,#4;R0←[R1]、R1←R1+4 5)堆栈寻址(1)、STMFD SP! {R1-R7,LR};

(2)、LDMFD SP! {R1-R7,LR};

6)块拷贝寻址(1)、LDMIA R0!, {R2-R9};(2)、STMIA R1,{R2,R9};

7)相对寻址

16.在ARM的立即寻址方式下其立即数如何在指令编码中表示?

答:在ARM数据处理指令中,当参与操作的第二操作数为立即数型时,每个立即数都是采用一个8位的常数循环右移偶数位而间接得到。其中循环右移的位数由一个4位二进制的两倍表示,如果立即数记作,8位常数记作immed_8,4位的循环右移值记作rotate_imm,有效的立即数是由一个8位的立即数循环右移偶数位得到。

因此有效立即数immediate可以表示成:=immed_8循环右移(2×rotate_imm)

17.指令ADR,ADRL、LDR、NOP是如何处理地址值读入到寄存器中的?

答:ADR是将基于PC或者寄存器的地址值读入到寄存器的,ADR伪指令通常被替换成一条ADD指令或SUB指令来实现该ADR指令的功能。而ADRL伪指令与ADR 指令的最大不同之处是,它可以读取更大范围内的地址,而且被编译器替换成2条数据处理指令。LDR将一个32位的立即数或者一个地址值读取到寄存器中。大范围的地址读取。NOP在汇编时将被替换成ARM中的空操作。

18.指令LDR R1,=0xFFF是如何将立即数0xfff读入到R1的?

答:由于需要读取的寄存器的数据超过了MOV及MVN指令可操作的范围,编译器将该常数放在数据缓冲区中,同时用一条基于PC的LDR指令读取该常数。

LDR R1,[PC,offset_to_LPOOL].

............

LTORG ;声明数据缓冲池

LPOOL DCD OxFFF;OxFFF放在数据缓冲池中。

19.如何在c语言程序中内嵌汇编?

答:内嵌的汇编指令包括大部分的ARM指令和Thumb指令,但是不能直接引用C的

变量定义,数据交换必须通过ATPCS进行。嵌入式汇编在形式上表现为独立定义的函数体。

20.如何在汇编语言程序访问C语言的全局变量?

答:汇编程序可以通过地址间接访问在C语言程序中声明的全局变量。通过使用IMPORT关键词引人全局变量,并利用LDR和STR指令根据全局变量的地址可以访问它们。

对于不同类型的变量,需要采用不同选项的LDR和STR指令,如下所示:

1)unsigned char——LDRB/STRB;

2)unsigned short——LDRH/STRH;

3)unsigned int——LDR/STR;

4)char ——LDRSB/STRSB;

5)Short——LDRSH/STRSH

21.在C语言程序如何调用汇编语言程序?

答:为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS。在汇编程序中需要使用EXPORT伪操作来声明,使得本程序可以被其它程序调用。同时,在C 程序调用该汇编程序之前需要在C语言程序中使用extern关键词来声明该汇编程序。

22.汇编语言程序调用C语言程序?

答:为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS。在C程序中不需要使用任何关键字来声明将被汇编语言调用的C程序,但是在汇编程序调用该C程序之前需要在汇编语言程序中使用IMPORT伪操作来声明该C程序。在汇编程序中通过BL指令来调用子程序。

23.在嵌入式C语言程序设计中为提高程序效率的相关设计技巧。

答:1)变量定义;2)参数传递;3)循环条件;4)以空间换时间;5)数学方法解决问题;6)使用位操作;7)嵌入汇编。

24.Linux操作系统的内核、文件系统、编程接口等。P192 P201

答:Linux的内核也有很多种,例如普通的Linux内核、uClinux内核、RTLinux内核等

25.嵌入式Linux操作系统的特点。

答:广泛的硬件支持、内核高效稳定、开放源码,软件丰富、优秀的开发工具、完善的网络通信和文件管理机制,

26.Windows CE操作系统及其特点。

答:Windows CE是一个32位、多任务、多线程的操作系统,其开放式的设计结构适用于各种各样的设备,其主要特点:

一、CE是一种压缩并可升级的软件系统,即使在小内存条件下,也能提供较高的性能。

二、CE具有便于携带的优点,可以运行于多种微处理器上

三、CE拥有很好的电源管理系统,能延长移动设备的电池寿命

四、CE支持标准的通讯系统,可以非常方便地访问Internet,发送和接受电子邮件,浏览万维网。

程序解释

AREA COPYBS,CODE,READONLY ;定义一个代码段

ENTRY ;程序入口

LDR RO,=SRC ;取得原数据表的表头

LDR R1,=DST ;取得目标数据表的表头

MOV R2,#20 ;R4作为循环控制BCOPY MOVS R3,R2,LSR,#3 ;R3=R2 <<3 逻辑右移3位BEQ CWORD ;若Z=1,跳转到CWORD OCOPY LDMIA R0!,{R4-R11} ;加载R0指向的地址上的多字数据,保存到R4~R11中,R0值更新

STMIA R1!,{R4-R11} ;将R4-R11的数据存储到R1指向的地址上,R1值更新

SUBS R3,R3,#1 ;R3=R3-1

BNE OCOPY ;若Z=0,跳转到OCOPY CWORD AND R2,R2,#7 ;R2=R2&7

BEQ STOP ;若Z=1,跳转到STOP WCOPY LDR R3,{R0},#4 ;将R3中的字数据读入以R0为地址的存储器中,并将新地址R0+4写入R1

STR R3,{R1},#4 ;将R3中的字数据写入以R1为地址的存储器中,并将新地址R1+4写入R1

SUBS R2,R2,#1 ;R2=R2-1

BNE WCOPY ;若Z=0,跳转到WCOPY STOP ……

……

在程序中常常需要根据一定的参数选择执行不同的子程序。跳转表中存放的是各子函数的地址,选择不同的子程序的参数是该子程序在跳转表中的偏移量。在本例中R3寄存器中存放的是跳转表的基地址(首选地址,其中存放的是第一个子程序的地址)。R0寄存器的值用于选择不同的子程序;当R0为0时,选择的是子程序DoAdd;当R0为1时,选择的是子程序DoSub。

在ADS编译环境程序如下:

AREA Jump,CODE,READONLY ;设置本程序的名称及属性

NUM EQU 2 ;跳转表中的子程序个数

ENTRY ;程序执行的入口点

Start MOV R0,#0 ;设置3个参数,R0选择调用哪个子程序MOV R1,#3 ;R1为子程序要用的参数

MOV R2,#2 ;R2为子程序要用的参数

BL Func ;调用子程序Func,进行算术运算

Stop MOV R0 ,#0x18 ;本条与下条指令的作用是参数传递LDR R1,=&20026

SWI 0x123456 ;将CPU的控制权交给调试器

Func CMP R0,#NUM ;判断R0是否在有效范围之内

MOVHS PC,LR ;如果超出范围则程序返回

ADR R3,JTable ;读取跳转表的基地址

LDR PC,【R3,R0,LSL #2】;根据参数R0的值跳转到相应的子程序JTable DCD DoAdd ;当参数R0为0时上面的代码将选择DoAdd

DCD DoSub ;当参数R0为1时上面的代码将选择DoSub DoAdd ADD R0,R1,R2 ;子程序DoAdd执行加法操作

MOV PC,LR ;子程序返回

DoSub SUB R0,R1,R2 ;子程序DoSub执行减法操作

MOV PC,LR ;子程序返回

END ;结束汇编

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、何谓系统规范?制定系统规范的目的是什么? 规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。 4、何谓系统规划?为何要做系统规划

ARM嵌入式系统基础教程习题答案 周立功

ARM嵌入式系统基础教程习题答案周立功 arm嵌入式系统基础教程习题答案--周立功 第一章思考与练习 1、列举3个书本中未提到的嵌入式系统的例子。请问:红绿灯掌控,数字空调,机顶盒 2、什么叫做嵌入式系统 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。3、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 嵌入式处理器就是为顺利完成特定的应用领域而设计的特定目的的处理器。嵌入式微处理器(embeddedmicroprocessorunit,empu)嵌入式微控制器(microcontrollerunit,mcu) 嵌入式dsp处理器(embeddeddigitalsignalprocessor,edsp)嵌入式片上系统(systemonchip) 4、什么就是嵌入式操作系统?为何必须采用嵌入式操作系统? 是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。其次,提高了开发效率,缩短了开发周期。再次,嵌入式实时操作系统充分发挥了32位cpu的多任务潜力。第二章 1、嵌入式系统项目研发的生命周期分后哪几个阶段?各自的具体任务就是什么? 项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4个阶段。识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。 明确提出解决方案阶段由各厂商向客户递交标书、了解解决方案。 执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展,分析项目偏差,采取必要措施以实现目标。 完结项目阶段主要包含转交工作成果,协助客户同时实现商务目标;系统更替给保护人员;还清各种款项。 2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险? 在一个项目中,存有许多的因素可以影响至项目展开,因此在项目展开的初期,在客户和研发团队都还未资金投入大量资源之前,风险的评估可以用以预估项目展开可能会遭遇的难题。市场需求风险;时间风险;资金风险;项目管理风险3、何谓系统规范?制订系统规范的目的就是什么?

嵌入式系统基础教程第2版习题解答___

嵌入式系统基础教程第2版习题解答 ___ 本文档旨在介绍《嵌入式系统基础教程第2 版题解答俞建新》一书的目的和内容概述。 该教程的目的是为了帮助读者更好地理解嵌入式系统的基础知识,并提供相关题的解答。___书籍是嵌入式系统领域的专家,他 在本书中结合了自己的经验和理论知识,为读者提供了一本全面而 实用的题解答手册。 本书的内容涵盖了嵌入式系统的基本原理、硬件设计、软件开发、实时操作系统和嵌入式系统应用等方面。每个章节都包含了大 量的题,通过解答这些题,读者可以进一步巩固所学的知识并提升 自己的实践能力。 在本文档中,将逐章介绍每个章节的主要内容和题类型。读者 可以根据自己的需求选择相应的章节进行研究和实践。无论是学生、从业人员还是对嵌入式系统感兴趣的人,都可以从本书中获得丰富 的知识和实用的经验。 希望本文档能够帮助读者更好地掌握嵌入式系统的基础知识, 并在实践中取得进一步的提升和发展。

第一章:嵌入式系统概述 第二章:处理器与内存 第三章:外设接口与设备驱动 第四章:实时操作系统 第五章:嵌入式系统设计 第六章:嵌入式系统应用 以下章节内容继续)。 问题:什么是嵌入式系统? 解答:嵌入式系统是一种特殊的计算机系统,它以特定的功能 为目标,被嵌入到其他设备或系统中,常常包括硬件和软件的组合。嵌入式系统通常具有实时性、可靠性和功耗低的特点,广泛应用于 各个领域,如消费电子、汽车、医疗设备等。 问题:嵌入式系统的组成部分有哪些? 解答:嵌入式系统主要由硬件和软件两部分组成。硬件包括中 央处理器(CPU)、存储器、输入输出接口等,它们负责数据的处

理和交互。软件包括操作系统、应用程序等,它们控制硬件的运行,并实现特定的功能。 问题:嵌入式系统相比通用计算机有哪些特点? 解答:相比通用计算机,嵌入式系统具有以下特点: 实时性要求高:嵌入式系统通常需要对任务的响应时间做出快 速的反应,因此对实时性的要求较高。 可靠性要求高:嵌入式系统常用于一些关键应用领域,如交通、医疗等,因此其稳定性和可靠性要求较高。 功耗低:嵌入式系统通常工作在电源有限的环境下,需要尽量 降低功耗,以延长电池寿命或减少耗电量。 多样性:嵌入式系统应用广泛,不同领域的需求有所不同,无 论是硬件还是软件都需要具备一定的灵活性和可扩展性。 问题:举例说明嵌入式系统的应用领域。 解答:嵌入式系统广泛应用于各个领域,常见的应用领域包括 但不限于以下几个方面:

ARM嵌入式系统开发与应用课后题答案与习题

课后题答案:第一章 1.写出下列英文缩写的英文原文及中文含义。 RAM随机存储器 DRAM动态随机存储器 ROM只读存储器 PROM可编程只读存储器 EPROM可插除可编程只读存储器 CANCAN总线 RTOS实时操作系统 SOPC片上可编程系统 ICE硬件调试器 FI快速终端请求 EEPROM电可插除可编程只读存储器 API应用程序接 DMA直接内存存取 RISC精简指令集计算机 SPI串行万维指令 MMU存储管理单元 UART异步接受发送装置 ARM先进RISC存储器 SWI软件终端指令 2、什么是嵌入式系统? P3 嵌入式系统是用于检测、控制、辅助、操作机械设备的装置。以应用为中心,一计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗等严格要求的专用计算机系统。 3、是比较嵌入式系统与通用PC的区别。P3 (1)嵌入式系统是专用的计算机系统,而PC是通用的计算机系统。 (2)技术要求不同,通用PC追求高速、海量的数据运算;嵌入式要求对象体系的智能化控制。(3)发展方向不同,PC追求总线速度的不断提升,存储容量不断扩大;嵌入式追求特定对象系统的智能性,嵌入式,专用性。 4、嵌入式体统有哪些部分组成?简单说明各部分的功能与作用 (1)硬件层是整个核心控制模块(由嵌入式微处理器、存储系统、通信模块、人机接口、其他I/O 接口以及电源组成),嵌入式系统的硬件层以嵌入式微处理器为核心,在嵌入式微处理器基础上增加电源电路、时钟电路、和存储器电路(RAM和ROM等),这就构成了一个嵌入式核心控制模块,操作系统和应用程序都可以固化在ROM中。 (2)中间层把系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关。一般包括硬件抽象层(Hardware Abstract Layer,HAL)和板级支持包(Board Support Package,BSP)。(3)软件层由实时操作系统(Real Time Operating System,RTOS)、文件系统、图形用户接口(Graphical User Interfaces,GUI)、网络组件组成。 (4)功能层是面向被控对象和用户的,当需要用户操作是往往需要提供一个友好的人机界面。 5、什么是可编程片上系统?在技术上它有哪些特点? 用可编程逻辑技术把整个系统放到一块硅片上,称作可编程片上系统SOPC,特点如下:实现复杂系统功能的VLSI;采用超深亚微米工艺技术;使用一个以上的嵌入式处理器/DSP;外部可对芯片进行编程;主要采用第三方IP进行设计;足够的片上可编程逻辑资源;具有处理器调试接口和FPGA编程接口;可能包含部分可编程模拟电路;单芯片,低功耗,微封装;微处理器/dsp以ip核的形式方便的嵌入在FPGA中。 6、什么是嵌入式外围设备?简要说明嵌入式外围设备是如何分类的。 嵌入式外围设备,是指在一个嵌入式系统硬件构成中,除了核心控制部件-----嵌入式微处理器/DSP 以外的各种存储器,输入/输出接口、人机接口的显示器/键盘、串行通信接口等。根据外围设备的功能可分为以下五类:存储器类型;通信接口;输入/输出设备;设备扩展接口;电源及辅助设备。 7、.简述嵌入式系统软件的组成和功能? 组成:应用层,OS层,BSP层 11、什么是软硬件协同设计?他最大的特点是什么?嵌入式系统开发为什么可以采用这种方法进行。嵌入式是系统设计时使用一组物理硬件和软件来完成所需功能的过程。系统是指任何由硬件,软件或者两者的结合来构成的功能设备。由于嵌入式系统是一个专用系统,所以在嵌入式产品的设计过程中,软件设计和硬件设计是紧密结合的、相互协调的;特点是:在设计时从系统功能的是先考虑,把实现时的软硬件同时考虑进去,硬件设计包括芯片级“功能定制”设计。这样既可最大限度的利用有效资源,缩短开发周期,又能取得更好的设计效果。 第二章 1、CISC与RISC分别指什么?说明他们各自有什么特点,应用领域和发展趋势如何? 复杂指令集CPU内部为将较复杂的指令译码,也就是指令较长,分成几个微指令去执行,正是如此开发程序比较容易(指令多的缘故),但是由于指令复杂,执行工作效率较差,处理数据速度较慢,PC 中 Pentium的结构都为CISC CPU。 RISC是精简指令集CPU,指令位数较短,内部还有快速处理指令的电路,使得指令的译码与数据的处理较快,所以执行效率比CISC高,不过,必须经过编译程序的处理,才能发挥它的效率,我所知道的IBM的 Power PC为RISC CPU的结构,CISCO 的CPU也是RISC的结构。 RISC与CISC的主要特征对比 比较内容 CISC RISC 指令系统复杂,庞大简单,精简 指令数目一般大于200 一般小于100 指令格式一般大于4 一般小于4 寻址方式一般大于4 一般小于4 指令字长不固定等长 可访存指令不加限制只有LOAD/STORE指令 各种指令使用频率相差很大相差不大

嵌入式系统课后习题部分答案1

第一章 1-1.简述嵌入式系统的定义。 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 1-2.简述嵌入式系统的组成。 从体系结构上看,嵌入式系统主要由嵌入式处理器、支撑硬件和嵌入式软件组成。其 中嵌入式处理器通常是单片机或微控制器,支撑硬件主要包括存储介质、通信部件和 显示部件等,嵌入式软件则包括支撑硬件的驱动程序、操作系统、支撑软件及应用中 间件等。 嵌入式系统的组成部分是嵌入式系统硬件平台、嵌入式操作系统和嵌入式系统应用。 嵌入式系统硬件平台为各种嵌入式器件、设备(如ARM 、PowerPC、Xscale、MIPS等); 嵌入式操作系统是指在嵌入式Linux、uCLinux、WinCE等。 1-3.ARM7处理器使用的是(ARMv4)指令集。ARM7内核采用冯·诺依曼体系结构, 数据和指令使用同一条总线。内核有一条3级流水线,执行ARMv4指令集。 1.4.Cortex-M3主要应用在哪些方向? 主要用在平衡ARM的产品的性能和功耗,提高ARM的性能,降低其功耗 1.5.简述StrongARM处理器和ARM处理器的关系 StrongARM是第一个包含5级流水线的高性能ARM处理器,但它不支持Thumb指令集1-6.ARM9采用的是(5)级流水线设计。存储器系统根据哈佛体系结构(程序和数据空间独立的体系结构)重新设计,区分数据总线和指令总线。 1.7.简述ARM9和ARM9E的不同点 硬件处理器不一样 指令集不一样 1.8.ARM11采用的是什么架构的指令 ARMv6 嵌入式操作系统的特点 (1)体积小 (2)实时性 (3)特殊的开发调试环境 SecureCore处理器系列的特点 (1)支持ARM指令集和Thumb指令集,以提高代码密度和系统性能 (2)采用软内核技术一提供最大限度的灵活性,可以防止外部对其进行扫描探测(3)提供了安全特性,可以抵制攻击 (4)提供面向智能卡和低成本的存储保护单元MPU (5)可以集成用户自己的安全特性和其它的协处理器 第二章 2-1.简述ARM可以工作在几种模式。 ARM处理器共有7种工作模式:用户模式(User)、快速终端模式(FIQ)、外部中断模式(IRQ)、

arm嵌入式系统试题及标准答案

arm嵌入式系统试题及标准答案 一、选择题 1. ARM的英文全称为()。 A. Advanced RISC Machines B. Advanced Reduced Instruction Set Computing C. Advanced Risk Instruction Set Machines D. Advanced Reduced Innovative System Machines 正确答案:A 2. ARM的发展平台主要有()。 A. Cortex B. Keil MDK C. Mbed D. All of the above 正确答案:D 3. ARM架构中,RISC指的是()。 A. Reduced Instructions for Simple Computing B. Reduced Instruction Set Computing C. Reduced Instructions for Speedy Computing D. Reduced Innovative System Computing 正确答案:B 4. ARM的家族庞大,主要分为()。 A. ARMv1-ARMv5

B. ARMv6-ARMv7 C. ARMv8-ARMv12 D. ARMv12-ARMv16 正确答案:B 5. 在ARM处理器中,Cortex-A系列主要针对()。 A. 浮点运算 B. 实时性 C. 安全性 D. 性能 正确答案:D 二、填空题 1. ARM架构的特点之一是指令集精简,采用()指令集。正确答案:RISC(Reduced Instruction Set Computing) 2. ARM处理器的体积小、功耗低的特点使得其在()领域得到广泛应用。 正确答案:嵌入式系统 3. ARM主要设计并销售()和相关的软件开发工具、IP核等。 正确答案:处理器 4. Keil MDK是由ARM公司开发的()。

ARM嵌入式系统试题及答案解析

ARM嵌入式系统基础教程 -—-—期中开卷 专业:软件1002班姓名:王世伟学号:04103060(24) 一、嵌入式系统基本概念 1、什么是嵌入式系统?有何特点? 答:所谓嵌入式,实际上是“嵌入式计算机系统",的简称,它是相对于通用计算机 系统而言,注重于发展独立的单芯片技术.嵌入式系统是“控制、监视或者辅助装 置、机器和设备运行的装置”。 特点:(1)嵌入式系统是将先进的计算机技术,半导体技术以及电子技术与各行业的具体应用相结合的产物,这一点就决定了他必然是一个技术密集,资金密集,高度分散,不断创新的知识集成系统。(2)系统内核小(3)专用性强(4)系统精 简(5)系统软件要求(6)嵌入式软件开发要走向标准化,需要使用多任务的 操作系统.(7)嵌入式系统本身并不具备在其上进行进一步开发的能力. 2、举例在你的身边常见到的嵌入式系统产品,谈一谈你对“嵌入式系统"的初步理解。 答:产品有:洗衣机,空调,手机. 嵌入式系统就是内置小计算机系,可以对机器进行智能控制的系统。 3、嵌入式系统的3个基本特点? 答:(1)专用性(2)嵌入型(3)计算机系统 4、什么是嵌入式处理器,嵌入式处理器可以分为几大类? 答:嵌入式处理机是嵌入式的核心,是控制,辅助系统运行的硬件单元。 分类:四大类(1)嵌入式微处理器(2)嵌入式微控制器(3)嵌入式DSP处理器(4)SoC片上系统 5、广泛使用的三种类型的操作系统? 答:多道批处理操作系统、分时操作系统以及实时操作系统。 6、列举常见的4种嵌入式操作系统?说明你对嵌入式操作系统的基本认识,嵌入式操 作系统在嵌入式系统开发中的必要性。 答:嵌入式Linux、Win CE、VxWorks、μC/OS-II 没有操作系统的计算机效率十分底下,把操作系统嵌入到计算机中,可以提高 系统的可靠性,开发效率,缩短了开发周期。 二、ARM7体系结构 1、ARM是什么样的公司?

嵌入式系统课后习题及答案

嵌入式系统课后习题及答案LT

]M9把3级流水线中的执行阶段的操作进行再分配,即把执行阶段中的“寄存器读”插在译码阶段中完成,把“寄存器写”安排在另一级(即第5 级)完成,同时,在该级之前,再安排一级(存储访问)。 3.ARM处理器支持的数据类型有哪些? 答:(1)Byte 字节,8位;(2)Halfword 半字,16位;(3)Word 字,32位; 4.写出ARM使用的各种工作模式和工作状态。 答:(1)工作模式: 详见下表: (2)工作状态:a.ARM:32位,这种状态下执行字对齐的ARM指令; b.Thumb:16位,这种状态下执行半字对齐的Thumb指令。 5.ARM处理器总共有多少个寄存器?其中哪个用做PC?哪个用做LR? 答:(1)ARM处理器总共有37个寄存器:31个通用寄存器,6个状态寄存器。

(2)R15用做程序计数器PC,R14用做子程序链接寄存器LR。 6.假设R0=0x12345678,使用将R0存储到0x4000的指令存到存储器中,若存储器为大端组织,写出从存储器0x4000处加载一个字节到R2的指令执行后R2的值。 答:由于0x4000是大端组织,所以R0存进后,0x4000中有数0x56781234,从0x4000加载一个字节到R2后(由地位到高位加载),R2的值为0x34。 7.ARM920T处理器加入了哪两个协处理器?各自的主要功能是什么? 答:ARM920T处理器加入了两个协处理器: (1)CP14,允许软件访问调试通信通道; (2)系统控制协处理器CP15,提供了一些附加寄存器用于配置和控制 Caches、MMU、保护系统、时钟模式和其他系统选项。 8.ARM920T支持哪些时钟模式? 答:快速总线模式、同步模式、异步模式。 9.什么是写直达和写回Cache操作,各有何特点? 答:(1)写直达:当CPU对Cache写命中时,Cache与主存同时发生写修改。优点:一致性好;缺点:耗时。 (2)写回:当CPU对Cache写命中时,只修改Cache的内容而不立即写入主存,只当此执行被换出时才写回主存。优点:减少访问主 存次数,提高效率。缺点:一致性差点。 10.ARM为何集成了32位的ARM指令集和16位的Thumb指令集?(即它的好处) 答:可提供长的转移范围、强大的算术运算能力和大的寻址空间。 11.什么是big-endian和little-endian,编写一段程序测试你所用的计算机体 系结构采用哪种存储机制? 答:(1)大端存储系统(big-endian):低地址存放高字节,高地址存放低字节。小端存储系统(little-endian): 低地址存放低字节,高地 址存放高字节。 (2)int x=0x12345678; int *p=&x; if(*(char*)p=0x78) …little endian else …big endian 第4章 ARM系统硬件设计基础 1.一个典型的可执行映像由哪几部分组成? 答: 2.汇编和C语言的相互调用方法。 答:(1)汇编程序调用C程序的方法为:首先在汇编程序中使用IMPORT伪指令事先声明将要调用的C语言函数;然后通过BL指令来调用C函数。 (2)C程序调用汇编子程序的方法为:首先在汇编程序中使用EXPORT伪指

嵌入式系统开发基础—基于ARM微处理器和Linux操作系统的课后答案(全面完整版)

嵌入式系统开发基础—基于ARM微处理器和Linux操作系统的课后答案(全面完整版) (可以直接使用,可编辑全面完整版资料,欢迎下载)

1-1 什么是嵌入式系统?嵌入式系统和普通计算机系统的区别是什么?举例说明。 答: 问题一:嵌入式系统是以应用为中心,以计算机为基础,其软硬件可裁剪配置,对功能、可靠性、成本、体积、功耗有严格约束的一种专用计算机系统。 1-2 简述嵌入式系统的构成 1-3 答:R13:也记作SP,在ARM指令集中虽然没有强制,但是通常用于堆栈指针SP;在Thumb 指令集中强制其作为堆栈指针。 R14:也记作程序连接寄存器LR(Link Register),用于保存子程序调用或异常中断处理返回时程序的返回地址。 R15:也记作程序计数器PC,用于标示下一条将要执行的指令地址。 CPSR:程序状态寄存器,包含条件标识位、中断标识位、当前处理器模式等状态和控制位。 SPSR:备份的程序状态寄存器。在异常中断处理过程中,用于保存被中断处理程序的执行现场和处理器状态。 1-4 答:(1)复位异常中断:当系统上电、复位、软件复位时产生该类型中断。 (2)未定义指令异常中断:当ARM处理器或系统中的协处理器认为当前指令未定义时,产生该中断。通常利用该中断模拟浮点向量运算。 (3)软件中断:可用于用户模式下特权操作的调用,既可以是系统功能,也可以是用户自定义的功能。

(4)指令预取中止异常中断:如果处理器预取的指令地址不存在,或者该地址不允许当前指令访问,产生该类型的中断。 (5)数据访问中止异常中断:如果数据访问的目标地址不存在,或者该地址不允许当前指令访问,则产生该中断。 (6)外部中断:当处理器的外部中断请求引脚有效,而且CPSR的I控制位被清除时,产生该类型的中断 (7)快速外部中断:当处理器的快速中断请求引脚有效,而且CPSR的F控制位被清除时,产生该中断。 1-5 答:(1)ADR R0, TABLE (2) ADR R1, DA TA LDR R0, [R1] (3) LDR R0, =DA TA (4) TABLE EQU 800 MOV R0, #TABLE (5) TABLE SPACE 20 1-6 答: R0=DATA1这组数据在存储器中所存放的起始地址,由编译器分配; R1=0x0C0D0E0F; R2=0xF; R3=0x8 ; [0x8 ]=R1 1-7 答: AREA SWITCH, CODE, READONL Y ENTRY AND R2, R0, 0x3 ;R2← R0的低两位 MOV R2, R2, LSL #30 ;将低两位移动到高两位 BIC R0, R0, 0x3 ;将R0的低两位清0 AND R3, R1, 0xC0000000 ;R3←R1的高两位 MOV R3, R3, LSR #30 ;将高两位移动到低两位 BIC R1, R1, 0xC0000000 ;将R1的高两位清0 ORR R0, R0,R3 ;R1的高两位写入到R0的低两位 ORR R1, R1, R2 ;R0的低两位写入到R1的高两位 END 1-8 答: // main.c Include “stdio.h” extern int sum (int num[], int n); main(){ int array[10]={20, 30, 23, 5,15,64,6,15,72,73 };

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. MPU B. MCU C. WDT D.SPI 1.2ROM类存储器包括(ABD ) A. NOR Flash B. EPROM C. SRAM D. PROM 1.3不属于ARM的系列是(D ) A. MCS-96 B. 80C51 C. LPC2000 D.80X86 2.2ARM7处理器系列采用(A )级流水线。 A. 3 B. 5 C. 6 D. 8 2.3下面ARM处理器模式中属于特权模式的有(BCD ) A. 用户模式 B. 中断模式 C. 系统模式 D. 管理模式 3.2LDM(或STM)指令允许一条指令最多传送(C )个寄存器。 A. 4 B. 8 C. 16 D. 24 3.3BL指令限制在当前指令的(B )地址范围。 A. ±16MB B. ±32MB C. ±64MB D. ±128MB 4.2ARM汇编程序所支持的变量有(ABC ) A. 数字变量 B. 逻辑变量 C. 字符变量 D. 字符串变量 4.3汇编语言程序用到C语言程序变量的情况实质上是一个引用不同文件定义的变量问题。解决这个问题的办法就是使用关键字( B )。 A. ATPCS B. IMPORT C. EXPORT D. CODE32 6.1一个异常向量表实际占用了(C )个字的存储单元。 A. 4 B. 8 C. 16 D. 64

ARM复习课后题答案(完整版)..

1.国内嵌入式系统行业对嵌入式系统的定义是什么?如何理解 答:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 从这个定义看以看出嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统要求进行合理的裁剪利用。因此有人把嵌入式系统比作是一个针对特定的应用而量身定做的专用计算机系统。 2.当前最常见的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点 答:嵌入式linux和嵌入式实时操作系统uc/os-II Linux: (1)linux是源码开放的,每一个技术细节都是透明的,易于裁剪定制。 (2)目前嵌入式linux已经在多种嵌入式处理器芯片移植成功,有大量且不断增加的开发工具,这些工具为嵌入式系统开发提供了良好的开发环境。 (3)Linux内核小、功能强大、运作稳定、效率高。 Ucos: (1)源代码公开 (2)可移植性。 (3)可固化 (4)可裁剪 (5)占先式 (6)多任务 (7)可确定性。 (8)系统服务 第2章ARM技术与ARM体系结构 3.arm处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式,并指出处理 器在什么情况下进入相应的模式。 答:ARM 处理器共有7 种工作模式: 用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式 下执行。在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作 模式,如果有异常发生,处理器会自动切换工作模式 FIQ 模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优 先级(fast)中断产生时将会进入这种模式。 IRQ 模式:也称为普通中断模式,:当一个低优先级中断产生时将会进入这种模 式。在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。通常的中 断处理都在IRQ 模式下进行。 SVC 模式:称之为管理模式,它是一种操作系统保护模式。当复位或软中断指 令执行时处理器将进入这种模式。 中止模式:当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟 存储或存储保护。 未定义指令异常模式:当执行未定义指令时会进入这种模式,主要是用来处理 未定义的指令陷阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协 处理器的操作上。 系统模式:使用和User 模式相同寄存器组的特权模式,用来运行特权级的操作

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、何谓系统规范?拟订系统规范的目的是什么? 规格拟订阶段的目的在于将客户的需求,由模糊的描绘,变换成存心义的量化数据。 4、何谓系统规划?为何要做系统规划 系统规划就是制定一个开发进度,使项目在合理的进度范围中渐渐建构达成。其目地是让客 户能够进一步地掌握系统开发的进度,并确立检查点,以让两方确立项目能否如预期中的进度 达成。 5、为何在项目结束前需要进行项目议论? 项目的议论一个项目进行的反应体制。经过这一个程序,项目团队的经验才能够被记录 下来,也就是说,这是一个撰写项目历史的过程。 第三章

arm9嵌入式系统设计基础教程答案

arm9嵌入式系统设计基础教程答案 【篇一:arm嵌入式系统课后习题(部分)答案】 式系统从大的方面分为(嵌入式系统硬件平台)和(嵌入式软件) 两大部分。 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 ;寻址方式:(寄存器寻址)。 subsr0,r0,#1 ;寻址方式:(立即寻址)。 movr0,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 )

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

第1xx 嵌入式系统概述 (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: 4。 (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一致;地址0x4000单元的字节:大端:0 2、小端:0 8。 3.处理器异常 请描述一下ARM7TDMI产生异常的条件是什么?各种异常会使处理器进入哪种模式?进入异常时内核有何操作?各种异常的返回指令又是什么?

嵌入式系统第二版第一至第五章课后答案

第一章 思索及练习 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, 何谓系统标准?制定系统标准的目的是什么? 规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。4, 何谓系统规划?为何要做系统规划 系统规划就是拟定一个开发进程,使工程在合理的进程范围中慢慢建构完成。其目地是让客户可以进一步地驾驭系统开发的进程,并确定检查点,以让双方确定工程是否如预期中的进度完成。 5, 为什么在工程完毕前须要进展工程探讨? 工程的探讨一个工程进展的反应机制。通过这一个程序,工程团队的阅历才可以被记录下来,也就是说,这是一个撰写工程历史的过程。 第三章

相关主题
文本预览
相关文档 最新文档