1. 请简述嵌⼊式系统的设计过程。嵌⼊式系统得设计过程:(1)系统定义与需求分析(2)系统设计⽅案的初步确⽴
(3)初步设计⽅案性价⽐评估与⽅案评审论证(4)完善初步⽅案、初步⽅案实施(5)软硬件集成测试
(6)系统功能性能测试及可靠性测试2. 简述ARM处理器的⼯作状态。ARM处理器的⼯作状态:
(1)ARM状态:32位,ARM状态下执⾏字对准的32位ARM指令;
(2)Thumb状态:16位,Thumb状态下执⾏半字对准的16位Thumb指令。在Thumb 状态下,程序计数器PC使⽤位1选择另⼀个半字。
3. 简述ARM处理器的7种运⾏模式及各⾃的⽤途。ARM处理器的7种运⾏模式:
(1)⽤户模式:正常⽤户模式,程序正常执⾏模式。
(2)FIQ模式:处理快速中断,⽀持⾼速数据传送或通道处理。(3)IRQ模式:处理普通中断。
(4)SVC模式:操作系统保护模式,处理软件中断。
(5)中⽌模式:处理存储器故障,实现虚拟存储器和存储器保护。
(6)未定义模式:处理未定义的指令陷阱,⽀持硬件协处理器的软件仿真。(7)系统模式:运⾏特权操作系统任务。4. 简述BLX、SWI、STM、LDM、MOV、MVN的含义。BLX: 带链接和状态切换的跳转指令SWI: 软件中断指令STM: 批量内存字写⼊指令LDM: 加载多个寄存器指令MOV: 数据传送指令MVN: 数据取反传送指令
5.请解释下列程序中的各条指令:.equ x, 45.equ y, 64
.equ stack_top,0x1000.global_start.text
_start:
mov sp, #stack_topmov r0, #xstr r0, [sp]mov r0, #yldr r1, [sp]add r0, r0, r1str r0, [sp]stop:b stop.end
.equ x, 45 /*定义变量x,并赋值为45 */.equ y, 64 /*定义变量y,并赋值为64*/.equ stack_top, 0x1000 /*定义栈顶0x1000*/.global_start /*声明全局变量*/
.text /*将操作符开始的代码编译到代码段*/_start: /*程序代码开始标志*/mov sp, #stack_top /*定义堆栈位置*/mov r0, #x /*x的值放⼊r0*/str r0, [sp] /*r0的值保存到堆栈*/mov r0, #y /*y的值放⼊r0*/ldr r1, [sp] /*取堆栈中的数到r1*/
add r0, r0, r1 /*将r0中的数和r1中的数相加的结构放⼊r0*/str r0, [sp] /*r0的值保存到堆栈*/stop:
b stop /*程序结束,进⼊死循环*/.end
6. 分析说明S3C44B0X的总线优先级顺序。(1)DRAM refresh controller(DRAM刷新控制器);(2) LCD_DMA(3) ZDMA0,1(4)BDMA0,1
(5) External bus master(外部总线控制器);(6) Write buffer(写缓冲区)(7)Cache 和CPU。
7. S3C44B0X中具有哪⼏个定时器?分别有哪些功能特性?
6个16位定时器:都可以⼯作在中断或DMA模式。定时器0、1、2、3、4有PWM功能,定时器5只是⼀个内部定时器⽽⽆输出引脚。PWM定时器特性为:
6个基于DMA或中断操作的16位定时器
3个8位预分频器,2个5位除法器和1个4位除法器。输出波形可编程的功率控制器(PWM)
⾃动重装或短脉冲模式(One-shot Pulse Mode)死区发⽣器1个看门狗定时器:
看门狗定时器具有以下特性:带中断请求的普通间隔定时器模式
当定时器计数值达到0时,内部复位信号被激活128MCLK周期8. S3C44B0X中功耗管理的5种模式是什么?S3C44B0X中功耗管理的5种模式:正常模式:正常运⾏模式;
低速模式:不加PLL 的低时钟频率模式;空闲模式:只停⽌CPU 的时钟;停⽌模式:停⽌所有的时钟;
LCD的SL空闲模式:SL 空闲模式的进⼊将导致LCD 控制器开始⼯作。此时,CPU和除LCD控制器外的所有外设都停⽌⼯作。
9. 简述BootLoader的作⽤。
Boot loader作⽤:系统引导程序,负责Linux内核的启动,⽤于初始化系统资源,包括SDRAM。这部分代码⽤于建⽴Linux内核运⾏环境和从Flash中装载初始化Ramdisk等。它⾸先完成系统硬件的初始化,包括时钟的设置、存储区的映射、堆栈指针的设置等;然后跳转到操作系统内核的⼊⼝,将系统控制权交给操作系统。10. 写出S3C44B0X的UART1的初始化设置程序代码。UART初始化程序:static int whichUart=0;void Uart_Init(int mclk,int baud){int i;If(mclk==0)mclk=MCLK;rUFCON1=0x0;rUMCON1=0x0;rULCON1=0x3;rUCON1=0x245;
rUBRDIC1=((int)(mclk/16./baud+0.5)-1);for(i=0;i<100;i++);
}
11 ARM常见的寻址⽅式有哪些?⽴即寻址寄存器寻址寄存器间接寻址基址加偏址寻址堆栈寻址块拷贝寻址相对寻址
12嵌⼊式系统软件的层次结构并简要介绍?嵌⼊式系统软件的层次结构:
驱动层程序:驱动层程序是嵌⼊式系统中不可缺少的重要部分,使⽤任何的外部设备都需要有相应驱动层程序的⽀持,他为上层软件提供了设备的操作接⼝。驱动层程序⼀般包括硬件抽象层HAL、板极⽀持包BSP和设备驱动程序。
实时操作系统RTOS:对于使⽤操作系统得嵌⼊式系统⽽⾔,操作系统⼀般以内核映像的形式下载到⽬标系统中。内核中通常必需的基本部件是进城管理、进程间通信、内存管理部分,其他部件如⽂件系统、驱动程序、⽹络协议等都可以根据⽤户要求进⾏配置,并以相关的⽅式实现。这样⼀来,整个嵌⼊式系统与通⽤操作系统类似,功能⽐不带有操作系统得嵌⼊式强⼤了很多。操作系统的应⽤程序接⼝API:API是⼀系列复杂的函数、消息和结构的集合体。在计算机系统中有很多可通过硬件或外部设备去执⾏的功能,这些功能的执⾏可通过计算机操作系统或硬件预留的标准指令调⽤。因⽽系统提供标准的API函数,可加快⽤户应⽤程序的开发,统⼀应⽤程序的开发标准,也为操作系统版本的升级带来了⽅便。
应⽤程序:⽤户应⽤程序主要通过调⽤系统的API函数对系统进⾏操作,完成⽤户应⽤功能开发。
13试述两种常见的ARM开发环境及其特点?两种常见的ARM开发环境及其特点:
ADS/SDT IDE开发环境:它由ARM公司开发,使⽤了CodeWarrior公司的编译器;
集成了GNU开发⼯具的IDE开发环境:它由GNU的汇编器as、交叉编译器gcc、和链接器ld等组成。14:S3C44B0X I2C总线接⼝操作有那四种操作⽅式?
S3C44B0X I2C总线接⼝操作的四种操作模式:1)主传送模式2)主接收模式3)从传送模式4)从接收模式
15:嵌⼊式系统的发展趋势
1.即将迎来以ARM为核⼼的32位浪潮
嵌⼊式系统应⽤的⾼低端:以4位、8位单⽚机或为控制器(MCU)为核⼼的嵌⼊式系统,早已⼴泛的应⽤于⼯业控制、军事、航空航天、家电等各个领域,极⼤地推动了IT技术的发展。⽬前这些属于最低端应⽤的嵌⼊式系统。这些低端应⽤市场范围⾮常⼴泛,局部带动了低端应⽤。
即将来临的32位浪潮:随着嵌⼊式系统的不断发展,当应⽤越来越复杂、使⽤范围越来越⼴时,8位处理器已经⽆法满⾜的需要,此时32位SoC为⾼性能嵌⼊式系统开发提供了功能丰富的硬件平台,也为实时嵌⼊式操作系统的⼴泛应⽤提供了硬件基础。因此,以32位处理器作为⾼性能嵌⼊式系统开发的核⼼已是嵌⼊式技术发展的必然趋势。
32位向ARM 转移,形成ARM市场主导地位:在嵌⼊式微处理器中,虽然有多种嵌⼊式处理器可供选择,但是ARM处理器核以其低功耗、⾼性能等突出优点已在32位嵌⼊式应⽤中稳居第⼀。ARM已成为移动通信、⼿持计算、多媒体数字消费等嵌⼊式解决⽅案事实上的标准。优良的性能和⼴泛的市场定位极⼤地增加和丰富了ARM的资源,加速了ARM处理器⾯向各种应⽤的系统芯⽚的开发和发展。2.嵌⼊式系统与Internet的融合:
为适应嵌⼊式分布处理结构和应⽤上⽹需求,⾯向21世纪的嵌⼊式系统要求配备标准的⼀种或多种⽹络通信接⼝。针对外部联⽹要求,嵌⼊设备必需配有通信接⼝,相应需要TCP/IP协议簇软件⽀持;由于家⽤电器相互关联(如防盗报警、灯光能源控制、影视设备和信息终端交换信息)及实验现场仪器的协调⼯作等要求,新⼀代嵌⼊式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接⼝,同时也需要提供相应的通信组⽹协议软件和物
理层驱动软件。为了⽀持应⽤软件的特定编程模式,如Web或⽆线Web编程模式,还需要相应的浏览器,如HTML、WML等。
3.未来嵌⼊式系统的发展趋势
近⼏年,在消费电⼦、⼯业应⽤、军事国防、⽹络设备等领域的嵌⼊式应⽤,为中提供了难得的发展机遇。另外,嵌⼊式技术⼜不断地刺激新的技术的产⽣——信息家电、医疗电⼦病历、微⼩型智能武器等⽅⾯应⽤也⽇益⼴泛,应⽤深度也进⼀步加强。
互联⽹的普及、微电⼦加⼯⼯艺的提⾼、3C技术的普遍融合、使⽤者需求的增多、信息服务应⽤的⽣活化、技术的渗透性和融合性、设备的关联性以及个性化服务的普遍需求。因⽽,移动化处理信息,即随时随地的获取信息、处理信息等,成为信息社会把握先机⽽制胜的必然武器。⽇益发展的嵌⼊式已能够满⾜⼈们随时随地利⽤任何设备和⼿段来接收、处理和发布信息的需求。低成本、低功耗的消费电⼦和宽带、⽆线通信以及处理运算的⾼效计算结合技术将进⼀步刺激和加速嵌⼊式技术的发展,造就更⼴阔的市场空间。
1、嵌⼊式系统的设计可以分成三个阶段:分析、设计和实现
2、⽬前使⽤的嵌⼊式操作系统主要有Windows CE/Windows Mobile Linux、uCos、和 Symbian
3、XScale微处理器使⽤的是ARM公司ARMV5TE版内核和指令集。
4、微处理器有两种总线架构,使⽤数据和指令使⽤同⼀接⼝的是冯诺依曼,分开的指令和数据接⼝、取指和数据访问可以并⾏进⾏的是哈佛结构
5、ARM微处理器有七种⼯作模式,它们分为两类⾮特权模式、特权模式。其中⽤户模式属于⾮特权模式
6、ARM核有两个指令集,分别是ARM、Thumb
7、ARM微处理器复位后,PC(R15)的地址通常是0X0,初始的⼯作模式是supervisor
8、在ARM体系构架中对复杂的内存管理是通过系统控制协处理器cp15 和MMU(存储管理部件)来进⾏的。当系统发⽣Data Abort(数据)异常和
Prefetch Abort(指令领取)异常时,异常处理程序透过嵌⼊式操作系统的内存管理机制,通过MMU交换物理内存和虚拟内存的页⾯,以保证程序正常执⾏。
9、构建嵌⼊式系统开发环境的⼯具链有多种,其中开放源码的⼯具链是GNU ⼯具链,ARM公司提供的⼯具链是ADS⼯具链1、写⼀条 ARM 指令,完成操作r1 = r2 * 4(4分)MOV R1,R2,LSL #3
2、初始值R2=5,R3=4,R4=3,执⾏指令SUBS R2,R3,R4,LSR #2后,寄存器R2,R3的值分别是多少?(4分)R2=3,R3=4
3、有如下程序段,画出程序流程图,并回答执⾏程序以后R0的值是多少。(8分)num EQU 2startMOV r0, #1MOV r1, #6MOV r2, #3BL arithfuncstopB stoparithfuncCMP r0, #numMOVHS pc, lrADR r3, JumpTableLDR pc, [r3,r0,LSL#2]JumpTable
DCD (.WORD) DoA ;注意:使⽤ADS开发⼯具⽤伪指令DCDDCD (.WORD) DoS ;使⽤GNU开发⼯具⽤伪指令.WORDDoA
ADD r0, r1, r2MOV pc, lrDoS
SUB r0, r1, r2
MOV pc,lrEND答:
R0为0执⾏DoA,R0为0执⾏DoS,流程图略。R0=5。
4、有程序段如下,实现下⾯流程图,试补充编写ARM汇编代码。(8分)程序段:MOV r0, #15MOV r1, #9start;补充代码stopB stopEND
程序:Start:CMP r0,r1SUBLT r1,r1,r0SUBGT r0,r0,r1BNE start
1、嵌⼊式开发环境主要包括哪些组件?
答:嵌⼊式系统开发需要交叉编译和在线调试的开发环境,主要包括●宿主机
●⽬标机(评估电路板)
●基于JTAG的ICD仿真器、或调试监控软件、或在线仿真器ICE
●运⾏于宿主机的交叉编译器和链接器、以及开发⼯具链或软件开发环境●嵌⼊式操作系统
2、ARM核中什么寄存器⽤于存储PC?R13通常⽤来存储什么?R14通常⽤来存储什么?
答:R15⽤于程序计数寄存器PC,R13通常⽤来做堆栈指针寄存器,R14通常⽤来做链接寄存器,保存函数调⽤的返回地址3、Boot Loader在嵌⼊式系统中主要起什么作⽤?完成哪些主要的⼯作?
答:Boot Loader是在嵌⼊式系统复位启动时,操作系统内核运⾏前,执⾏的⼀段程序。通过Boot Loader,初始化硬件设备,建⽴内存和I/O空间映射图,为最终加载操作系统内核调整好适当的系统软硬件环境。4、简述嵌⼊式系统的概念、组成及特点。
答:嵌⼊式系统是以应⽤为中⼼,以计算机技术为基础,采⽤可剪裁软硬件,适⽤于对功能、可靠性、成本、体积、功耗等有严格要求的专⽤计算机系统。
⼀般由嵌⼊式微处理器、外围硬件设备、嵌⼊式操作系统以及⽤户的应⽤程序等四个部分组成。其特点有●嵌⼊式系统通常是⾯向特定应⽤的
●嵌⼊式系统是将先进的计算机技术、半导体技术和电⼦技术与各个⾏业的具体应⽤相结合后的产物
●嵌⼊式系统的硬件和软件都必须⾼效率地设计,量体裁⾐、去除冗余●嵌⼊式系统和具体应⽤有机地结合在⼀起,它的升级换代也是和具体产品同步进⾏
●为了提⾼执⾏速度和系统可靠性,嵌⼊式系统中的软件⼀般都固化在存储器芯⽚或单⽚机本⾝中
●嵌⼊式系统本⾝不具备⾃举开发能⼒
5、搭建嵌⼊式开发环境,连接⽬标板,⼀般使⽤什么通信接⼝连接?在Windows 主机上使⽤什么软件建⽴连接?在Linux主机上使⽤什么软件建⽴连接?答:RS-232,以太⽹⼝、并⼝在Windows主机上使⽤超级终端软件在Linux主机上使⽤Minicom软件
6、进⾏基于ARM核的嵌⼊式系统软件开发时,调⽤如下函数:int do_something(int arg1,void *arg2,char arg3,int *arg4)则这四个参数通过什么⽅式从调⽤程序传⼊被调函数?
答:基于ARM核的嵌⼊式系统软件开发时,调⽤函数和⼦程序通过R0——R3四个寄存器传递参数,超过四个参数使⽤堆栈传递。因此arg1通过R0传⼊,arg2, 通过R1传⼊,arg3通过R2传⼊,arg4通过R3传⼊。1.⽤ARM汇编编写程序实现96位⼆进制加法的功能。(R8R7R6)+(R11R10R9)=(R5R4R3)
AREA ADDP CODE READONL YENTRY
ADDS R3,R6,R9ADCS R4,R10,R7ADC R5,R8,R11STOP ………….
2.BootLoader程序实现的主要功能
答:BootLoader是系统加电后、操作系统内核或⽤户应⽤程序运⾏之前,⾸先必须
运⾏的⼀段程序代码。通过这段程序,为最终调⽤操作系统内核、运⾏⽤户应⽤程序准备好正确的环境。
3.解释下列⼀段程序实现的功能,并注释每句语句。AREA COPYBS,CODE,READONL YENTRY
LDR R0,=SRC//将src的地址付给r0LDR R1,=DST//将dst的地址赋给r1MOV R2,#20 r2=20BCOPY
MOVS R3,R2,LSR,#3r2逻辑右移3位,值再赋给r3=2BEQ CWORD 等于0等时候跳到cword
OCOPY LDMIA R0!,{R4-R11} 赋值给r4到r11,块复制STMIA R1!,{R4-R11} 再由r4到r11写到⽬标地址SUBS R3,R3,#1 r3--BNE OCOPY 不等于0跳回ocopy复制两次CWORDANDS R2,R2,#7 剩下不⾜8个字符,如果等于0就结束BEQ STOP 程序WCOPY
LDR R3,[R0],#4 字符复制STR R3,[R1],#4SUBS R2,R2,#1BNE WCOPYSTOP …………..…………..
1.对⼀个字,存储时先存放低字节,再存放⾼字节(即低字节占低地址,⾼字节占⾼地址)。则该种存储格式为____A_________A,⼩端⽅式B,⼤端⽅式C,低端⽅式D,⾼端⽅式
2.ARM公司是专门从事___B________A,基于RISC技术芯⽚设计开发B,ARM芯⽚⽣产C,软件设计D,ARM芯⽚销售
3.哪个不是ARM微处理器的特点__D__________A,体积⼩,低功耗,低成本,⾼性能B,⼤多数数据操作都在寄存器中完成C,寻址⽅式灵活简单,执⾏效率⾼D,指令长度不固定
4.ARM微处理器为____C_____________A, 16位RISC架构B, 32位CISC架构C, 32位RISC架构D, 64位RISC架构
5.ARM7系列微处理器是____A_______A, 三级流⽔线结构B, 四级流⽔线结构C, 三级流⽔线结构D, 三级流⽔线结构
6.ARM9系列微处理器是__C___________A, 三级流⽔线结构B, 四级流⽔线结构C, 五级流⽔线结构D, 三级流⽔线结构
7.对于ARM7TDMI系列微处理器,下列叙述哪个是错误的 DA, ⽀持⽚上DebugB, ⽀持压缩指令集ThumbC, 内嵌硬件乘法器
D, 嵌⼊式ICE,但不⽀持⽚上断点和调试点8.下列叙述哪个是错误的 B
A, ARM指令为32位的长度,Thumb指令为16位长度
B,Thumb代码与等价的ARM代码相⽐较,⽤ARM指令要⽐Thumb指令节省30%-40% 以上的存储空间C, 使⽤Thumb代码的系统,其功耗要低D, Thumb指令的密度⾼
9.要使⽤WinCE或标准Linux嵌⼊式操作系统,ARM必须带有_A_________功能A MMUB MCUC MMCD MUM
10.ARM处理器⽀持以下__D_______数据类型A, 8位有符号和⽆符号字节B, 16位有符号和⽆符号字节C, 32位有符号和⽆符号字节D, A,B,C都可以
11.在ARM体系结构中,字的长度为___B_________位A 16位B 32位C 64位D 128位
12.嵌⼊式操作系统使⽤的保护模式是在ARM的___C_______模式下⼯作A 系统模式B 禁⽌模式C 管理模式D ⽤户模式
13.ARM处理器正常的程序执⾏状态是在_D__________模式下A 系统模式B 禁⽌模式C 管理模式D ⽤户模式
14.可以通过__B________异常中断机制仿真浮点向量运算A 指令预取中⽌B 未定义的指令C 软件中断(SWI)D 数据访问中⽌
15.在ARM状体下,异常IRQ,FIQ,预取中⽌的返回,使⽤的语句是__B_______A MOV PC,R14B SUBS PC,R14,#4C SUBS PC,R14,#8D SUBS PC,R14#1
16.在所有⼯作模式下,__A______都指向同⼀个物理寄存器,即各模式共享A R0-R7B R0-R12C R8-R12D R13,R14
17.寄存器R13在ARM指令中常⽤来表⽰__A__________A 堆栈指针B PC指针C ⼦程序返回指针D 当前程序状态
18.___C_________⽤作程序计数器(PC)A 寄存器R13B 寄存器R14C 寄存器R15D 寄存器R16
19.当异常发⽣时,寄存器__A__________⽤于保存CPSR的当前值,从异常退出时则可由它来恢复CPSR.A SPSRB R13C R14D R15
20.若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中⽌信号,但当预取的指令被执⾏时,就产⽣_B__________A 数据中⽌异常B 指令预取中⽌异常C 软件中断D 未定义指令异常
21.可使⽤___C______异常机制实现系统功能调⽤A 数据中⽌异常B 指令预取中⽌异常C 软件中断D 未定义指令异常
22.系统复位进⼊的⼯作模式是__A_________A 管理模式B 未定义模式C 中⽌模式D 定义模式
23.下列哪个叙说是错误的 B
A 满递增堆栈表⽰堆栈指针指向最后压⼊的数据,且由低地址向⾼地址⽣成B 只有跳转指令可以根据CPSR中条件码的状态有条件的执⾏C 指令AD
D RO,R1,R2的执⾏效果是将寄存器R1和R2的内容相加,其结果存放在寄存器R0中
D 直接向寄存器R15写⼊跳转地址值,可以实现程序的跳转24.下列哪条指令是错误的 BA ADD R0,R0 #0x3fB MOV R0,#0x3ffC LDR R0,[R1]D MOV R1,RO,LSL#3
25.能实现把⽴即数0X3FF5000保存在RO中的指令是__A___________A LDR R0, = 0X3FF5000B LDR RO, 0X3FF5000C MOV RO, 0X3FF5000D MOV RO, 0X3FF5000
26.指令LDR RO,[R1, #4]! 实现的功能是__B__________A R O←[R1+4]
B R O←[R1+4], R1←R1+4C R O←[R1], R1←R1+4D R O←[R1], R1←R1-4
27.ARM指令LDMIA RO,{R1, R2, R3,R4 }实现的功能是__A____________A R1←[R0],R2←[R0+4],R3←[R0+8],R4←[R0+12]B R1←[R0],R2←[R0-1],R3←[R0-2],R4←[R0-3]C R1←[R0],R2←[R0+1],R3←[R0+2],R4←[R0+3]D R1←[R0],R2←[R0-4],R3←[R0-8],R4←[R0-12]28.__D_________伪指令⽤于定义⼀个代码段或数据段A RLISTB DCBC MAPD AREA
29.____A______伪指令⽤于指定汇编程序的⼊⼝点A ENTRYB STARTC INITD MAIN
30.关于汇编语⾔与C/C++的混合程序叙述正确的是__D______A 汇编程序,C/C++程序间可以互相调⽤
B C/C++代码中可以嵌⼊汇编指令
C 在汇编程序和C/C++的程序之间可以进⾏变量的互访D 前A, B, C三项都对
31.ARM系统进⾏仿真,调试的接⼝电路是__A_________A JTAGB JATGC SPID IIC
32.在嵌⼊式系统按实时性需求分类,其中__D______实施性最好。A ⾮实时系统B 软实时系统C 硬实时系统
D 软实时系统和硬实时系统
33.BootLoader程序其中关键的系统初始化部分使⽤的编程语⾔是___D_________.A ARM汇编语⾔B Thumb汇编语⾔C C语⾔
D 汇编和C语⾔都可以
34.在上机实验中,ADS开发环境下,调试程序⽤__A_______软件。A AXDB DebugC GccD Make
35.ARM系统复位后,第⼀条执⾏的指令在_____A____________.A 00000000HB 00000004HC 00000008HD 由编程者确定
36.针对没有MMU的ARM芯⽚,其操作系统可以使⽤__C_________.A Windows CE ,LinuxB VxWork
C uClinux, Uc/OS-IID 以上都可以
37.在编译linux内核时,执⾏make romfs的⽬的是_C___________.A ⽤于寻找依存关系
B 消除以前构造内核时发⽣的所有⽬标⽂件C ⽣成romfs⽂件系统D 编译⽤户应⽤程序⽂件
38.⽤可编程逻辑技术把整个系统放到⼀块硅⽚上,称作可编程⽚上系统,简称__B_________A SOCB SOPCC MCUD FPGA
39._____B______主要⾯向⼩型嵌⼊式系统使⽤的操作系统。A VxworkB Windows CEC LinuxD Uc/OS II
40.在没有MMU管理的嵌⼊式系统中,其程序中访问的地址是__B__________.A 虚拟地址B 实际的物理地址C 映射的地址D A B C都对
41.对于uClinux操作系统,___B______使⽤虚拟内存管理技术。A 可以B 不可以C 由设定确定D 通过MMU
42.A TPCS定义了寄存器组中的_A________作为参数传递和结果返回寄存器。A R0,R1,R2,R3B R4,R5,R6,R7C R8,R9,R10,R11D A B C 都可以
43.在嵌⼊式芯⽚的接⼝中,其中_B________是⾳频接⼝。A IICB IISC SPID PWM
44.嵌⼊式系统开发系统使⽤的__A_______⽅式中,使⽤仿真头完全取代⽬标板上的CPU,在不⼲扰处理器的正常运⾏情况下,实时检测CPU的内部⼯作情况
A 基于JTAG的ICDB 在线仿真器ICEC 背景调试模式BDMD 软件模拟环境
45.嵌⼊式系统应⽤中,PWM信号可以___D_____________-A 实现设备间传递准确数据B 输⼊外部的模拟信号C 通过积分电路输出模拟信号D A B C都可以
46.嵌⼊式系统外部总线宽度的确定由__C__________A 全由芯⽚引脚确定B 全由内部寄存器软件设定
C 仅Ngcso(第0区)区域由芯⽚引脚确定D A B C都可以
47.⽤汇编指令对R15赋值,可以实现__A___________A 程序的跳转B 实现B指令功能C ⼦程序的返回D A B C都可以
48.嵌⼊式芯⽚的内核电源与⽚内I/O模块的电源是__C_________A 统⼀接在⼀起的
B 不同的,其中内核电源的电压要⾼C 不同的,其中I/O模块电源的电压要⾼D A B C都可以
49.内部的存储器管理控制器,是⽤于设定设定管理外接存储器的__C_________A 速度B 类型C 总线宽度shiftD A B C都可以
50.在设定好看门狗系统后,为了保证看门狗系统不复位系统,程序中___D__________.A 应该定期对看门狗系统的计数器进⾏清零操作B 应该定期设定看门狗系统C 应该定期关闭看门狗系统D A B C都可以
51.⽤于串⾏数据传输的标准接⼝是___A__________
A IICB IISC PS2D SIO
52.要使⽤触摸屏,系统需要有__C____________A UART模块B DMA模块C A/D转换模块D D/A模块
53.在选择嵌⼊式芯⽚时考虑要提⾼产品设计的灵活性,提⾼系统硬件的在线升级能⼒,考虑最好选择___A________什么类型的多核芯⽚。A ARM+DSPB ARM+FPGAC 多ARM核D A B C都可以
54.⼀般嵌⼊式芯⽚内的实时时钟RTC模块的计时脉冲来源于__A_________A CPU上振荡器信号B 外部振荡器信号C RTC⾃⼰的振荡器信号D A B C 都可以
55.嵌⼊式芯⽚内部的PLL模块的作⽤可以是____D___________A 把低频振荡器的输出作为⾃⼰的输⼊,输出的产⽣内核所需的⾼频信号B 把⾼频振荡器的输出作为⾃⼰的输⼊,输出的产⽣内核所需的低频信号C 实现振荡器功能,产⽣同步时钟D A B C都可以
56.在嵌⼊式芯⽚电源管理模式下,其中___B_______的功耗最低。A 空闲模式B 停⽌模式C 低速模式D 正常模式
57.在嵌⼊式Linux开发系统,微机与开发版通过串⼝连接,主要是⽤于_C_________A 下载应⽤程序B 下载操作系统映像⽂件
C 实现BootLoader的⼈机操作界⾯D 实现应⽤程序的⼈际操作界⾯
58.ARM汇编语⾔中,⼀常量8_5642也代表__B__________A 整数5642B 整数5642HC 整数Ox5642D 整数2978
59.⼀般嵌⼊式芯⽚的UART接⼝引脚___D_________.A 可以直接与微机RS232串⼝连接B A⽆法与微机RS232串⼝连接C 可以直接与RS485接⼝连接
D 可以通过相关转换芯⽚与RS232或RS485接⼝连接60指令MSR CPSR_C,R0实现的功能是___B__________A 传送R0的内容到CPSR中,更新CPSRB 传送RO的内容到CPSR中,但仅修改其控制域C 传送CPSR的内容到R0D 传送CPSR的控制域内容到R0
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、为什么在项⽬结束前需要进⾏项⽬讨论?
项⽬的讨论⼀个项⽬进⾏的反馈机制。通过这⼀个程序,项⽬团队的经验才可以被记录下来,也就是说,这是⼀个撰写项⽬历史的过程。
1、ARM7TDMI中的T、D、M、I的含义是什么?
64 位乘法指令(带M 后缀的)、⽀持⽚上调试(带D 后缀的)、⾼密度 16 位的Thumb指令机扩展(带T 后缀的)和EmbededICE 观察点硬件(带I 后缀的)2、ARM7TDMI采⽤⼏级流⽔线?使⽤何种存储器编址⽅式?三级流⽔线(取指译码执⾏);使⽤了冯·诺依曼(Von Neumann )结构,指令和数据共⽤⼀条32 位总线。3、ARM处理器模式和ARM处理器状态有何区别?
处理器模式指的是处理器在执⾏程序时在不同时刻所处的不同状态,处理器状态指的是处理器当前所执⾏的指令集。4、分别列举ARM的处理器模式和状态。状态:
ARM 状态 32 位,这种状态下执⾏的是字⽅式的ARM 指令Thumb 状态 16 位,这种状态下执⾏半字⽅式的 Thumb 指令模式:
⽤户模式、快中断模式、中断模式、管理模式、中⽌模式、未定义模式和系统模式。5、PC和LR分别使⽤哪个寄存器?PC使⽤R15寄存器,LR使⽤R14寄存器6、R13寄存器的通⽤功能是什么?堆栈
(1)ARM7TDMI(-S)有⼏种寻址⽅式?LOR R1,[R0,#0x08]属于哪种寻址⽅式?1. 寄存器寻址;2. ⽴即寻址;3. 寄存器移位寻址;4. 寄存器间接寻址;5. 基址寻址;6. 多寄存器寻址;7. 堆栈寻址;8. 块拷贝寻址;
9. 相对寻址;LOR R1,[R0,#0x08]属于基址寻址。
(2)ARM指令的条件码有多少个?默认条件码是什么?16条,默认条件码是AL。
(3)ARM指令中第⼆个操作数有哪⼏种形式?举例5个8位图⽴即数。(1) ⽴即数;(2) 寄存器;(3) 寄存器及移位常数;
0x3FC(0xFF<<2)、0、0xF0000000(0xF0<<24)、200(0xC8)、0xF0000001(0x1F<<28)。
(4)LDR/STR指令的偏移形式有哪4种?LDRB和LDRSB有何区别?
(1) 零偏移;(2) 前索引偏移;(3) 程序相对偏移;(4) 后索引偏移。LDRB 就是读出指定地址的数据并存⼊指定寄存器,LDRSB读出指定地址的数据,并⾼24位⽤符号位扩展,再存⼊指定寄存器。(5)请指出MOV指令与LDR加载指令的区别及⽤途。
MOV 将 8 位图(pattern)⽴即数或寄存器(operand2)传送到⽬标寄存器(Rd),可⽤于移位运算等操作。读取指定地址上的存储器单元内容,执⾏条件AL. (6)CMP指令的操作是什么?写⼀个程序,判断R1的值是否⼤于0x30,是则将R1减去0x30。CMP 指令将寄存器Rn 的值减去operand2 的值,根据操作的结果更新CPSR 中的相应条件标志位,以便后⾯的指令根据相应的条件标志来判断是否执⾏。CMP R1,0x30SUBHI R1,R1,0x30
(7)调⽤⼦程序是⽤B还是⽤BL指令?请写出返回⼦程序的指令?BL 指令⽤于⼦程序调⽤。MOV PC, R14
(8)请指出LDR伪指令的⽤法。指令格式与LDR加载指令的区别是什么?
LDR 伪指令⽤于加载 32 位的⽴即数或⼀个地址值到指定寄存器。第⼆个数为地址表达式。(9)ARM状态与Thumb状态的切换指令是什么?请举例说明。BX指令,
(10)Thumb状态与ARM状态的寄存器有区别吗?Thumb指令对哪些寄存器的访问受到⼀定限制?Thumb状态下不能更新CPSR 中的ALU 状态标志。,Thumb指令对R8~R15寄存器访问受限。(11)Thumb指令集的堆栈⼊栈、出栈指令是哪两条?PUSH POP
(12)Thumb指令集的BL指令转换范围为何能达到±4MB?其指令编码是怎样的?
Thumb 采⽤两条16 位指令组合成22 位半字偏移(符号扩展为32 位),使指令转移范围为±4MB。2 有符号和⽆符号加法
下⾯给出A 和B 的值,您可先⼿动计算A+B,并预测N、Z、V 和 C 标志位的值。然后修改程序清单4.1 中R0、R1 的值,将这两个值装载到这两个寄存器中(使⽤LDR 伪指令,
如LDR R0,=0x FFFF0000),使其执⾏两个寄存器的加法操作。调试程序,每执⾏⼀次加法操作就将标志位的状态记录下来,并将所得结果与您预先计算得出的结果相⽐较。如果两个操作数看作是有符号数,如何解释所得标志位的状态?同样,如果这两个操作数看作是⽆符数,所得标志位⼜当如何理解?0xFFFF000F 0x7FFFFFFF 67654321 (A)
+ 0x0000FFF1 + 0x02345678 + 23110000 (B) 结果: ( ) ( ) ( )3 数据访问
把下⾯的 C 代码转换成汇编代码。数组 a 和b 分别存放在以 0x4000 和0x5000 为起始地址的存储区内,类型为long(即32位)。把编写的汇编语⾔进⾏编译连接,并进⾏调试。for (i=0; i<8; i++){ a[i] = b[7-i];}
程序清单4.1寄存器相加;⽂件名:TESTI.S
;功能:实现两个寄存器相加;说明:使⽤ARMulate软件仿真调试
AREA Examplel,CODE,READONLY ;声明代码段ExamplelENTRY ;标识程序⼊⼝CODE32 ;声明32位ARM指令START MOV R0,#0 ;设置参数MOV R1,#10
LOOP BL ADD_SUB ;调⽤⼦程序ADD_SUB B LOOP ;跳转到LOOPADD_SUB
ADDS R0,R0,R1 ;R0=R0+R1MOV PC,LR ;⼦程序返回END ;⽂件结束
程序清单4.2 读取SMI⽴即数T_bit EQU 0X20SWI_Handler
STMFD SP!,{R0_R3,R12,LR} ;现场保护MRS R0,SPSR ;读取SPSRSTMED SP!,{R0} ;保存SPSRTST 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_IRQMRS R0,CPSRBIC R0,R0,#0x80MSR CPSR_C,R0MOV PC,LR
程序清单4.4禁能IRQ中断DISABLE_IRQMRS R0 CPSRORR R0,R0,#0x80MSR CPSR_C,R0MOV PC,LR
程序清单4.5堆栈指令初始化
因篇幅问题不能全部显示,请点此查看更多更全内容