2011年 - 嵌入式试卷A卷及答案 联系客服

发布时间 : 星期六 文章2011年 - 嵌入式试卷A卷及答案更新完毕开始阅读9bae28255727a5e9856a61f9

《嵌入式系统》课程考试试卷(A卷)2010-2011 学年第2学期

一、填空(每空1分,共20分) 1、嵌入式系统的组织架构是嵌入式处理器、存储器等硬件、嵌入式系统软件和应用软件所组成的。 2、ARM系统复位后,第一条执行的指令在0x02。 3、冯诺依曼体系结构的特点之一是系统内部数据和指令都存储在统一存储器中,而哈佛结构则是分开存储。

4、ADD RO,Rl,#3属于立即寻址方式。

5、ARM指令集和Thumb指令集分别是32和16位的。 6、嵌入式软件结构一般分为驱动层、OS层、中间件层和应用层。 7、cache放置数引的常用地址变换算法有直接、组相联、和全相联。 8、嵌入式系统中电源管理器最常见的工作方式是工作、空闲和睡眠。

二、简答(每题5分,共30分)

1、简要叙述嵌入式处理器具备的4个特点。

(l)大量使用寄存器,对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间减少到最低限度。结构上采用RISC结构形式。

(2)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。

(3)可扩展的处理器结构,最迅速地扩展出满足应用的最高性能的嵌入式微处理器。支持ARM ( 32 位)和Thumb ( l6 位)双指令集,兼容8 位/16 位器件。

(4)小体积、低功耗、成本低、高性能,嵌入式处理器功耗很低,用于便携式的无线及移动的计算和通信设备中,电池供电的嵌入式系统需要功耗只有mW甚至μW级。

2、简单叙述ARM微处理器的异常中断响应过程。 首先,将当前程序状态寄存器CPSR 的内容保存到将要执行的异常中断对应的备用程序状态寄存器SPSR 中,以实现对处理器当前状态、中断屏蔽位及各条件标志位的保存。各异常中断模式都有自己相应的物理SPSR 寄存器。

然后,将引起异常指令的下一条指令的地址保存到新的异常工作模式的R14 即R14_mode 中,使异常处理程序执行完后能正确返回原程序。

最后,给程序计数器强制赋值,使程序在对应的矢量地址开始执行中断处理程序。一般矢量地址处将包含一条指向相应程序的转移指令,从而可跳转到相应的异常中断处理程序处执行异常中断处理程序。

3、什么是同步?什么是异步?

与系列时间相关事件称为同步事件,驱动的任务为同步任务。

随机发生的事件称为异步事件,驱动的任务为异步任务,如中断等。

4、简要叙述实时系统的评价指标?

在实时系统中主要有三个指标来衡量系统的实时性,即响应时间(Response Time )、生存时间(Survival Time)、吞吐量(Throughput )。

响应时间(Response Time):是计算机识别一个外部事件到作出响应的时间,在控制应用

中它是最重要的指标,如果事件不能及时的处理,系统可能就会崩溃。

生存时间(Survival Time ):是数据有效等待时间,在这段时间里数据是有效的。

吞吐量(Throughput):是在一给定时间内(秒),系统可以处理的事件总数。例如通讯控制器用每秒钟处理的字符数来表示吞吐量,吞吐量是平均响应时间的倒数。

5、简要叙述非占先式调度法与占先式调度法?

非占先式也称作合作型多任务(cooperative multitasking ) ,各个任务彼此合作共享一个CPU。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU 的使用权时,那个高优先级的任务才能获得CPU 的使用 当系统响应时间很重要时,要使用占先式内核。最高优先级的任务一旦就绪,总能得到CPU 的控制权。即当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU 使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU 的控制权。使用占先式内核时,应用程序应使用可重入型函数,这样在被多个任务同时调用,而不必担心会破坏数据。

6、简要叙述ARM处理器的7种运行模式? ARM 微处理器支持7 种运行模式,分别为:

用户模式(USR) : ARM 处理器正常程序执行的模式。

快速中断模式(FIQ) :用于高速数据传输或通道处理用于快速中断服务程序。当处理器的快速中断请求引脚有效,且CPSR (6位)中F位为0时(开中断),会产生FIQ 异常。 外部中断模式(IRQ):用于通用的中断处理,当处理器的外部中断请求引脚有效,且CPSR (7 位)中I 位为0 时(开中断),会产生IRQ 异常。系统的外设可通过该异常请求中断服务。

特权模式或管理员模式(SVE):操作系统使用的保护模式。当执行软件中断SWI 指令和复位指令时,就进入管理模式,在对操作系统运行时工作在该模式下。 数据访问中止模式(ABT):用于虚拟存储器和存储保护,当存储器数据访问无效时就进入该模式。若处理器数据访问指令的地址不存在或该地址不允许当前指令访问时,也产生数据中止异常。

未定义指令中止模式(UND ) :用于支持硬件协处理器的软件仿真。当ARM 处理器或协处理器遇到不能处理的指令时,就要产生未定义指令异常。用户可使用该异常机制进行软件仿真,即用软件来模拟硬件功能,比如浮点运算。 系统模式(SYS):运行具有特权的操作系统任务。与用户模式共用使用寄存器组,但是其使用权限要比在用户模式下高。

三、单项选择题(每小题2分,共20分) l、以下说法不正确的是( B )。

A、任务可以有类型说明 B、任务可以返回一个数值 C、任务可以有形参变量 D、任务是一个无限循环

2、下列描述不属丁RISC计算机的特点的是( C )。

A、流水线每周期前进一步。 B、更多通用寄存器。 C、指令长度不固定,执行需要多个周期。

D.独立的Load和Store指令完成数据存寄存器和外翻;存储器之问的传输。

3、存储一个32位数0x2168465到2000H-*2003H四个宁节单元rf1,若以大端模式存储,则2000H存储单元的内容为( D )。

A、0x21 B、0x68 C、0x65 D、0x02

4、μCOS-II中对关键代码段由于希望在执行的过程中不被中断打扰,通常采用关中断的方式,以下X86汇编代码正确而且不会改变关中断之前的中断开关状态的是( D )

A、先CLI、执行关键代码、再STI B、先STI、执行关键代码、再CLI

C、先POPF、CLI、执行关键代码、再PUSHF D、先PUSHF、CLI、执行关键代码、再POPF

5、 RS232-C串口通信中,表示逻辑1的电平是( D )。

A、0v B、3.3v C、+5v~+15v D、-5v~-15v

6、ARM汇编语句“ADD RO,R2,R3,LSL#1”的作用是( A )。

A、RO=R2+(R3<<1) B、RO=(R2<<1)+R3 C、R3= RO+ (R2<<1) D、(R3<

7、IRQ中断的入口地址是( C )。FIQ的入口地址为0xOOOO(X) IC

A、0x00000000 B、0x00000008 C、0x00000018 D、0x00000014 8、S3C2420X I/O口常用的控制器是( D )。

A、端口控制寄存器(GPACON-GPHCONI) B、端口数据寄存器(GPADAT-GPHDAT) C、外部中断控制寄存器(EXTINTN) D、以上都是。

9、实时操作系统中,两个任务并发执行,一个任务要等待其合作伙伴发来信息,或建立某个条件后再向前执行,这种制约性合作关系被成为( A )。

A、同步 B、互斥 C、调度 D、执行

10、和PC系统机相比嵌入式系统不具备以下哪个特点( C )。

A、系统内核小 B、专用性强 C、可执行多任务 D、系统精简

四、编程:以实验平台PXA270为设计环境,试写出一段代码,能控制八段数码管以递增方式点亮显示(15’) # include < stdio.h >

# include \

# define LED_ CS2 ( * ( ( volatile unsigned short int * ) ( 0x 10300000 ) ) ) //LEDI andLED2

# defilne LED_CS3 ( * ( ( volatile unsigned short illt * ) ( 0xl0400000 ) ) ) //LED3 andLED4 void Delay ( unsigned int x ) {

unsigned int i , j , k; for ( i = 0 ; i <= x ; i ++ )

for( j=0 ; j < 0xff ; j ++ )

for ( k = O ; k < 0xff ; k + + ) ; }

void dummyOs (void ) {

LED_CS2 = 0x2479 ; //1112 LED_CS3 = 0x1930 ; //1134 while ( l )

{

Delay ( 300 ) ;

LED _ CS2 = 0x3024; //2 3 LED _ CS3 = 0x1219; //4 5 Delay ( 300 ) ;

LED _ CSZ = 0x1930; //3 4 LED _ CS3 = 0x0212; //5 6 Delay ( 300 );

LED _ CS2 = 0x1219; //4 5 LED _ CS3 = 0x7802; //6 7 Delay ( 300 );

LED _ CS2 = 0x0212; //5 6 LED _ CS3 = 0x0078; //7 8 Delay ( 300 );

LED _ CS2 = 0x7802; //6 7 LED _ CS3 = 0x1000; //8 9 Delay ( 300 );

LED _ CS2 = 0x0078; //7 8 LED _ CS3 = 0x8f10; //9 0 Delay ( 300 );

LED _ CS2 = 0x1000; //9 9 LED _ CS3 = 0x8f8f; //0 0 Delay ( 300 );

LED _ CS2 = 0x8f10; //9 0 LED _ CS3 = 0x8f8f; //0 0 Delay ( 300 );

LED _ CS2 = 0x8f8f; //0 0 LED _ CS3 = 0x8f8f; //0 0 Delay ( 300 );

LED _ CS2 = 0x2479; //1 2 LED _ CS3 = 0x1930; //3 4

}

}

五、分析计算,阅读以下S3C2410部分Ⅲ户手册。求:当PCLK或UCLK为40MHz时,串口0的波特率为2400bps,串口l的波特率为115200bps,相应的控制寄存器如何设置。(15分)

UART BAUD RATE DIVJSOR REGISTER

There are three UART baud rate divisor registers (寄存器) including UBRDIVO, UBRDIV1 and

UBRDIV2 in the UART block(模块). The value stored in the baud rate divisor register(UBRDIVn), is used to determine the serial Tx/Rx clock fate(baud rate) as follows:UBRDIVn = (int)(PCLK/ (bps x 16)) -1 or UBRDIVn = (int)(UCLK / (bps x 16)) -1 Where, the divisor should be from l to (216-1) and UCLK should be smaller than PCLK. Register Address R/W Description Reset Value UBRDIV0 UBRDIV1 UBRDIV2 UBRDIVn UBRDIV 0x50000028 0x50004028 0x50008028 Bit [15:0] R/W R/W R/W Baud rate divisor register 0 Baud rate divisor register 1 Baud rate divisor register 2 - - - Initial State - Description Baud rate division value UBRDIVn>0 答:根据UBRDIVn=(int)(PCLK/(bps x 16))-1有

寄存器UBRDIV0=(int)(40000000/(2400*16))-l= 1040 = 10000010000(B) 寄存器UBRDIV1=(int)(40000000/(115200*16))-1= 20 =10100(B)