您的当前位置:首页正文

微控制器系统设计复习题

来源:化拓教育网
微控制器系统设计复习题

1. 通过 PA ⼝控制 PB ⼝,PA ⼝作为输⼊⼝与开关 K0~K7 相连,PB⼝作为输出⼝与⼩灯 L0~L7 相连。设计硬件电路,且编程控制,在拨动开关时控制⼩灯的亮灭。ORG 0000HLJMP MAINORG 0770H

MAIN: MOV DPTR,#OFF2BHMOV A, # 90HMOVX @ DPTR, A

LOOP1: MOV DPTR,#OFF28HMOVX A ,@DPTRINC DPTRMOVX @ DPTR,ASJMP LOOP1END

例题⽤6264(8K×8位)给8051单⽚机的外围扩展8K的⽚外数据存储器,画出与单⽚机相连地址线、数据线和控制线,并注明信号名称。

例题给8051单⽚机的外围扩展⼀⽚16K×8位⽚外程序存储器,画出与单⽚机相连地址线、数据线和控制线,并注明信号名称。

LED显⽰器有静态显⽰和动态显⽰两种⽅式,显⽰原理是什么

静态显⽰就是在同⼀时刻只显⽰⼀种字符,或者说被显⽰的字符在同⼀时刻是稳定不变的。其显⽰⽅法⽐较简单,只要将显⽰段码送⾄段码⼝,并把位控字送⾄位控⼝即可。

动态显⽰是同⼀时刻只有被选通位的数码管能显⽰相应的字符,⽽其他所有位都是熄灭的。利⽤⼈眼对视觉的残留效应,采⽤动态扫描显⽰的⽅法,逐个循环的点亮各位数码管,每位显⽰1ms左右。使⼈感觉就好像在同时显⽰不同的字符⼀样。LED数码显⽰器有两种连接⽅法共阳极接法或共阴极接法

常⽤键盘接⼝分为独⽴式键盘接⼝和⾏列式键盘接⼝。⼀般按键较少时采⽤独⽴式键盘,在按键较多时采⽤矩阵式键盘。他们的⼯作原理是什么独⽴式键盘是指⽤I/O⼝线构成的单个键盘电路。每个独⽴式键盘单独占有⼀根I/O ⼝线,每根I/O⼝线的⼯作状态不会影响其他I/O线的⼯作状态。在独⽴式按键电路中,按键输⼊⼀般采⽤低电平有效,上拉电阻保证了按键断开时,I/O⼝线有确定的⾼电平⽆按键按下时,常态,⽽当有按键按下时,⾏线电平状态将由与此⾏线相连的列线的电平决定。列线的电平如果为低,则⾏线电平为低;列线的电平如果为⾼,则⾏线的电平亦为⾼。消抖和按键释放怎么理解

在第⼀次检测到有按键按下时,该键所对应的⾏线为低点平,之⾏⼀段延时10ms的⼦程序后,确认该⾏线电平是否为低电平,如果仍为低电平,则认为该⾏确实有按键按下。

通常在检测到⼀次有效的按键操作后,并不⽴即执⾏该键的功能程序,⽽是继续检测该键是否被释放,当检测到该键被释放后⽴即执⾏该键的功能程序,这样就可以保证⼀次按键操作,只执⾏⼀次键功能程序。A/D转换是把连续的模拟电信号转换成时间和数值离散的数字信号的过程。A/D转换过程主要包括采样、量化和编码。

如当满量程电压为5V,采⽤10位A/D转换器的量化间隔、绝对量化误差、相对量化误差分别为:

D/A转换器与 A/D转换器的功能是什么各在什么场合下使⽤

A/D转换是把连续的模拟电信号转换成时间和数值连续的数字信号的过程实现转换的器件称为模数转换器低速A/D转换器件:双积分型中速A/D转换器件:逐次逼近型⾼速A/D转换器件:并⾏⽐较型

逐次逼近型是⽬前使⽤最⼴泛的⼀种,其性价⽐适中,适合⼀般的应⽤;双积分型具有转换精度⾼、抗⼲扰性好的优点,但是转换速度慢,常⽤于各类仪器仪表中;并⾏式是⼀种通过编码技术实现⾼速A/D转换的器件,其速度可以达到⼏⼗ns,但是价格很⾼。

D/A转换的⽬的是把输⼊的数字信号转换成与此数字量⼤⼩成正⽐的模拟量

D/A 转换器的主要性能指标有哪些设某 DAC 有⼆进制 12 位,满量程输出电压为 5V,请问它的分辨率是多少主要性能指标:D/A建⽴时间、分辨率、D/A转化精度分辨率为5/4096判断下列说法是否正确

(1) “转换速度”这⼀指标仅适于 A/D转换器,D/A 转换其可以忽略不计转换时间。(w)

(2) ADC0809可以利⽤“转换结束”信号 EOC向8051 单⽚机发出中断请求。(r)(3) 输出模拟量的最⼩变化量称为 A/D转换器的分辨率。 (w)

(4) 输出的数字量变化⼀个相邻的值所对应的输⼊模拟量的变化称为 D/A 转换器的分辨率。 (w)

请分析 A/D 转换器产⽣量化误差的原因,具有 8 位分辨率的 A/D 转换器,当输⼊ 0~5V 电压时,其最⼤量化误差是多少把电压值分成有限的数值区间,使某个区间的所有电压值都对应⼀个数字量,这个过程称为量化,量化导致的误差称为量化误差。

8051 单⽚机与 DAC0832 接⼝时,有那三种⼯作⽅式各有什么特点适合在什么场合使⽤⽅式:直通式、单缓冲、双缓冲

直通:当DAC0832的⽚选信号、写信号、及传送控制信号的引脚全部接地,允许输⼊锁存信号ILE引脚接+5V时,DAC0832⼯作于直通⽅式,数字量⼀旦输⼊,就直接进⼊DAC寄存器,进⾏D/A转换。但由于直通⽅式不能直接与系统的数据总线相连,需另加锁存器,故较少应⽤。

单缓冲:单缓冲⽅式是指内部的⼀个寄存器⼯作于直通状态,另⼀个⼯作于受控状态,当然也可以使两个寄存器同时选通及锁存。因此,单缓冲⽅式有三种不同的连接⽅法;在不要求多相D/A同时输出时,可以采⽤单缓冲⽅式,此时只需⼀次写操作,就开始转换,可以提⾼D/A的数据吞吐量。

双缓冲:就是把DAC0832的两个锁存器都接成受控锁存⽅式。由于芯⽚中有两个数据寄存器,这样就可以将8位输⼊数据先保存在“输⼊寄存器”中,当需要D/A转换时,再将此数据从输⼊寄存器送⾄“DAC寄存器”中锁存并进⾏D/A转换输出。采⽤这种⽅式,可以克服在输⼊数据更新期间输出模拟量随之出现的不稳定。这时,可以在上⼀次模拟量输出的同时,将下⼀次要转换的数据事先存⼊“输⼊寄存器”中,⼀⽅⾯克服了不稳定现象,另⼀⽅⾯出提⾼了数据的转换速度;⽤这种⽅式还可以同时更新多个D/A转换器的输出;此外,采⽤两级缓冲⽅式也可以使位数较多的DAC器件⽤于数据位数较少的系统中;在多路D/A转换需要同步的时候,双缓冲⽅式是⾮常有⽤的,⽐如数字式⽰波器

RS-232、RS-485、CAN为外总线,它们是系统之间的通信⽤总线;I2C、SPI是内总线,主要⽤于系统内芯⽚之间的数据传输。

SPI只需四条线就可以完成MCU与各种外围器件的通信,这四条线是:串⾏时钟线(SCK)、主机输⼊/从机输出数据线(MISO)、主机输出/从机输⼊数据线(MOSI)、低电平有效从机选择线(/CS )。

⼯作原理:当SPI⼯作时,在移位寄存器中的数据逐位从输出引脚(MOSI)输出(⾼位在前),同时从输⼊引脚(MISO)接收的数据逐位移到移位寄存器(⾼位在前)。发送⼀个字节后,从另⼀个外围器件接收的字节数据进⼊移位寄存器中。主SPI的时钟信号(SCK)⽤来保证传输的同步。

I2C总线只有两根双向信号线。⼀根是数据线SDA,另⼀根是时钟线SCL。

⼯作原理:I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为⾼电平。连到总线上的任⼀器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系; SCL线为⾼电平期间,SDA线由⾼电平向低电平的变化表⽰起始信号;SCL线为⾼电平期间,SDA线由低电平向⾼电平的变化表⽰终⽌信号。1. 填空题

(1) ⼲扰窜⼊单⽚机系统的主要途径有空间⼲扰、供电系统⼲扰、过程通道⼲扰其他⼲扰。

(2) ⼲扰的耦合⽅式主要有:光电耦合器、隔离变压器、滤波器等⼏种形式。

(3) 常⽤的数字滤波⽅法有、、、、、和等⼏种。

(4) 常⽤的软件抗⼲扰技术有:软件滤波、指令冗余技术、软件陷阱技术、“看门狗”技术2. 选择题

(1) 可以使 PC 摆脱“死循环”困境的是C。A.NOP指令冗余 B.软件陷阱技术C.Watchdog 技术 D.数字滤波(2) 可以抑制空间⼲扰的是D。A.光电隔离 B.双绞线传输C.可靠接地 D.屏蔽技术

(4) Watchdog定时间隔 tw以满⾜最好为A。A.C.

(5) 单⽚机系统受到⼲扰后,容易使程序计数器 PC 发⽣改变,则不能使程序纳⼊正轨的是。D

A.软件陷阱 B.Watchdog 技术C.指令冗余技术 D.数字滤波技术习题1

1.什么是嵌⼊式系统嵌⼊式系统的特点是什么

我国通常定义:嵌⼊式系统(Embedded System)就是嵌⼊到⽬标体系中的专⽤计算机系统嵌⼊式系统是指以应⽤为中⼼,以计算机技术为基础,并且软硬件可裁减,适⽤于应⽤系统对功能、可靠性、成本、体积、功耗有严格要求的专⽤计算机系统。嵌⼊性、专⽤性与计算机系统是嵌⼊式系统的3个基本要素嵌⼊式系统的特点:

1.嵌⼊式系统是专⽤的计算机系统2.嵌⼊式系统须满⾜系统应⽤环境的要求3.嵌⼊式系统需满⾜对象系统的控制要求4.嵌⼊式系统是⼀个知识集成应⽤系统

5.嵌⼊式系统具有较长的应⽤⽣命周期6.嵌⼊式系统软件固化在⾮易失性存储器中7.多数嵌⼊式系统具有实时性要求

8.嵌⼊式系统设计需专⽤的开发环境和⼯具

4.嵌⼊式系统有哪些组成部分各部分的功能和作⽤是什么

硬件层由嵌⼊式微处理器、存储系统、通信模块、⼈机接⼝、其他I/O接⼝(A/D、D/A、通⽤I/O等)以及电源等组成。嵌⼊式系统的硬件层以嵌⼊式微处理器为核⼼,在嵌⼊式微处理器基础上增加电源电路、时钟电路和存储器电路(RAM,ROM等),这就构成了⼀个嵌⼊式核⼼控制模块,操作系统和应⽤程序都可以固化在ROM中

中间层程序主要为上层软件提供了设备的操作接⼝,它包括硬件抽象层(Hardware Abstraction Layer,HAL)、板级⽀持包(Board Support Package,BSP)以及设备驱动程序

应⽤软件是在嵌⼊式操作系统⽀持下通过调⽤API函数,结合实际应⽤编制的⽤户软件

5.简述嵌⼊式处理器的分类及各⾃的主要特点。写出EMPU、EMCU、EDSP、SOC 和SOPC的全称,并解释其含义嵌⼊式处理器的种类

嵌⼊式微处理器(Embedded Microcomputer Unit,EMPU)、嵌⼊式微控制器(Embedded Microcontroller Unit,EMCU)

嵌⼊式数字信号处理器(Embedded Digital Signal Processor,EDSP)嵌⼊式⽚上系统(System On Chip,SOC)

嵌⼊式可编程⽚上系统(System On a Programmable Chip,SOPC)。

嵌⼊式微处理器是由PC中的CPU演变⽽来的,与通⽤PC的微处理器不同的是,它只保留了与嵌⼊式应⽤紧密相关的功能硬件,ARM是应⽤最⼴、最具代表性的嵌⼊式微处理器。

嵌⼊式微控制器的典型代表是单⽚机,其内部集成了ROM/EPROM/Flash、RAM、总线、总线逻辑、定时器、看门狗、I/O接⼝等各种必要的功能部件。

嵌⼊式数字信号处理器(DSP)是专门⽤于数字信号处理的微处理器,在系统结构和指令算法⽅⾯经过特殊设计,因⽽具有很⾼的编译效率和指令执⾏速度

SOC是⼀个集成的复杂系统,它⼀般将⼀个完整的产品的各功能集成在⼀个芯⽚上或芯⽚组上SOC最⼤的特点是成功实现了软硬件⽆缝结合,直接在处理器的⽚内嵌⼊了操作系统,不仅减⼩了系统的体积和功耗,⽽且提⾼了系统的可靠性和设计⽣产效率。

可编程⽚上系统SOPC 是⼀种基于FPGA的可重构SOC,它集成了硬IP核或软IP核CPU、DSP、存储器、外围I/O及可编程逻辑,是更加灵活、⾼效的SOC解决⽅案。SOC与SOPC的区别:SOC是专⽤集成系统,设计周期长,设计成本⾼,SOPC是基于FPGA的可重构SOC,是⼀种通⽤系统,设计周期短,设计成本低7.简述典型的嵌⼊式微处理器和微控制器的系列及应⽤领域。

ARM处理器⽬前包括ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、ARM11系列、SecurCore系列、OptimoDE系列、StrongARM系列、XScale系列以及Cortex-A8系列等。 ARM7、ARM9、ARM9E及ARM10E为4个通⽤嵌⼊式微处理器系列,每个系列提供⼀套相对独特的性能来满⾜不同应⽤领域的要求,有多个⼚家⽣产;SecurCore系列则是专门为安全性要求较⾼的场合⽽设计的;Strong ARM是Intel公司⽣产的⽤于便携式通信产品和消费电⼦产品的理想嵌⼊式微处理器,应⽤于多家掌上电脑系列产品;Xscale是Intel 公司推出的基于ARMv5TE体系结构的全性能、⾼性价⽐、低功耗的嵌⼊式微处理器,应⽤于数字移动电话、个⼈数字助理和⽹络产品等场合。 Cortex-A8处理器是第⼀款基于下⼀代ARMv7架构的应⽤处理器,使⽤了能够带来更⾼性能、功耗效率和代码密度的Thumb?-2技术

8.简单分析⼏种嵌⼊式操作系统的主要特点,包括嵌⼊式Linux,Windows CE,µC/OS- II及VxWorks。1.Linux

Linux是⼀种⾃由和开放源码的类Unix操作系统,⽬前存在着许多不同的Linux,,但它们都使⽤了Linux内核。Linux可安装在各种计算机硬件设备中,Linux是⼀个领先的操作系统,世界上运算最快的10台超级计算机运⾏的都是Linux操作系统。

2.Windows CE

Microsoft Windows CE是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对从掌上电脑到专⽤的⼯业控制器的⽤户电⼦设备进⾏定制。该操作系统的基本内核⾄少需要200 KB的ROM。,其缺点是系统软件价格过⾼,影响整个产品的成本控制。3.µC/OS-II

µC/OS-II是⼀个可裁剪、源代码开放、结构⼩巧、抢先式的实时嵌⼊式操作系统,主要⽤于中⼩型嵌⼊式系统,具有执⾏效率⾼、占⽤空间⼩、可移植性强、实时性能好和可扩展性强等优点。4. VxWorks

VxWorks操作系统是⼀种实时操作系统。VxWorks拥有良好的持续发展能⼒、⾼性能的内核以及友好的⽤户开发环境,它以其良好的可靠性和卓越的实时性被⼴泛地应⽤在通信、军事、航空、航天等⾼、精、尖技术及实时性要求极⾼的领域中,。但⼤多数的VxWorks API是专⽤的,VxWorks的价格昂贵。5.苹果iOS

iOS是由苹果公司为iPhone开发的操作系统。它是以Darwin为基础的,主要是给iPhone、iPod touch以及iPad使⽤。Android是⼀种以Linux为基础的开放源码操作系统,主要使⽤于便携设备。Android操作系统最初由Andy Rubin开发,最初主要⽀持⼿机。

9.嵌⼊式系统的应⽤模式有哪⼏种各有什么有缺点1.⾮操作系统层次的应⽤

⾮操作系统层次的应⽤,主要是在⼀些结构简单的系统中或在实时性要求⾮常⾼的系统中,许多时候⽤于代替原来8位/16位单⽚机的应⽤。随着32位单⽚机成本的不断降低,其成本已与8位单⽚机相差⽆⼏。因此,⾮操作系统层次的应⽤也越来越⼴泛。

2.操作系统⾮GUI层次的应⽤

操作系统⾮GUI层次的应⽤,主要是指其应⽤程序建⽴在操作系统基础上,是为了实现程序的多任务及实时性,此类应⽤在⼈机交互⽅⾯没有很⾼的要求,可选择的操作系统有许多。3.操作系统GUI层次的应⽤

操作系统GUI层次的应⽤,主要是为了⽅便实现⼈机交互功能、⽹络功能、数据库功能以及其它更复杂的应⽤。GUI层次的开发,除了借助于操作系统及GUI库强⼤的功能,更重要的是可以让程序开发⼈员把关注点集中在⾼层的⽬标与任务的实现中,使嵌⼊式系统应⽤的开发更简单,让开发速度及开发效率更⾼10.简述嵌⼊式系统的总体设计应考虑哪些因素。1.嵌⼊式微处理器及操作系统的选择

嵌⼊式微处理器可谓多种多样,品种繁多,⽽且都在⼀定领域应⽤⼴泛2.开发⼯具的选择

⽬前⽤于嵌⼊式系统设计的开发⼯具种类繁多,不仅各种操作系统有各⾃的开发⼯具,在同⼀系统下开发的不同阶段也使⽤不同的开发⼯具。

3.对⽬标系统的观察与控制

要使系统能正常⼯作,软件开发者必须要对⽬标系统具有完全的观察和控制能⼒,如硬件的各种寄存器、内存空间,操作系统的信号量、消息队列、任务、堆栈等。

11.简述嵌⼊式系统的开发环境的组成,解释其中的基本概念。

嵌⼊式系统的开发环境⼀般由三个部分组成:宿主机、调试仿真器和⽬标机。其中宿主机⽤来完成源代码编辑、编译、显⽰⼀部分运⾏结果等。⽬标机就是⽤户嵌⼊式程序的运⾏环境,通过调试仿真器可以在PC上实现对应⽤软件的调试;再使⽤烧写软件,将开发成功的应⽤系统从宿主机向⽬标机下载移植,从⽽完成整个开发过程。12.简述嵌⼊式系统的调试⽅法。1.指令集模拟器

⽅便⽤户在PC上完成⼀部分简单的调试⼯作,与真实的硬件环境相差很⼤,因此即使⽤户调试通过的程序也有可能⽆法在真实的硬件环境下运⾏,2.驻留监控软件

驻留监控软件(Resident Monitors)是⼀段运⾏在⽬标板上的程序,集成开发环境中的调试软件通过以太⽹⼝、并⾏端⼝、串⾏端⼝等通信端⼝与驻留监控软件进⾏交互,由调试软件发布命令,通知驻留监控软件控制程序执⾏、读/写储存器、读/写寄存器和设置断点等。是⼀种⽐较低廉有效的调节⽅式,不需要任何其它的硬件调试和仿真设备。对硬件设备的要求⽐较⾼。3.JTAG仿真器

也称为JTAG调试器,是通过ARM芯⽚的JTAG边界扫描⼝进⾏调试的设备。JTAG仿真器⽐较便宜,连接⽐较⽅便,它⽆需⽬标储存器,不占⽤⽬标端⼝的任何端⼝。另外,由JTAG调试的⽬标程序是在⽬标板上执⾏的仿真,许多接⼝问题被最⼩化了。是⽬前采⽤最多的⼀种调节⽅式4.在线仿真器

在线仿真器使⽤仿真头完全取代⽬标板上的CPU,可以完全仿真ARM芯⽚的⾏为,提供更加深⼊的调试功能。但全速仿真时钟速度⾼于100MHz,价格⽐较昂贵。在线仿真器常⽤在ARM的硬件开发中,在软件的开发中使⽤较少,其价格昂贵也是在线仿真器难以普及的因素。

13.简述嵌⼊式系统的设计⽅法和嵌⼊式系统的设计步骤。

14.简述嵌⼊式应⽤软件的开发的特点。1.需要交叉编译⼯具

由于嵌⼊式系统⽬标机上的资源较为有限,不能直接在⽬标机上开发和调试应⽤软件。因此,需要放在⾼性能计算机上的集成开发环境上进⾏嵌⼊式应⽤软件开发,另⼀个原因是嵌⼊式系统处理器与PC处理器的指令系统不同2.通过仿真⼿段进⾏调试

在⽬标机上调试排错是⾮常困难的。原因是输⼊输出⽅式较少,多数嵌⼊式系统显⽰⾯积⼩,甚⾄没有显⽰屏,从⽽⽆法显⽰调试信息;调试⼯具需要较⼤存储空间,对嵌⼊式系统来说,⽐较困难。因此,通常的调试也是在PC上完成的,⽅式就是仿真调试。

3.⽬标机是最终的运⾏环境

嵌⼊式应⽤程序开发、调试往往是在PC上完成的,最终的运⾏环境是⽬标机。嵌⼊式应⽤程序开发调试完成后,到⽬标机上运⾏,正确运⾏后才表⽰成功。如果不成功或需要完善,则需重新回到PC上运⾏修改调试。4.执⾏应⽤程序的指令通常写⼊操作系统

在常⽤的嵌⼊式系统中,应⽤程序的启动执⾏指令通常需要预先写⼊操作系统的任务调度程序⾥,编辑在⽬标程序中。因此,嵌⼊式应⽤程序与操作系统有⼀定联系,开发者不仅要了解应⽤程序,也要了解操作系统,5.系统资源有限

必须考虑可⽤资源问题。以存储容量为例,嵌⼊式系统的ROM容量少,对⽬标程序有长度限制,在编程时必须考虑这个限制。

6.控制特定部件

在嵌⼊式应⽤软件开发过程中,程序员往往需要针对特定的部件做更加细致的编写作业。1.⽬前世界上流⾏的四种嵌⼊式处理器是哪⼏种

Power PC、MIPS、MC68000、 i386EX、AMD K6 2E以及ARM2.具体说明ARM7TDMI的含义,其中的T、D、M、I分别代表什么ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}

其中花括号的内容表⽰可有可⽆。前三个参数含义在下⾯说明:{x}表⽰系列号,例如:ARM7,ARM9,ARM10

{y}表⽰内部存储管理和保护单元,例如:ARM72,ARM92{z}表⽰含有⾼速缓存(Cache),例如:ARM720,ARM940

T Thumb指令集,Thumb指令的长度为16位。⽬前Thumb有两个版本。Thumb1⽤于ARM4的T变种,Thumb2⽤于ARM5以上的T变种。

D 含JTAG调试器,⽀持⽚上调试。

M 提供⽤于进⾏长乘法操作的ARM指令,产⽣全64位结果。

I 嵌⼊式跟踪宏单元(EmbeddedICE macrocell)硬件部件,提供⽚上断点和调试点⽀持。E 增强型DSP指令,增加了⼏条16位乘法和加法指令,加减法指令可以完成饱和带符号算术运算。

J JAVA加速器Jazelle,与普通的JAVA虚拟机相⽐较,Jazelle使Java代码运⾏速度提⾼了8倍,⽽功耗降低了80%。F 向量浮点单元

S 可综合版本,以源代码形式提供的,可以被EDA⼯具使⽤。3.简述CISC与RISC 体系结构的特点。

CISC(Complex Instruction Set Computer)复杂指令集计算机:指令复杂,开发成本⾼、指令长度不等,⼤量微码、不利于VLSI实现

统计发现,20%的简单指令(取数、运算、转移等)占CPU动态执⾏时间的80%~90%;80%的复杂指令只占CPU动态执⾏时间的20%

RISC( Reduced Instruction Set Computer )精简指令集计算机:

精简指令集的复杂度,简化指令实现的硬件设计,硬件只执⾏使⽤频度最⾼的那部分简单指令,⼤部分复杂的操作则由简单指令的组合完成RISC与CISC⽐较

RISC指令格式和长度固定,类型少,功能简单、寻址简单⽅式少;CISC指令长度不等、类型多、功能复杂。RISC使⽤硬连线指令译码逻辑,易于流⽔线实现;CISC采⽤微码ROM译码。RISC⼤多数指令单周期完成;CISC指令多为多周期完成。

RISC除Load/Store指令外,所有指令只对寄存器操作;⼤多数CISC指令皆可对主存及寄存器器操作。RICS的不⾜:

RISC代码密度没有CISC⾼,CISC中的⼀条指令在RISC中有时要⽤⼀段⼦程序来实现。RISC不能执⾏x86代码RISC给优化编译程序带来了困难

4.什么是ARM处理器的ARM状态和Thumb状态ARM 处理器的七种基本⼯作模式是哪些ARM状态:ARM状态下指令长度为32位,ARM指令,字对准Thumb状态:Thumb状态下长度为16位, Thumb指令,半字对准。

ARM处理器可以在ARM和Thumb两种状态之间进⾏切换,状态的切换不影响处理器的模式或寄存器的内容进⼊Thumb状态:

执⾏BX Rm指令进⼊Thumb状态。当操作数寄存器Rm的bit[0]为1时,执⾏该指令进⼊Thumb状态。异常处理返回时,⾃动切换到Thumb状态(若在Thumb状态进⼊异常)进⼊ARM状态:

执⾏BX Rm指令进⼊ARM状态。进⾏异常处理时进⼊ARM状态

ARM处理器启动时,只能处于ARM状态ARM⽀持7种⼯作模式,由CPSR的低5位决定。处理器模式说明备注

⽤户 (usr) 正常程序执⾏模式不能直接切换到其它模式系统 (sys) 运⾏操作系统的特权任务与⽤户模式类似,但具有可以直接切换到其它模式等特权

快中断 (fiq) ⽀持⾼速数据传输及通道处理 FIQ异常响应时进⼊此模式中断 (irq) ⽤于通⽤中断处理 IRQ异常响应时进⼊此模式

管理 (svc) 操作系统保护模式系统复位和软件中断响应时进⼊此模式中⽌ (abt) ⽤于⽀持虚拟内存和/或存储器保护在ARM7TDMI没有⼤⽤处未定义 (und) ⽀持硬件协处理器的软件仿真未定义指令异常响应时进⼊此模式

除⽤户模式外,其它模式均为特权模式。ARM内部寄存器和⼀些⽚内资源在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以⾃由的切换处理器模式,⽽⽤户模式不能直接切换到别的模式。

特权模式中除系统模式外的其它5种模式称为异常模式,即把FIQ、IRQ、SVC、中⽌(Abort)和未定义(Undefined)5种模式称为异常模式。此类模式⽤于处理中断和异常,发⽣异常或中断时,进⼊相应的异常模式,拥有部分专⽤寄存器。它们除了可以通过程序切换进⼊外,也可以由特定的异常进⼊。当特定的异常出现时,处理器进⼊相应的模式。每种异常模式都有⼀些独⽴的寄存器,以避免异常退出时⽤户模式的状态不可靠。处理器有多少个可访问的寄存器 R13~R15通常⽤来存储什么ARM处理器总共有37个寄存器,可分为两类:通⽤寄存器(31个)R0~R15;

R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8_frq~R14_frq。状态寄存器(6个)

CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fiq分组寄存器R13:

R13通常⽤做堆栈指针SP ,习惯⽤法,⾮强制每⼀种异常模式都有⾃已的物理R13分组寄存器R14:

R14称作⼦程序链接寄存器(Link Register-LR),简称LR,⽤于存放当前⼦程序的返回地址。当程序执⾏⼦程序调⽤指令

BL,BLX时,当前的PC将保存在R14中。执⾏完⼦程序后,只要将R14复制到PC,⼦程序即可返回。每⼀种异常模式都有⾃已的物理R14程序计数器R15:

寄存器R15被⽤作程序计数器,也称为PC

R15值的改变将引起程序执⾏顺序的变化,这有可能引起程序执⾏中出现⼀些不可预料的结果

ARM处理器采⽤多级流⽔线技术,因此保存在R15的程序地址并不是当前指令的地址⼀些指令对于R15的⽤法有⼀些特殊的要求

CPSR(Current Program Status Register):当前程序状态寄存器,指⽰当前程序的状态信息,包括条件码标志、中断禁⽌位、当前处理器模式以及其它状态和控制信息。

SPSR(Saved Program Status Register):程序状态保存寄存器。每种异常模式都有⼀个对应的SPSR 物理寄存器(

SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq ),当异常出现时,⽤于保存CPSR 的状态,以便异常返回后恢复异常发⽣时的⼯作状态。 SPSR的格式与CPSR相同。

Thumb状态下的寄存器集是ARM状态下寄存器集的⼦集。程序员可以直接访问8个通⽤的寄存器(R0~R7),程序计数器PC、堆栈指针SP、连接寄存器LR和当前状态寄存器CPSP。每⼀种特权模式都各有⼀组SP,LR和SPSR。6.ARM V4及以上版本的CPSR的哪⼀位反映了处理器的状态若CPSR=0x00000090,分析系统的状态。

7.ARM有哪⼏个异常的类型,为什么FIQ的服务程序地址要位于0x1C在复位后,ARM 处理器处于何种模式,何种状态异常中断类型复位中断(Reset)

未定义指令异常(Undefined Instruction)软件中断(Software interrupt)预取指令中⽌异常(Prefetch Abort)取数据中⽌异常(Data Abort)普通中断 (Interrupt ReQuest-IRQ)快速中断FIQ

8.简述ARM异常中断的响应过程。ARM处理器对异常中断的响应过程如下:

1, 将CPSR的内容保存到相应的异常模式的SPSR_中2, 设置当前状态寄存器CPSR中的相应位设置模式控制位CPSR[4:0]设置中断标志位CPSR[7],禁⽌IRQ

若是进⼊Reset 或FIQ,还需设置中断标志位CPSR[6],禁⽌FIQ 3, 将产⽣异常中断指令的下⼀条指令的地址保存到相应的连接寄存器R14_ 中

4, 给程序计数器(PC)强制赋值(即装⼊相应的异常中断向量地址)指令寻址⽅式、简单汇编指令阅读

NOR Flash与NAND Flash优缺点。Flash闪存,分为这两种。

NAND Flash⾮易失性,读写速度快,容易做到⼤容量,⽤作存储数据。NOR Flash存储速度快,⽤作内存⽚或者叫做数据缓冲。S3c44b0的内核,S3C2410的内核,以及他们的功能特点。

S3c44b0它采⽤ARM7TDMI核,为32位嵌⼊式微处理器。S3C44B0X内部集成了8 KB的Cache(指令和数据共⽤)、写缓冲器、存储器控制器、LCD控制器、中断控制器、总线仲裁器、电源管理单元、时钟发⽣器、通⽤并⾏⼝GPIO、异步通信串⾏⼝UART、I2C总线控制器、I2S总线控制器、同步串⾏⼝SIO、5路16位PWM定时器、16位看门狗定时器、8路10位A/D转换器、实时钟电路以及JTAG接⼝。采⽤两种封装形式,⼀种是160个引脚的LQFP 封装,另⼀种是160个引脚的FBGA封装;S3C44B0X的许多引脚是分时复⽤的,以节省引脚数。

S3C2410 采⽤ARM920T核,⽽ARM920T⼜集成了ARM9TDMI,所以是中⾼档32位嵌⼊式微处理器。由于采⽤ARM920T体系结构,因此内部具有分离的16 KB⼤⼩的指令缓存和数据缓存。同时,它采⽤哈佛体系结构将程序存储器与数据存储器分开,加⼊了存储器部件(MMU),采⽤5级指令流⽔线。它使⽤ARM公司特有的AMBA总线,对于⾼速设备采⽤AHB总线,⽽对于低速内部外设则采⽤APB总线。AHB通过桥接器转换成APB。内部集成了许多外设接⼝,除了S3C44B0X所有内部外设,还增加了许多⼯作新外设接⼝。

1、主要嵌⼊式⽂件系统有哪⼏种这些⽂件系统各有什么特点

(1) Romfs。传统型的Romfs⽂件系统是最常⽤的⼀种⽂件系统,它是⼀种简单的、紧凑的、只读的⽂件系统,不⽀持动态擦写保存。

(2)Cramfs。Cramfs是Linux的创始⼈Linux Torvalds开发的⼀种可压缩只读⽂件系统。它的速度快,效率⾼,其只读的特点有利于保护⽂件系统免受破坏,提⾼了系统的可靠性。

(3) Ramfs/Tmpfs。Ramfs也是Linux Torvalds开发的,Ramfs⽂件系统把所有的⽂件都放在RAM⾥运⾏,通常⽤来存储⼀些临时性或经常要修改的数据。Tmpfs的⼀个缺点是当系统重新引导时会丢失所有数据。

(4)JFFS2。JFFS2是⼀个可读写、可压缩的⽇志型⽂件系统,并提供了崩溃/掉电安全保护,克服了JFFS的⼀些缺点,使⽤了基于哈希表的⽇志节点结构,⼤⼤加快了对节点的操作速度,⽀持数据压缩,提供了“写平衡”⽀持,⽀持多种节点类型,提⾼了对闪存的利⽤率,降低了内存的消耗。

(5) Yaffs。Yaffs/Yaffs2是⼀种JFFSx类似的闪存⽂件系统,它是专为嵌⼊式系统使⽤Nand型闪存⽽设计的⼀种⽇志型⽂件。与JFFS2相⽐,它减少⼀些功能,所以速度更快,⽽且内存的占⽤⽐更⼩。2、嵌⼊式Linux开发⼀般包括哪⼏个步骤每个步骤分别起什么作⽤

(1) 建⽴嵌⼊式Linux交叉开发环境。交叉开发环境是指编译、链接和调试嵌⼊式应⽤软件的环境。它与运⾏嵌⼊式应⽤软件的环境有所不同,常采⽤宿主机/⽬标机模式。

(2) 交叉编译和链接。在完成嵌⼊式软件的编码之后,就是进⾏编译和链接,以⽣成可执⾏代码。(3)交叉调试。交叉调试就是通过在线仿真器对产品进⾏软硬件调试。

(4)系统测试。在整个软件系统编译的过程中,嵌⼊式系统的硬件⼀般采⽤专门的测试仪器进⾏测试,⽽软件则需要有相关的测试技术和测试⼯具的⽀持,并要采⽤特定的测试策略。

3、嵌⼊式Linux开发环境⼀般包括哪⼏个部分怎样构建嵌⼊式Linux开发环境。

操作系统的安装、开发环境的配置、交叉编译环境构建、Makefile和Make 、镜像⽂件的烧写

建⽴嵌⼊式Linux开发环境,⼀般有三种办法:⼀是在Windows系统下安装虚拟机,再在虚拟机中安装Liunux操作系统;⼆是安装基于PC Windows操作系统下的CYGWIN;三是直接安装Liunux操作系统。4、嵌⼊式Linux内核的移植⼀般包括哪⼏个步骤各个步骤分别有什么作⽤1. Bootloader是什么它的作⽤是什么

嵌⼊式系统的Boot Loader程序,即系统的引导装载程序,在操作系统内核或⽤户应⽤程序之前运⾏的⼀段⼩程序,通过这段⼩程序可以初始化硬件设备和建⽴内存空间的映射图,将系统的软、硬件环境带到⼀个合适的状态,以便为最终调⽤操作系统内核或⽤户应⽤程序准备好正确的环境。2. 简述Bootloader启动⽅式的分类和特点。vivi、U-Boot、RedBoot、ARMBoot、Blob和DIY。

Vivi:⽬前只⽀持使⽤串⼝与主机通信,所以必须使⽤⼀条串⼝电缆来连接⽬标板和主机

U-Boot:⽤于多种嵌⼊式CPU的Boot Loader程序,它可以运⾏在PowerPC、ARM、MIPS 等多种嵌⼊式开发板上。RedBoot:是⼀个专门为嵌⼊式系统定制的引导启动⼯具,它基于ECOS(Embedded Configurable Operating System)的硬件抽象层,同时继承了ECOS的⾼可靠性、简洁性、可配置性和可移植性等特点。

ARMBoot是⼀个以ARM或StrongARM为CPU内核的嵌⼊式系统的Boot Loader固件程序,它只基于ARM固件,但是它⽀持多种类型的启动。

Blob是Boot Loader Object的缩写,是⼀款功能强⼤的Boot Loader

DIY(Do It Yourself),即⾃⼰制作。上⾯介绍的U-Boot、vivi、Blob、RedBoot、ARMboot 等成熟⼯具虽然移植起来简单快捷,但它们都存在着⼀定的局限性。DIY代码量短⼩,⽽且灵活性很⼤,最重要的是将来容易维护。3. 简述Bootloader的操作模式。Boot Loader的操作模式1. 启动加载(Boot Loading)模式

即Boot Loader从⽬标机的某个固态存储设备上将操作系统加载到RAM中运⾏,整个过程并没有⽤户的介⼊。2.下载(Down Loading)模式

当采⽤下载模式时,⽬标机的Boot Loader将通过串⼝连接、⽹络连接等通信⼿段从主机上下载⽂件4. Bootloader 分为⼏个阶段各阶段主要完成什么任务Boot Loader的阶段11.基本的硬件初始化

基本的硬件初始化是Boot Loader⼀开始就执⾏的操作,其⽬的是为了阶段2的内核的执⾏准备好⼀些基本的硬件环境。它执⾏的步骤如下。(1) 屏蔽所有的中断。

(2)设置处理器的速度和时钟频率。(3) 初始化RAM,(4) 初始化LED。

(5) 关闭处理器内部指令/数据缓存。2.加载阶段2的RAM空间

为了获得更快的执⾏速度,通常把阶段2加载到RAM空间中来执⾏3.复制阶段2到RAM

复制阶段2到RAM时要确定以下两点:

(1) 阶段2的可执⾏映像在固态存储设备的存放起始地址和终⽌地址。(2) RAM空间的起始地址。4.设置堆栈指针(SP)

栈指针的设置是为执⾏C语⾔代码作准备的。5.跳转到阶段2的C程序⼊⼝点Boot Loader的阶段2

阶段2的代码通常⽤C语⾔来实现,以便实现更复杂的功能和取得更好的代码可读性及可移植性。1. 初始化阶段2要使⽤的硬件设备2. 检测系统内存映射

所谓内存映射就是指整个物理地址空间中那些分配⽤来寻址系统的RAM单元。3. 加载内核映像和根⽂件系统映像(1) 规划内存占⽤的布局。(2) 从Flash上复制。4. 调⽤内核

所有硬件的设置完成之后,就可以跳转到内核,并开始运⾏内核了。4. 简述Bootloader stage1的任务。

定义⼊⼝。由于⼀个可执⾏的Image必须有⼀个⼊⼝点,并且只能有⼀个全局⼊⼝,通常这个⼊⼝放在ROM(Flash)的0x0地址,因此,必须使编译器知道这个⼊⼝。该⼯作可通过修改链接器脚本来完成。设置异常向量(Exception Vector)。

设置CPU的速度、时钟频率及终端控制寄存器。初始化内存控制器。

将ROM中的程序复制到RAM中。初始化堆栈。

转到RAM中执⾏,该⼯作可使⽤指令ldr pc来完成。5.简述Bootloader stage2的任务。调⽤⼀系列的初始化函数。初始化Flash设备。初始化系统内存分配函数。

如果⽬标系统拥有NAND设备,则初始化NAND设备。如果⽬标系统有显⽰设备,则初始化该设备。初始化相关⽹络设备,填写IP、MAC地址等。

进⼊命令循环(即整个boot的⼯作循环),接收⽤户从串⼝输⼊的命令,然后进⾏相应的⼯作。6. U-Boot是什么简述它的特点。

U-Boot是德国DENX⼩组开发的⽤于多种嵌⼊式CPU的Boot Loader程序,它可以运⾏在PowerPC、ARM、MIPS等多种嵌⼊式开发板上U-Boot作为ARM平台常⽤的引导程序,具有结构强⼤和功能强⼤的特点。

因篇幅问题不能全部显示,请点此查看更多更全内容