嵌入式资料考试题库_第1页
嵌入式资料考试题库_第2页
嵌入式资料考试题库_第3页
嵌入式资料考试题库_第4页
嵌入式资料考试题库_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 一、填空题1、哈佛体系结构数据空间和地址空间(分开) ,arm920t 采用(哈佛 )的内核架构。2、 arm7tdmi 采用( 3 )级流水线结构,arm920tdmi 采用( 5 )级流水线。3、arm7tdmi 中, t 表示支持16 位 thumb指令集, d表示(在片可调式) ,m表示内嵌乘法器multiplier,i 表示(嵌入式 ice ) ,支持在线断点和调试。4、“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。5、arm 处理器共有37 个寄存器, 31 个通用寄存器,6 个状态寄存器。寄存器r13通常用作堆栈指针,称作sp 。寄存器r14用作子程序链接

2、寄存器,也称为链接寄存器lk (link register) 。6、程序状态寄存器cpsr 的 n、z、c、v分别指 - ,i=1 指 - 禁止 irq 中断 - 、f=1指- 禁止 fiq 中断 - ,m4:0 用做 - 处理器模式选择- 。7、arm 微处理器支持四种类型的堆栈,即:满递增堆栈、满递减堆栈、空递增堆栈、空递减堆栈。8、arm 微处理器有 7 种工作模式,它们分为两类特权模式、 非特权模式。其中用户模式属于非特权模式9、arm 支持两个指令集, arm核因运行的指令集不同,分别有两个状态 arm状态、thumb 状态,状态寄存器cpsr 的 t (或者填 d5 )位反映了处理

3、器运行不同指令的当前状态10、arm 处理器有两种总线架构,数据和指令使用同一接口的是冯诺依曼结构,数据和指令分开使用不同接口的是哈佛结构11、arm 核有多个寄存器,其中大部分用于通用寄存器,有小部分作为专用寄存器, r15 寄存器用于存储pc ,r13通常用来存储 sp (或者填堆栈指针)12、编译链接代码时,有两种存储代码和数据的字节顺序,一种是小端对齐,另一种是大端对齐13、不同的中断处理不同的处理模式,具有不同的优先级,而且每个中断都有固定的中断入口地址。当一个中断发生时,相应的r14存储中断返回地址,spsr存储状态寄存器cpsr的值。14、嵌入式微处理器有嵌入式微处理器、嵌入式微

4、控制器、曲入式dsp处理器和嵌入式片上系统四种类型。15、arm9tdmi 采用 5 级流水线:取指、译码、执行、访存和写回。16、amba 总线结构包括asb 、ahb和 apb总线。 asb/ahb用于 cpu与存储器、 dma 控制器、总线仲裁控制器等片上系统中芯片的连接,apb用于连接低速的外围设备。17、函数的参数传递方法有两种:r0r3寄存器和 堆栈2 二、指令解析1、ldr r0,r1 ; 从 r1 寄存器指向的地址中取出一个字的数据,存储到r0寄存器中2、 str r0,r1 , 8 ;将 r0中的字数据写入r1为地址的存储器中,并将新地址r1 8 写入 r1 3 、 adds

5、 r1,r1,#1 ;r1+1给 r1 4、 ldmfd r13! ,r0,r4-r12,pc ;将堆栈内容恢复到寄存器(r0 ,r4 到 r12,lr) 。5、初始值 r1=23h ,r2=0fh执行指令bic r0 , r1,r2,lsl #1 后,寄存器r0,r1的值分别是多少? r0=21h, r1=23h, r2=1eh 6、写一条 arm 指令,完成操作r1 = r2 * 3(4 分)add r1, r2, r2 lsl #1 7、说明指令stmia r12!, r0-r11的操作功能。 (4 分)将 r0-r11十二个寄存器中的32 位数据, 存储到 r12地址指针为起始地址的内

6、存中,地址的操作方式是先操作、后增加,并更新地址。8、add r0,r0 ,#1 ;将 r0+1的结果送r0是保存9、add r0,r1 ,r2 ; 将以 r2中的内容为地址的单元中的值与r1相加,结果送r0保存10、ldr r0,r1+4 ;指令实现的功能是将r1的内容加4 后送 r0 4ldr r0,r1+4 !;将 r1的内容加4 后送 r0 ,然后 r1的内容自增4 个字节5b lable ; 程序无条件跳转到标号lable 处执行6mov r1,r0 ;指令实现的功能是将寄存器r0的值传送到寄存器r1 7cmp r1,r0 ; 寄存器 r1的值与寄存器r0的值相减,根据结果设置cps

7、r的标志位8cmn r1,r0 ; 将寄存器r1的值与寄存器r0的值相加,根据结果设置cpsr 的标志位9orr r0,r0 ,#3 ;该指令设置r0的 0、1 位,其余位保持不变10mrs r0,spsr ;传送 spsr的内容到r0 11cmp r1,r2 ; 寄存器 r1的值与寄存器r2的值相减,根据结果设置cpsr 的标志位12mrs r0 ,cpsr ;传送 spsr 的内容到r0 13mov r2,r0 ;将寄存器r0的值传送到寄存器r2 14add r1,r1,#3 ;将 r1+3的结果送r1是保存15add r2,r1,r0 ;将以 r0中的内容为地址的单元中的值与r1相加,结

8、果送r2保存16ldr r1,r0+4 ; 将 r1的内容加4 后送 r0 17ldr r1,r0+4 !;将 r1的内容加4 后送 r0,然后 r1的内容自增4 个字节。18and r0,r0,#3 ;保持 r0的 0、1 位,其余位清零19b 0 x1200 ; 程序无条件跳转到0 x1200 处执行20cmn r1,r2 ; 将寄存器r1的值与寄存器r2的值相加,并根据结果设置cpsr 的标志位三、看图回答1、下图是 arm9 处理器的当前程序状态寄存器,请简单说明各位的功能。3 nvczf tim4m1m2m3167312043m05282930278arm7 当前程序状态寄存器n:负

9、标志位,运算结果的第31 位值,记录标志设置的结果。z:零标志位,如果标志设置操作的结果为0,则置位。c:进位标志位,记录无符号加法溢出,减法无错位,循环移位。v:溢出标志位,记录标志设置操作的有符号溢出。i :中断禁止标志位,置位时禁止irq 中断,否则允许irq 中断使能。f:中断禁止标志位,置位时禁止fiq 中断,否则允许fiq 中断使能。t:控制位,置位时处理器运行在thumb状态下,清零时处理器运行在arm 状态下。m0m4 :模式控制位,定义处理器的7 中模式。其余位为保留位,留作将来使用。2、阅读下列与看门狗有关的寄存器描述,解释每一行代码的功能。wtcnt x53000008

10、读/ 写看门狗计数器当前值0 x8000 #define rwtcon (*(volatile unsigned *)0 x53000000) / 第1行#define rwtdat (*(volatile unsigned *)0 x53000004) / 第2行#define rwtcnt (*(volatile unsigned *)0 x53000008) / 第3行void watchdog_test(void) rwtcon = (pclk/1000000-1)8)|(33)|(12); / 第4行rwtdat = 7812; / 第5行rwtcnt = 7812; / 第6行rw

11、tcon |=(10 四、简答题1、根据嵌入式系统的特点,写出嵌入式系统的定义。答 :嵌入式系统是以应用为中心,以计算机技术为基础,软/硬件可裁减,功能。可靠性,成本,体积,功耗要求严格的专用计算机系统。2、嵌入式系统的主要应用领域有哪些?3、什么是 risc?什么是cisc?答:risc是英文 reduced instruction set computer的缩写,汉语意思为 精简指令系统计算机 。相对应的 cisc就是复杂指令系统计算机 的意思。cpu 从指令集的特点上可以分为两类:cisc和 risc 。4、arm9tdmi中的 t、 d、 s、i 分别表示什么含义?答: t 表示支持1

12、6 位 thumb指令集,d表示 在片可调式 (debug) , m表示内嵌乘法器multiplier,i 表示嵌入式ice ,支持在线断点和调试。4、arm 处理器模式和arm 处理器状态有什么区别?答: (1) arm7t arm 体系结构支持7 种处理器模式 ,分别为: 用户模式、 快中断模式、 中断模式、管理模式、中止模式、未定义模式和系统模式。(2) arm 处理器状态:arm 状态、 thumb 状态。(3) 两种处理器状态都有这7 种处理器模式;两个状态之间切换并不影响处理器模式或寄存器内容。5、arm9tdmi有几种寻址方式?答:立即寻址、寄存器寻址、基地址变址寻址、寄存器偏移

13、寻址、寄存器间接寻址、多寄存器寻址6、arm9 的内部寄存器r13、r14、r15 的主要功能和作用?5 7、fiq、irq 有什么不同?向量irq 和非向量irq 有什么不同?答: (1) fiq 的优先级比irq 高,对外部事件响应比irq 快。(2) a:向量irq 具有中等优先级,对外部事件响应比较及时;非向量irq 优先级最低 ,中断延迟时间比较长。b:向量 irq 能为每个向量irq 中断源设置服务程序地址;而所有的非向量irq 中断都共用一个相同的服务程序入口地址。8、arm9tdmi支持哪几种指令集,各有什么特点?9、arm9tdmi有几种处理器模式,简单介绍该几种模式的工作特

14、点?答: p45 arm7t arm 体系结构支持7 种处理器模式1.用户模式:正常处理程序时的模式2.快中断模式:响应快速中断时的处理模式3.中断模式:响应普通中断时的模式4.管理模式:操作系统的保护模式5.中止模式:指令或数据预取操作中止时的模式,该模式下实现虚拟存储器或存储器保护6.未定义模式:当执行未定义的指令时进入该模式7.系统模式:运行特权操作系统任务时的模式10、arm9tdmi采用了几级流水线工作方式,简要说明。11、arm9tdmi支持的数据类型有几种?各有什么要求?12、arm920t 体系结构支持哪两种方法存储字数据?13、arm920t 体系结构所支持的哪几种异常?说明

15、其具体含义。6 14、简述 arm 处理器对异常的响应的步骤。15、简述 arm 处理器从异常返回的步骤16、写出基于arm920t核的处理器的异常优先级(exception priorities ) 。17写出基于 arm920t 核的处理器的 异常向量( exception vectors) 及异常进入的模式7 18画出采用大端格式存放01020304h 的存储器示意图。19画出采用小端格式存放05060708h 的存储器示意图。20、arm920t 有哪些运行模式,其中哪些属于特权模式?21、用 arm 汇编指令写出实现64 位加法和 64 位减法的代码段,使用的寄存器请自行分配假定低

16、32 位数存放在r0 和 r1 里面,高 32 位数存放在r2 和 r3 里面。答:加法: adds r0, r0, r1 /加 s是因为要让这个操作影响标志位adc r2, r2, r3 /adc 是带进位的加法,如果上一条指令产生进位则一起加进来减法: subs r0, r0, r1 /加 s 是因为要让这个操作影响标志位sbc r2, r2, r3 / sbc 是带进位的减法指令22、s3c2410 支持几种引导方式(或者说是内存映射方式)?简述 nand引导方式 s3c2410硬件做的事情。1)nor flash启动方式。 2 )nand flash启动方式。从 nand flash

17、启动时, s3c2410首先会执行固化在片上rom 中的一段小程序,这段程序负责将 nand flash前 2k的代码搬移到片上ram ,然后将 pc指针指向 0 x0 地址(注意这个时候片上ram 被映射到 0 x0 的起始地址)23、arm 微处理器内核是如何进行异常处理的?答: 1)当异常产生时,arm 内核拷贝cpsr到 spsr_,设置适当的cpsr位:改变处理器状态进入arm 态, 改变处理器模式进入相应的异常模式,设置中断禁止位禁止相应中断( 如8 果需要 ) ;保存返回地址到lr_ ,设置pc为相应的异常向量。2)返回时,异常处理需要从 spsr_恢复 cpsr ,从 lr_

18、恢复 pc ,注意 : 这些操作只能在arm 态执行。24、arm 提供的可执行映像文件的模板包括哪3 个生成目标?各包含什么调试信息?答: arm 提供的可执行的映像文件的模板包括了下面3 个生成目标:1)debug使用本生成目标生成的映像文件中包含了所有的调试信息,用于在开发过程中使用;2)2)release 使用本生成目标生成的映像文件中不包含调试信息,用于生成实际发行的软件版本;3)debugrel 使用本生成目标生成的映像文件中包含了基本的调试信息。25、为什么需要嵌入式操作系统?答:嵌入式系统与一般的系统不同,设计成为执行特定的操作,但是初期的嵌入式系统比较单纯, 不需要特殊的操作

19、系统,由人来编写程序并顺序执行,只有当中间发生中断时才会暂时脱离此顺序程序。过去的嵌入式系统主要与简单而顺序的操作有关,使用操作系统成为浪费和不必要的举措。但是最近的嵌入式系统领域中系统本身相当庞大,网络和多媒体成为系统的基本功能, 嵌入式系统要做的事情既多又复杂,顺序程序的操作变得越来越难。因而在嵌入式系统中出现了操作系统的概念,要满足其实时的要求,进而产生了实时操作系统。26、 简述 c/os-操作系统的移植条件。答:要使 c/os ii能正常运行,处理器必须满足以下要求。(1)处理器的c 编译器能产生可重入代码可重入代码是指可以被多个任务同时调用,而不会破坏数据的一段代码;或者说代码具有

20、在执行过程中打断后再次被调用的能力。(2)处理器支持中断,并且能产生定时中断。arm 处理器支持中断并能产生定时中断。(3)c 语言可以开 / 关中断arm 处理器核包含一个cpsr 寄存器,该寄存器包括一个全局中断禁止位,控制它打开和关闭中断。(4)处理器支持一定数量的数据存储硬件堆栈对于一些只有10根地址线的 8位控制器,芯片最多可访问1kb 存储单元,在这样的条件下移植是比较困难的。(5)处理器有将堆栈指针以及其他cpu 寄存器的内容读出并存储到堆栈或内存中去的指令arm 处理器中汇编指令stmfd 可以将所有寄存器压栈,对应的也有一个出栈指令ldmfd 。27、简要说明嵌入式操作系统多

21、任务通讯的常用方式。答:多任务通讯的方式:a) 共享内存,主要是数据的共享;b)信号量,用于基本的互斥和任务同步; c) 消息队列和管道,单cpu的消息传送; d)socket和远程过程调用,用于网络间任务消息传送。28、嵌入式开发环境主要包括哪些组件?嵌入式系统开发需要交叉编译和在线调试的开发环境,主要包括1 宿主机 2 目标机(评估电路板) 3 基于 jtag的 icd仿真器、或调试监控软件、或在线仿真器 ice。4 运行于宿主机的交叉编译器和链接器、以及开发工具链或软件开发环境。 5嵌入式操作系统29、在进行基于arm 核的嵌入式系统软件开发时,调用如下函数:int do_somethi

22、ng(int arg1,void *arg2,char arg3,int *arg4) 这四个参数通过什么方式从调用程序传入被调函数?根据 atpcs编程规范,调用函数和子程序通过r0r3 四个寄存器传递参数,9 超过四个参数使用堆栈传递。 因此 arg1通过 r0 传入, arg2, 通过 r1 传入,arg3通过 r2 传入, arg4通过 r3 传入30、简述 mmu 的含义及主要工作。答: mmu ,也就是“内存管理单元”(memory management unit ) 。其主要作用是两个方面:一是地址映射;二是对地址访问的保护和限制。31、arm9tdmi 核中 tdmi的基本含义

23、是:p42 t 表示支持16 位 thumb指令集, d表示在片可调式(debug) ,m表示内嵌乘法器multiplier,i 表示嵌入式ice ,支持在线断点和调试。32、简述 arm 微处理器支持的指令集。arm 微处理器支持32 位的 arm 指令集和 16 位的 thumb指令集。 arm 指令集效率高,但代码密度低; thumb指令集具有较高的代码密度,可保持arm 的大多数性能上的优势,可看做是arm 指令集的子集。arm 程序和 thumb程序可以相互调用,且没有状态切换开销。33、解释以下标识符的作用33、描述嵌入式系统中存储系统结构,存储器分类以及各类存储器的常规用途分类:

24、随机存储器(ram ) :方便读写,但掉电后信息丢失。只读存储器( rom ) :读取方便,但写入需要特殊时序,掉电后信息不丢失。34、最小系统框图原理时钟模块:为arm 工作提供时钟复位模块:实现复位jtag:实现代码的下载与调试uart :实现对调试信息的终端显示flash 模块:存放启动代码,操作系统,用户程序sdram 模块:为程序提供存储空间五、编程题1用汇编语言编写程序读取存储器0 x40003100 地址上的数据,将数据加1,若结果小于10 则使用str 指令把结果写回原地址,若结果大于等于10,则把 0 写回原地址。寄存器cache 主存储器辅助存储器10 2、用汇编语言调用c

25、 语言实现n 个数相加, n 为 c 函数的参数,由汇编语言传递,结果存放在r5寄存器中。c 程序:2.3 汇编指令实验2 x equ 11 y equ 8 bit23 equ (1y)z=100; ;else z=50; 11 mov r0,#76 mov r1,#243 cmp r0,r1 movhi r2,#100 movls r2,#50 ;for(i=0;i10;i+) ; x+ ; mov r0,#0 mov r2,#0 for_l1 cmp r2,#10 bhs for_end add r0,r0,#1 add r2,r2,#1 b for_l1 for_end nop ;whi

26、le(x0); mov r0,#5 dowhile_l1 add r0,r0,#-1 dowhile_l2 movs r0,r0 bne dowhile_l1 dowhile_end nop ;switch(key&0 x0f) ; case0: ; case2: ; case3: x=key+y; ; break; ; case5: x=key-y; ; break; ; case7: x=key-y; ; break; ; default:x=168; ; break; ; mov r1,#3 mov r2,#2 switch and r2,r2,#0 x0f case_0 cmp

27、 r2,#0 case_2 cmpne r2,#0 case_3 cmpne r2,#0 bne case_5 add r0,r2,r1 b switch_end case_3 cmp r2,#5 bne case_7 sub r0,r2,r1 b switch_end case_7 cmp r2,#7 bne default mul r0,r2,r1 b switch_end defult mov r0,#168 switch_end nop half b half end 2.6 c 语言程序实验#define unit8 unsigned int #define unit32 unsig

28、ned int #define n 100 unit32 sum; void main(void) unit32 i; sum=0; 12 for(i=0;i=n;i+) sum+=i; while(1); 汇编 import |image$ro$limit| import |image$rw$base| import |image$zi$base| import |image$zi$limit| import main area start,code,readonly entry code32 rest ldr sp,=0x40003f00 ldr r0,=|image$ro$limit|

29、ldr r1,=|image$rw$basee| ldr r3,=|image$zi$base| cmp r0,r1 beq loop1 loop0 cmp r1,r3 ldrcc r2,r0,#4 strcc r2,r1,#4 bcc loop0 loop1 ldr r1,=|image$zi$limit| mov r2,#0 loop2 cmp r3,r1 strcc r2,r3,#4 bcc loop2 b main end 272.8 gpio 输出控制实验#include config.h #define led1_con (111) #define led2_con (112) #

30、define led3_con (14) #define led4_con (16) #define beep (10; dly-) for(i=0; i50000; i+); / 控制蜂鸣器be的一声void runbeep(void) rgphdat=rgphdat&beep_mask; /beep=0 delayns(5); rgphdat=rgphdat|beep; beep=1 delayns(5); /控制 led1led4 全部点亮void led_dispallon(void) rgphdat=rgphdat|(0 x0311); rgphdat=rgphdat|(0

31、x054); / 控制 led1led4 全部熄灭void led_dispalloff(void) rgphdat=rgphdat&(0 x0311); rgphdat=rgphdat&(0 x054); /控制 led1led4显示指定16 进制数值。led4为最高位, led1为最低位点亮表示该位为1 void led_dispnum (unit32 dat) dat=dat&0 x0000000f; /参数过滤 /控制 led4,led3显示( d3,d2 位)if(dat&0 x08)rgphdat=rgphdat|(0x0116); else rgp

32、hdat=rgphdat&(0x0116); if(dat&0 x04)rgphdat=rgphdat|(0x014); else rgphdat=rgphdat&(0x014); 13 /控制 led2,led1显示( d1,d0 位)rgphdat=(rgphdat&(0x0311)|(dat&0 x03)11); 初始化 i/0 ,然后控制led显示int main(void) int i; 初始化i/0 rgpecon=(rgpecon&(0x0f22)|(0x0522); rgphcon=(rgpecon&(0x338)|(0x

33、118); rgphcon=(rgpecon&(0x0320)|(0x5120); 控制 led显示while(1) runbeep(); /蜂鸣器响一声 led全闪烁 5 次 for(i=0;i5;i+) led_disalloff();/ led全熄灭 delayns(5); led_disallon();/led全点亮 delayns(5); 控制 led指示 0f 的十六进制数值 for(i=0;i16;i+) led_disnum(i);/显示数值i delayns(5); return(0); 2.9gpio 输入控制实验#include config.h #define

34、key_con (14) #define beep (10; dly-) for(i=0; i50000; i+); int main(void) rgpfcon=(rgpfcon&(0 x038); rgphcon=(rgphcon&(0 x0320)|(0 x0120); while(1) if(rgpfdat&key_con) rgphdat=rgphdat|beep; else rgphdat=rgphdat|beep_mask; delayns(1); return(0); 2.10 外部中断实验#include config.h #define led1_c

35、on (111) #define led2_con (112) #define led3_con (14) #define led4_con (16) #define key_con (10; dly-) for(i=0; i50000; i+); 14 void irq_eint4(void) int i; rgpfcon=rgpfcon&(0 x038); for(i=0;i10000;i+); if(rgpfdat&key_con) rgpfcon=rgpfcon|(0 x028); reintpend=(14); rsrcpnd=(14); rintpnd=rintpn

36、d; return; rgpfcon=rgpfcon|(0 x028); if(ledcon) ledcon=0; rgpedat=rgpedat&(led1_con); else ledcon=1; rgpedat=rgpedat|led1_con; reintpend=(14); rsrcpnd=(14); rintpnd=rintpnd; void eint_init(void) rgpfcon=(rgpfcon&0 xfffffcff)|(0 x028); rextint0=(0 x0216); vicvectaddr4=(uint32)irq_eint4; rpriority=0 x00000000; rintmod=0 x00000000; rintmsk=0 x00000010; reintmask=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论