文档库 最新最全的文档下载
当前位置:文档库 › 嵌入式系统ARM9 期末考试考试题

嵌入式系统ARM9 期末考试考试题

ARM复习题
2009-11-24 13:17
第一章
1.嵌入式系统:“以应用为中心,以计算机技术为基础,软硬件可裁减,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统”。
2.嵌入式系统与通用PC机的区别:1、通用计算机?? 沿着“高运算速度、高存储量”方向发展,因此,通用微处理器是沿着以Intel公司产品为主导的8086、80286、80386、80486、Pentium、Pentium II、Pentium III、Pentium 4的路线发展,其主频从几MHz发展到现在的3GHz,字长从8位发展到64位,内存从几十KB到现在的GB,存储容量从从几十KB到现在的数百GB。
2、嵌入式系统?? 根据应用的要求,沿着“体积小、低功耗、高可靠”方向发展,对运算速度、存储容量没有统一要求。三要素:嵌入、专用、计算机。
3.嵌入式系统有哪些部分组成:粗略划分:嵌入式处理器、外围设备、嵌入式操作系统(可选)、嵌入式应用软件 稍细划分:嵌入式处理器、外围设备、驱动程序、嵌入式操作系统、应用接口、嵌入式应用软件
4.嵌入式系统特点:①嵌入式系统是面向具体应用的产品②嵌入式系统软件、硬件生命周期都比较长,有继承性③需要软硬件开发工具和系统软件④需要应用专家参与开发⑤嵌入式系统分散而不可垄断。
5.嵌入式系统分类:按表现形式(硬件范畴):芯片级嵌入(含程序和算法的处理器、单片机);模块级嵌入(系统中的某个核心模块);系统级嵌入(系统中的电路板)按实时性要求(软件范畴) :非实时系统(PDA);软实时系统(消费类产品);硬实时系统(导引头等工业和军工系统)
6. 嵌入式微处理器(MPU):就是和通用计算机的处理器对应的CPU,可以认为是“增强型”通用微处理器 。嵌入式微控制器(MCU):就是将整个计算机系统的主要硬件集成到一块芯片中,芯片内部集成ROM/EPROM、RAM、总线,总线逻辑、定时/计数器、Watchdog、I/O、串行口、A/D等各种必要功能和外设。嵌入式片上系统(SOC):是追求产品系统最大包容的集成器件。绝大多数系统构件都在一个系统芯片内部。嵌入式可编程片上系统(SOPC):是用可编程逻辑技术把整个系统放到一块硅片上。嵌入式DSP是专门用于信号处理方面的处理器,在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令执行速度。
第二章
1.ARM:是Advance RISC Machine 的缩写,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
2.在ARM9TDMI “9TDMI”的含义: 9:采用版本为9的ARM微处理器 T:支持16为压缩指令集Thumb,称为

T变种具D: 支持片上Debug,称为D变种 M
:内嵌硬件乘法器 Multiplier,称为M变种 I: 嵌入式ICE,支持片上断点和调试,称为I变种。
3.ARM9两种工作状态:ARM状态,处理器执行32位的字对齐的ARM指令;Thumb状态:处理器执行16位的半字对齐的Thumb指令。7种工作模式:用户模式(usr)、快速中断模式(fiq)、外部中断模式(irq)、管理模式(svc)、中止模式(abt)、未定义模式(und)、系统模式(sys)。特权模式:除usr之外的其它的六种工作模式都是持权模式。异常模式:除usr和sys之外的其它的五种工作模式都是持权模式。
4.ARM9寄存器分成哪几类?各类有哪些寄存器?寄存器LR有什么用途?
分两类:31个通用寄存器和6 个状态寄存器。
31个通用寄存器:R0~R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8_fiq-R14_fiq 。6 个状态寄存器:CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fiq。
LR (R14):也称作子程序链接寄存器或链接寄存器LR,当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。其他情况下,R14用作通用寄存器。与之类似,当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值。
5.CPSR各位是意义:
N:正负号/大小 标志位 0表示:正数/大于;1表示:负数/小于 Z:零标志位 0表示:结果不为零;1表示:结果为零C:进位/借位/移出位0表示:未进位/借位/移出0;1表示:进位/未借位/移出1 V:溢出标志位 0表示:结果未溢出;1表示:结果溢出I、F:irq和fiq中断允许和禁止控制位,=1 禁止irq或fiq中断 =0 允许irq或fiq中断。T: 控制(标志)位——反映处理器的运行状态T=1时,程序运行于Thumb状态,T=0时,程序运行于ARM状态。
M:控制位——决定了处理器的运行模式
模式
用户
快中断
中断
M[4:0]
10000
10001
10010
管理
中止
未定义
系统
10011
10111
11011
11111
6.ARM9异常响应过程(进入异常)执行哪些操作。
①保存返回地址、②保存当前状态寄存器CPSR的内容、③设置当前状态寄存器CPSR中的相应位、④转去执行中断处理程序。
第三章
1.ARM指令中的第二操作数“operand2”有哪些具体形式:三种:寄存器、寄存器移位、8位位图立即数。
2.对于ARM的变址寻址方式,有基地址和偏倚地址两部分组成。(1)基地址可以是哪些寄存器?(2)偏移地址可以有哪些形式?(3)总地址的计算方法有哪些?怎么表示?(4)变址寻址应用于哪些指令?
(1)基地址可以是通用寄存器R0---R15中的任意一个。(2)偏移地址可以有三种形式:12位立即数、寄存

器、寄存器移位。(3)总地址的计算方法有三种:
前变址(前索引):先基址+
偏址,生成操作数地址,做指令指定的操作。如:LDR Rd,[Rn,#m]后变址模式(修改基址寄存器): ①基址寄存器不加偏移作为操作数地址。 ②完成指令操作后,用(基址+偏移)的值修改基址寄存器。如:LDR Rd,[Rn],#m自动变址模式(修改基址寄存器): ①先基址+偏移,生成操作数地址,做指令指定的操作。②然后自动修改基址寄存器。如:LDR Rd,[Rn,#m ]!(4)有4条指令: LDR、STR、LDM、STM
3.ARM9有寻址方式:立即寻址、寄存器寻址、寄存器间接寻址、基址寻址、堆栈寻址、块拷贝寻址、相对寻址
4. ARM9伪指令:ADR:小范围的地址读取伪指令、ADRL:中等范围的地址读取伪指令、LDR:大范围的地址读取伪指令、NOP:空操作伪指令。
5. ARM9指令集分为哪几种类型?各类有哪些指令(可以不考虑协处理器指令)。
五类:存储器访问指令、数据处理指令、分支指令、协处理器指令、杂项指令。
存储器访问指令:单存储器存取指令,多存储器存取指令。数据处理指令:算术运算指令,逻辑运算指令,数据传送指令,比较指令,测试指令。分支指令:B分支指令 BL带链接的分支指令 BX带状态切换的分支指令 BLX带链接和状态切换的分支指令。杂项指令:程序状态寄存器操作指令,中断操作指令。
6. ARM9有哪些条件码?各个条件码的符号及意义。(比较常用的应该会)。
条件码
助记符
含??? 义
标 志
0000
EQ
相等
Z=1
0001
NE
不相等
Z=0
0010
CS/HS
无符号数大于或等于
C=1
0011
CC/LO
无符号数小于
C=0
0100
MI
负数
N=1
0101
PI
非负数
N=0
0110
VS
溢出
V=1
0111
VC
没有溢出
V=0
1000
HI
无符号数大于
C=1且Z=0
1001
LS
无符号数小于或等于
C=0或Z=1
1010
GE
有符号数大于或等于
N=V
1011
LT
有符号数小于
N!=V
1100
GT
有符号数大于
Z=0且N=V
1101
LE
有符号数小于或等于
Z=1或N!=V
1110
AL
无条件执行
任意
1111
保留
v5以下版本总执行,v5及以上版本有用

第四章
1.S3C2410主要特征:具有16KB指令Cache、16KB数据Cache和存储器管理单元MMU;外部存储器控制器,可扩展8组,每组128MB,总容量达1GB;支持从Nand flash存储器启动;55个中断源,可以设定1个为快速中断,有24个外部中断,并且触发方式可以设定;4通道的DMA,并且有外部请求引脚;3个通道的UART,带有16字节的TX/RX FIFO,支持IrDA1.0功能;具有2通道的SPI、1个通道的IIC串行总线接口和1个通道的IIS音频总线接口;有2个USB主机总线的端口,1个USB设备总线的端口;有4个具有PWM功能的16位定时器和1个16位内

部定时器;8通道的10位A/D转换器,最高速率可达500kB/s;提供有触摸屏接口;具有117个通用I/O口和24通道的外部中断源;兼容
MMC的SD卡接口;具有电源管理功能,可以使系统以普通方式、慢速方式、空闲方式和掉电方式工作;看门狗定时器;具有日历功能的RTC;有LCD控制器,支持4K色的STN和256K色的TFT,配置有DMA通道;具有PLL功能的时钟发生器,时钟频率高达203MHz;双电源系统:1.8/2.0V内核供电,3.3V存储器和I/O供电。
2.S3C2410的结构分为几个部分?每一部分主要由哪些部分构成?
主要由两面大部分构成:ARM920T内核和片内外设。
其中ARM920T内核:ARM9内核ARM9TDMI、32KB的Cache、MMU;片内外设:分为高速外设和低速外设两部分。
3.S3C2410的存储空间的分布,由哪几部分组成:
S3C2410X的存储空间分成8组,最大容量是1GB,bank0---bank5为固定128MB,bank6和bank7的容量可编程改变,可以是2、4、8、16、32、64、128MB,并且bank7的开始地址与bank6的结束地址相连接,但是二者的容量必须相等。
Not used
Not used
SFR area
SFR area
BootSRAM(4KB)
Not used
SROM/SDRAM(nGCS7)
SROM/SDRAM(nGCS7)
SROM/SDRAM(nGCS6)
SROM/SDRAM(nGCS6)
SROM(nGCS4)
SROM(nGCS4)
SROM(nGCS3)
SROM(nGCS3)
SROM(nGCS2)
SROM(nGCS2)
SROM(nGCS1)
SROM(nGCS1)
SROM(nGCS0)
SROM(nGCS0)
不用NAND Flash启动 使用NAND Flash启动
4.S3C2410的A/D转换器有特点:1、分辨率:10位;精度:±1LSB 2、线性度误差: ±1.5---2.0LSB;3、最大转换速率:500KSPS;4、输入电压范围:0~3.3v;
5、系统具有采样保持功能;6、常规转换和低能源消耗功能;7、独立/自动的X/Y 坐标转换模式。相关的寄存器及功能:有5个专用寄存器,如下:
Register
Address
R/W
Description
Reset Value
ADCCON
0x58000000
R/W
ADC控制寄存器
0x3FC4
ADCTSC
0x58000004
R/W
触摸屏控制寄存器
0x058
ADCDLY
0x58000008
R/W
ADC起始延迟寄存器
0x00FF
ADCDAT0
0x5800000C
R
ADC转换数据0寄存器
-
ADCDAT1
0x58000010
R
ADC转换数据1寄存器
-
5、S3C2410的中断系统的特点:
有56个中断源,对外提供24个外中断输入引脚,内部所有设备都有中断请求信号,例如DMA控制器、UART、IIC等等。
S3C2410X的ARM920T内核有两个中断,IRQ中断和快速中断FIQ。相关的寄存器及功能:有8个专用寄存器,如下:
Register
Address
R/W
Description
Reset Value
SRCPND
0x4A000000
R/W
中断标志寄存器
0x00000000
INTMOD
0x4A000004
R/W
中断模式寄存器
0x00000000
INTMSK
0x4A000008
R/W
中断屏蔽寄存器
0xFFFFFFFF
PRIORITY
0x4A00000C
R/W
中断优先级寄存器
0x7F
INTPND
0x4A000010
R/W
中断服务寄存器
0x00000000
INTOFFSET
0x4A000014
R
中断偏移寄存器
0x000

00000
SUBSRCPND
0x4A000018
R/W
子源挂起寄存器
0x00000000
INTSUBMSK
0x4A00001C
R/W
中断子源屏蔽寄存器
0x7FF
6、S3C2410X定时器的主要特性:1、5个16位定时器;2、2个8位
预分频器和2个4位分频器;3、可编程PWM输出占空比;4、具有初值自动重装连续输出模式和单脉冲输出模式;5、具有死区生成器。构成:1、时钟控制:系统为每个定时器设置有: 预分频器、分频器。2、定时器组成:减法计数器、初值寄存器、比较寄存器、观察寄存器、控制逻辑等部分构成。相关的寄存器:共有6种、17个寄存器:
Register
Address
R/W
Description
Reset Value
TCFG0
0x51000000
R/W
配置寄存器 0
0x00000000
TCFG1
0x51000004
R/W
配置寄存器 1
0x00000000
TCON
0x51000008
R/W
控制寄存器
0x00000000
TCNTBn
0x510000xx
R/W
计数初值寄存器(5个)
0x0000
TCMPBn
0x510000xx
R/W
比较寄存器(4个)
0x0000
TCNTOn
0x510000xx
R
观察寄存器(5个)
0x0000
定时器工作过程:装入初值、启动计数,计数结束产生中断请求,并且可以重装初值连续计数。
第五章
1.VMware:虚拟平台机软件,用来模拟PC机环境。在WMware平台上安装Linux操作系统:先安装VMware虚拟机,然后在虚拟机下再安装Linux操作系统。
2.Linux命令的功能及使用:ls—文件及子目录名列表;cat(more、less)—连续显示(分页显示、分页并且可往回看);cp—复制文件和目录;rm—删除文件;mv—移动或更改文件名、目录;mkdir—建立目录;rmdir—删除目录;mount—挂接;umount—卸载;ftp—本机与远程工作站的文件相互传输拷贝。
3.gcc编译器有哪些功能?有哪些常用的选项?如何使用预处理(也称预编译,Preprocessing);编译(Compilation);汇编(Assembly) ;连接(Linking)。gcc的格式为:gcc [option] file……-o 表示要求编译器生成所指定名字的可执行文件(必须指定名字);-c表示只要求编译器进行编译和汇编,而不要求链接,生成后缀为.o的同名的目标文件(不需要指定名字);-g 要求编译器在编译的时候,产生对程序进行调试的信息;(不用输入所产生的可执行文件名,自动生成a.exe) -E 表示编译器对源文件只进行预处理就停止,而不做编译、汇编和链接;-S 表示编译器只进行编译,而不做汇编和链接;(不需要输入目标文件名)-O 是编译器对程序提供的编译优化选项,可以提高执行文件的运行效率;??? -Wall 指定产生全部的警告信息。
4.Makefile和Make的功能:
(1)Makefile文件内容?? 按照规则,对系统中本目录下的文件(.c、.s、.o、.h、.lib等)根据相互关系和要求进行组织,设定各自的编译方法,指定所生成的目标。Makefile是一种文本

格式文件。(2)Make是Makefile文件的解释器。Make对Makefile文件解释后,生成Linux的shell命令和gcc编译命令,接着对命令执行,最终生成目标文件。Makefile是工程系统编译批处理文件。采用Makefile文件有什么优
点:
5.交叉编译:就是在一个平台上生成可以在另一个平台上执行的代码。采用交叉编译的主要原因:多数嵌入式目标机不能提供足够的资源供编译过程使用,因而只好将编译工作转移到高性能的宿主机中进行。
6.Linux内核的结构(有哪些主要目录): arch、drivers、fs、include、init、ipc、kernel、lib、mm、net。
7、常用的嵌入式文件系统:ext、ext2、ext3、CRAMFS、msdos、umsdos、Vfat、NTFS。
8.嵌入式系统应用程序开发的步骤:编写应用程序;编译应用程序;下载应用程序(通过串行口下载程序、通过网络FTP服务下载程序、通过网络NFS服务下载程序)。
第六章
1.简述Linux系统下设备的分类:分成两大类:一类是块设备(类似磁盘以记录块或扇区为单位,成块进行输入/输出的设备),另一类是字符设备(类似键盘以字符为单位,逐个进行输入/输出的设备)。
2.简单说明字符设备注册函数register_chrdev和注销函数unregister_chrdev中参数的意义。
(1)格式:int register_chrdev(unsigned int major,const char *name,struct file_operations *fops)其中: major是为设备驱动程序向系统申请的主设备号,如果是0,则系统为此驱动程序动态分配一个主设备好。name是设备名,fops是对各个调用的入口点说明,此函数返回0时表示成功;返回EINVAL,表示申请的主设备非法,主要原因是主设备号大于系统所允许的最大设备号;返回EBUSY,表示申请的主设备号正在被其他设备程序使用。如果动态分配主设备号成功,此函数将返回所分配的主设备号。(2)格式:int unregister_chrdev(unsigned int major,const char *name)其中:Marjor为主设备号,name为设备名。Linux内核把name和major在内核注册的名称对比,如果不相等卸载失败,并返回-EINVAL;如果major大于最大的设备号。也返回-EINVAL
3、简单说明中断注册函数和注销函数中参数的含义:
(1)格式:int request_irq(unsigned int irq,
void(*handler)(int irq,void dev_id,struct pt_regs *regs),unsigned long flags,const char *device,void *dev_id); (2)格式:int free_irq(unsigned int irq,void *dev_id);
其中irq表示所在申请的硬件中断号,headler为系统登记的中断处理子程序,中断产生时系统来调用,调用是所带参数irq为中断号,dev_id为申请时告诉系统的设备标识,regs为中断发生时寄存器内容。Device为设备名,flags为申请时选项。

编程:
3.将存储器中0x400000开始的200字节的数据,传

送到0x400800开始的区域。
解: MOV R0,#0x400000
LDR R1,=0x400800
MOV R7,#200???????
LP LDRB R2,[R0],#1
STRB R2,[R1],#1????
SUBS R7, R7,#1
BNE LP
HERE B HERE
6.编写一程序,查找存储器从0x400000开始的100个字中为0的数目,将其结果存到0x400190中。
解:??
?? MOV R0,#0x400000
?? MOV R1,#0
?? MOV R7,#100
LP?????? LDR R2,[R0],#4
?? CMP R2,#0
?? BNE NEXT
?? ADD R1,R1,#1
NEXT???? SUBS R7,R7,#1
?? BNE LP
?? STR?? R1,[R0]
?? B?? $
8. 编写一简单ARM汇编程序段,实现1+2+…+100的运算。 MOV?? R2,#100
?? MOV?? R1,#0
LOOP???? ADD?? R1,R1,R2 R1中为累加和
?? SUBS?? R2,R2,#1 ;R2控制循环
?? BNE?? LOOP
11.编写一程序,用查询的方式,对S3C2410X的A/D转换器的第0通道连续进行100次A/D转换,然后将其结果求平均值。 注意:A/D转换器有独立的模拟信号输入引脚AIN0—AIN9。
#define rADCCON (*(volatile unsigned *)0x58000000)
#define rADCDAT0 (*(volatile unsigned *)0x5800000c)
#define pref 49
#define ch??????? 0
int adc(void)
{
rADCCON=(1<<14)|(pref<<6)|(ch<<3)|1; //允许预分频,启动转换
while(rADCCON&0x01==1); //查询是否已经启动转换
while(rADCCON&0x8000==0); //查询转换是否结束
return rADCDAT0&0x3ff; //读取转换结果
}

相关文档
相关文档 最新文档