嵌入式思考题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.什么是嵌入式系统?
•第一种,根据IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants)。

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

2.与通用型计算机相比,嵌入式系统有哪些特点?
⏹通常是面向特定应用的;
⏹空间和各种资源相对不足,必须高效率地设计,量体裁衣、去除
冗余;
⏹产品升级换代和具体产品同步,具有较长的生命周期;
⏹软件一般都固化在存储器芯片或单片机本身;
⏹不具备自举开发能力,必须有一套开发工具和环境才能进行开发
3.根据嵌入式系统的复杂程度,嵌入式系统可分为哪四类?
➢单个微处理器。

常用的嵌入式处理器如Philips的89LPCxxx系列,Motorola的MC68HC05、08系列等。

➢嵌入式处理器可扩展的系统。

过程控制、信号放大器、位置传感器及阀门传动器。

➢复杂的嵌入式系统。

开关装置、控制器、电话交换机、电梯、数据采集系统、医药监视系统、诊断及实时控制系统等。

➢在制造或过程控制中使用的计算机系统。

自动仓储系统和自动发货系统
4.举例介绍嵌入式微处理器有哪几类?
一、嵌入式微处理器(Embedded Microprocessor Unit, EMPU)
嵌入式处理器目前主要有Aml86/88、386EX、SC-400、Power PC、68000、MIPS、ARM系列等。

二、嵌入式微控制器(Microcontroller Unit, MCU)
嵌入式微控制器目前的品种和数量最多,比较有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。

三、嵌入式DSP处理器(Embedded Digital Signal Processor,
EDSP)
嵌入式DSP处理器比较有代表性的产品是Texas Instruments 的TMS320系列和Motorola 摩托罗拉的DSP56000 系列。

四、嵌入式片上系统(System On Chip)
5.从硬件系统来看,嵌入式系统由哪几部分组成?画出简图。

•嵌入式核心芯片,EMPU——嵌入式微处理器、EMCU——嵌入式微控制器、EDSP——嵌入式数字信号处理器、ESoC——嵌入式片上系统。

•用以保存固件的ROM(非挥发性只读存储器)。

•用以保存程序数据的RAM(挥发性的随机访问存储器)。

•连接微控制器和开关、按钮、传感器、模/数转化器、控制器、LED(发光二极管)、显示器的I/O端口。

6.嵌入式微处理器和嵌入式微控制器分别由哪些部件组成,两者有何区别。

嵌入式微处理器=cpu+硬件接口(存储器接口,键盘接口等)+辅助电路(时钟、A/D、D/A、调试电路等)
嵌入式微控制器=cpu+存储器+I/o接口+辅助电路(时钟、A/D、D/A 等)
嵌入式微处理器与嵌入式微控制器的区别:后者芯片内部包含了ROM 和RAM。

7.嵌入式操作系统通常含有几层,主要实现何功能。

嵌入式操作系统通常包括:
1、驱动层:硬件相关的底层驱动软件和设备驱动接口;如:LCD 、触摸屏的驱动及接口。

2、操作系统层:系统内核(基本模块),扩展模块(可裁剪)。

3、应用层:应用程序接口。

8.ARM处理器工作模式有几种?各种工作模式下分别有什么特点?(P64)
9.ARM处理器总共有多少个寄存器,这些寄存器按其在用户编程中的功能是如何划分的?这些寄存器在使用中各有何特殊之处?
ARM处理器总共有37个寄存器,各寄存器均为32位。

31个通用寄存器,包括程序计数器PC;
6个状态寄存器。

这些寄存器按其在用户编程中的功能可划分为:通用寄存器和状态寄存器。

根据ARM处理器不同工作模式,可将全部寄存器分成7组;各工
作模式拥有属于自己的寄存器组,也只能访问自己的寄存器组。

10.试述ARM处理器对异常中断的响应过程。

当一个异常出现以后,ARM微处理器执行完当前指令后(复位异常除外)会执行以下几步操作:
1.将下一条指令的地址存入相应连接寄存器LR(R14_XXX),以便
程序在处理异常返回时能从正确的位置重新开始执行。

2.将CPSR复制到相应的SPSR中。

3.根据异常类型,强制设置CPSR的运行模式位。

4.强制PC从相关的异常向量地址取一条指令执行,从而跳转到相
应的异常处理程序处。

11.如何从异常中断处理程序中返回?需要注意哪些问题?
异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:
1.将连接寄存器LR(R14_XXX)的值减去相应的偏移量后送到PC
中。

2.将SPSR复制回CPSR中,恢复原处理器工作模式。

3.若在进入异常处理时设置了中断禁止位,要在此清除。

12、简述处理器启动时的模式转换过程。

13.ARM 存储器的存储周期有几种类型,对应于cache 访问和存储器访问是何存储周期?
➢ 空闲周期 I 周期----内部周期,不执行存储器访问;可广播下一次访问的地址以便开始译码,与S 周期配合实现总线上的突发传送。

➢ 顺序周期 S 周期----顺序周期:多用于实现总线上的突发传送,第一个周期必须是一个内部周期。

(cache 传送)
➢ 协处理器寄存器传送周期 C 周期----协处理器寄存器传递周期:通过数据总线向或从协处理器传送数据;传送期间,存储系统不允许驱动数据总线。

➢ 非顺序周期 N 周期----非顺序周期:最简单的总线周期,存储控制器必须启动存储器访问来满足这个请求;该方式存储系统常
复位后的缺
省模式 主要完成各模式的堆栈
设置,注意
不要进入用
户模式 一般为用户模式 User
需要长的访问时间。

(存储器读写)
cache访问:I周期、S周期
存储器访问:N周期
14.何谓cache?简述cache的工作原理。

(P51)
15.何谓写通cache和写回cache,两者有何区别?
❖写回法是指CPU在执行写操作时,被写的数据只写入cache,不写入主存。

仅当需要替换时,才把已经修改的cache块写回到主存中。

采用写回法进行数据更新的cache称为写回cache。

❖写通法是指CPU在执行写操作时,必须把数据同时写入cache 和主存。

采用写通法进行数据更新的cache称为写通cache。

16.arm的MMU主要实现何功能。

➢虚拟存储空间到物理存储空间的映射。

在ARM中采用了页式虚拟存储管理,通过两级页表实现虚拟地址到物理地址的映射。

➢存储器访问权限的控制。

➢设置虚拟存储空间的缓冲特性。

Cache/write buffer
17.协处理器cp15主要实现何功能。

用于处理、控制ARM的特殊性能:
❖片上存储器管理单元(MMU)
❖指令、数据缓存
❖写缓冲器
18、简述MMU使能时存储访问过程。

(参考:P55)
芯片设置为MMU使能(设置cp15寄存器) :
(1)若cache使能,根据arm输出的虚拟地址在CACHE中搜索;若cache 命中, arm处理器与cache交换数据。

若cache禁止或cache未命中,首先访问TLB,参见(2)。

(2)根据arm输出的虚拟地址在TLB中搜索,若找到,将其转换为物理地址,访问主存并把该块数据读取到cache(使能时)中。

19、ARM支持的物理页有几种类型,其容量为何值?
ARM支持的存储块:
1. 段(section):由1MB 的存储器块构成
2.大页(large page):由64KB 的存储器块构成
3.小页(small page):由4KB 的存储器块构成
4.微页(tiny page):由1KB 的存储器块构成
20、简述采用单步页表搜索过程。

21、简述使用粗页表和4k页的二级虚实地址转换过程。

22.编写1+2+3+……+100的汇编程序。

AREA Block, CODE, READONLY
ENTRY
start
mov r0,#0;
mov r1,#1
aga add r0,r0,r1
add r1,r1,#1
cmp r1,#101
bne aga
MOV r0, #0x18 ; angel_SWIreason_ReportException
LDR r1, =0x20026 ; ADP_Stopped_ApplicationExit
SWI 0x123456
END
23.如何实现128位数的减法,举例说明。

AREA Block, CODE, READONLY
ENTRY
start
ldr r1,=num1
ldr r2,=num2
ldr r3,=result
ldr r4,[r1],#4
ldr r5,[r2],#4
subs r0,r4,r5
str r0,[r3],#4
ldr r4,[r1],#4
ldr r5,[r2],#4
sbcs r0,r4,r5
str r0,[r3],#4
ldr r4,[r1],#4
ldr r5,[r2],#4
sbcs r0,r4,r5
str r0,[r3],#4
ldr r4,[r1],#4
ldr r5,[r2],#4
sbcs r0,r4,r5
str r0,[r3],#4
MOV r0, #0x18 ; angel_SWIreason_ReportException
LDR r1, =0x20026 ; ADP_Stopped_ApplicationExit
SWI 0x123456
AREA BlockData, DATA, READWRITE
Num1 DCD 55,66,77,88
Num2 DCD 11,22,33,44
result DCD 0,0,0,0
END
24.将存储器中起始地址M1处的4个字数据,移动到地址M2处。

(LDM/STM实现)
ldr r1,=m1
ldr r2,=m2
ldmia r1!,{r3-r6}
stmia r2!,{r3-r6}
25.用跳转指令实现两段程序间,来回切换。

(B指令实现)
26.ARM指令的寻址方式有几种?试分别叙述其各自的特点并举例说明。

27.假设R0的内容为0x8000,寄存器R1、R2内容分别为0x01与0x10,存储器内容为空。

执行下述指令后,说明PC如何变化?存储器及寄存器的内容如何变化?
STMIB R0!,{R1,R2}
LDMIA R0!,{R1,R2}
28.在ADS环境下,利用全局变量和局部变量声明伪操作及其赋值伪操作,分别举例来定义算术变量、逻辑变量和串变量并为其赋值。

29.读懂下面一段程序,子程序dststr执行过程中寄存器R0、R1、R2中的内容如何变化?试分析并给出子程序执行后的结果。

AREA StrCopy, CODE, READONLY
ENTRY ; mark the first instruction to call start
LDR r1, =srcstr ; pointer to first string LDR r0, =dststr ; pointer to second string BL strcopy ; call subroutine to do copy stop
MOV r0, #0x18
LDR r1, =0x20026
SWI 0x123456
strcopy
LDRB r2, [r1],#1
STRB r2, [r0],#1
CMP r2, #0
BNE strcopy
MOV pc,lr ; Return
AREA Strings, DATA, READWRITE
srcstr DCB "First string - source",0
dststr DCB "Second string - destination",0
END
30.读下面一段程序,试分析其功能。

EORS R4,R0,R1
BPL K
MOV R3,0
B END0
K MVN R0,R0
MOV R3,R0
END0 ……
功能:判R0和R1中的数据是否同号,若是,则把R0中的数据取反并送到R3中,否则O→R3。

31.读下面一段程序,试分析其功能。

LDR R0,X+2 | BGTL1
LDR R1,X | CMP R1,R3
LDR R2,Y+2 | BLS L2 LDR R3,Y | L1 MOV R4,1
ADDS R1,R1,R1 | B EXIT ADC R0,R0,R0 ;求2P(R0:R1) | L2 MOV R4,2 CMP R0,R2 |EXIT SWI 0x123456;结束程序
BLT L2 |
功能:若2x>y 则R4=1;若2x<=y 则R4=2
32.编写一段c语言与汇编语言的混合编程代码,在C语言程序中调用汇编语言代码,完成字符中STRl与字符串STR2内容的互换。

(P129) 33.已知数据段中的整数数组x和y,试以冒泡算法将x中的数按从大
至小的顺序排序,并存入y数组。

AREA BlockData, DATA, READWRITE
x DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4
y DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
34.有100个有符号的字数据,存放在内存BUFF中,编完整的程序(包括代码段、数据段)找出最大值、最小值分别放入内存单元MAX、MIN中。

AREA Block, CODE, READONLY
ENTRY
start
ldr r0,=BUFF;
mov r1,#100
ldr r4,[r0];max
ldr r5,[r0];min
cmpe ldr r3,[r0]
cmp r4,r3
bgt cmpnext;
mov r4,r3;小于等于
cmpnext
cmp r5,r3
blt loop
mov r5,r3; 小于
loop add r0,r0,#4
sub r1,r1,#1
cmp r1,#0
bne cmpe
ldr r0,=MAX;
str r4,[r0]
ldr r0,=MIN;
str r5,[r0]
MOV r0, #0x18 ; angel_SWIreason_ReportException
LDR r1, =0x20026 ; ADP_Stopped_ApplicationExit
SWI 0x123456
AREA BlockData, DATA, READWRITE
BUFF DCD 1,-2,3,4,5,6,7,-8,1,2,3,4,5,6,7,8,1,2,3,12
MAX DCD 0
MIN DCD 0
END
补充习题:
35、已知通用输入输出接口(gpio)A口其配置端口地址为:0x1d20000,
数据断口的地址为:0x1d20004;编写c语言程序段,将其配置为输出接口,并将立即数0x100送其数据口输出。

#define rPCONA() (*(volatile unsigned char *)0x1d20000)
#define rPDATA() (*(volatile unsigned char *)0x1d20004)
rPCONA=0x000;
rPDATA=0x100;
36. S3C44B0X具有多少通用I/O口?它们具有哪些功能?(P149)
37.简述矩阵式键盘线扫描检测法的工作原理。

(P150\151)
38.假设要将S3C44B0X的UART1设置为:波特率9600b/s,7位数据位,2个停止位,1位奇偶校验位,并采用流控制工作,该如何设置?给出完成该设置功能的代码段。

rFCON0=0X00; 不使用FIFO
rUMCON0=0X10; 自动流控制
rULCON0=0X26;正常模式,1位奇偶校验位/奇校验,2个停止位rUCON0=0X45 ; //禁止超时中断、回送模式、发中止信号,允许产生错误状态中断,
//发送、接收中断都为边沿方式,传送、接收模式都为中断请求模式rUBRDIVO =((int)MCLK/16/baud+0.5)-1);//根据波特率计算UBRDIVO的值
39.写出下述内存变量x、y和z的地址。

(x、y、z的地址分别为:0x20000、0x20004、0x2000c )
begin equ 0x20000
map begin
x field 4
y field 8
z field 16。

相关文档
最新文档