资源描述
完整所有答案 嵌入式系统原理及接口技术复习
———————————————————————————————— 作者:
———————————————————————————————— 日期:
14
个人收集整理 勿做商业用途
一、 简答题
1. 什么是嵌入式系统?嵌入式系统的特点是什么?
答:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统
特点:与应用密切相关,实时性,复杂的算法,制造成本,功耗,开发和调试,可靠性,体积
2. 简要说明嵌入式系统的硬件组成和软件组成。
答:硬件组成:微处理器,存储器,输入设备和输出设备。
软件组成:操作系统,文件系统,图形用户接口,网络系统,通用组建模块.
3. S3C2410A的AHB总线上连接了那些控制器?APB总线上连接了那些部件?
AHB:LCD控制器,LCD DMA,总线控制器,USB主控制器,中断控制器,ExtMaster,电源管理,Nandflash控制器,储存器控制器。
APB:通用异步收发器,内部集成电路总线(IIC),USB设备控制器,集成电路内部声音总线(IIS),MMC/SD/SDIO主控制器,通用I/O端口(GPIO),看门狗定时器(WDT),
定时时钟(RTC),总线控制器,A/D转换器,串行外设接口,定时器/脉宽调制。
4. ARM体系结构支持几种类型的异常,并说明其异常处理模式和优先级状态?
答,支持7种类型的异常
异常处理过程:(进入异常)PC→LR,CPRS→SPSR,设置CPSR的运行模式位,跳转到相应的异常处理程序,(异常返回)LR→PC,SPSR→CPSR,若在进入异常处理时设置中断禁止位,要在此清楚,复位异常处理程序不需要返回。
Reset>数据中指>快速中断请求(FIQ)>中断请求(IRQ)>指令预取中止>未定义指令和软件中止。
5. 存储器生长堆栈可分为哪几种?各有什么特点?
4种,满递增堆栈:堆栈通过增大存储器的地址向上增长,堆栈指针指向内含有效数据项的最高地址。指令如LDMFA,STMFA等。
空递增堆栈:堆栈通过增大存储器的地址向上增长,堆栈指针指向堆栈上的第一个空位置。指令如LDMEA,STMEA等。
满递减堆栈:堆栈通过减小存储器的地址向下增长,堆栈指针指向内含有效数据项的最低地址。指令如LDMFD,STMFD等。
空递减堆栈:堆栈通过减小存储器的地址向下增长,堆栈指针指向堆栈下的第一个空位置。指令如LDMED,STMED等。
6。 简述存储器系统层次结构及特点。
层次结构主要体现在“Cache-主存"层次和“主存—辅存”(Cache,主存储器,辅助存储器),前者主要解决CPU和主存速度不匹配的问题,后者主要解决存储器系统的问题。在存储器体系中Cache、主存能与CPU直接交换信息,辅存则要通过主存与CPU交换信息;主存与CPU、Cache、辅存都能交换信息。
7. 简述I2S总线接口的启动与停止过程.
通过I2S控制寄存器IISCON控制,当控制寄存器IISCON的地址为0=I2S禁止(停止);当控制寄存器IISCON的地址为1=I2S允许(开始)。
8。 简述ARM系统中的中断处理过程.
中断处理过程包括:中断请求、中断排队或中断判优、中断响应、中断处理和中断返回
9。 ARM微处理器支持哪几种运行模式?各运行模式有什么特点?
User:用户模式。绝大部分的任务执行都在这种操作模式下,此为正常的程序执行模式。
FIQ:快速中断模式。支持数据传送或通道处理。
IRQ:普通中断模式。用于一半中断处理。
Supervisor:管理模式.一种操作系统受保护的方式。
Abort:中止模式。在访问数据中止后或指令预取中止后进入中止方式。
System:系统模式。是操作系统一种特权级的用户方式。
Undef:未定义模式。当执行未定义指令时会进入这种操作模式。
10。 当PCLK=66。5MHz时,选择不同的时钟分频(1/2、1/4、1/8、1/16)输入,分别计算定时器最小分辨率、最大分辨率及最大定时区间。
答:最小分辨率:定时器输入时钟频率=PCLK/{prescaler+1}/{divider值}=66。5/{0+1}/{2}=33。2500(MHz)
一个计数脉冲时间=1/33.2500MHz=0。0300(us)
最大分辨率:定时器输入时钟频率=PCLK/{255+1}/{2}=66。5/256/2=129.8828
一个计数脉冲的时间=1/129.8828=7.6992(us)
最大定时区间:由于TCNTBn=65535,计数到0共65536个计数脉冲,
所以65536*7。6992=0。5045(sec)。
11。 分析如图所示I2S总线时序图,说明其操作过程。
在I2SLRCK改变后经过1个时钟周期之后,发送器发送下一个字的最高有效位。
串行数据通过发送器发送,虽然同步可以使用时钟信号的后沿(从高到低)或前沿(从低到高),然后在串行时钟信号的前沿,串行数据必须被锁存到接收器.由于这个限制,传送数据被同步只能使用时钟信号的前沿。
左右声道选择线指示正在传送的数据所在的声道.I2SLRCK能够在串行时钟信号的后沿或前沿改变,而它的长度不需要对称。在从设备,I2SLRCK信号在时钟信号的前沿被锁存.I2SLRCK在最高有效位被传送的前一个周期改变。
12. S3C2410A与UAD1341通过I2S总线接口连接,试述音频数据传送过程.
答:处理器通过IIS总线接口,控制音频数据在s3c2410内存与UDA1341TS之间传送.连接在UDA1314TS上的麦克风信号在UDA1314内部经过A/D转换器,转换成二进制数,串行通过DATAO引脚送到S3C2410的IIS模块,在IIS模块中数据转换成并行数据然后使用通常存取方式或DMA存取方式,将并行数据保存的内存中,而内存中要输出的音频数据使用通常存取方式或DMA存取方式,将数据并行传送到IIS模块在IIS中转换成串行数据,串行通过DATAI引脚送到UDA1314TS,在片内经过D/A转换器,变成模拟信号,经过驱动器,驱动扬声器。
13。 简述LCD控制器组成及数据流描述。
LCD控制器包括:REGBBANK,LCDCDMA,TMEGEN,LPC定时控制逻辑单元,VIDPRCS以及VIDEOMUX组成。
当传送请求由总线仲裁器接收时,4个连续的字数据由系统存储器帧缓冲区传送到LCDCDMA内的FIFO。全部FIFO大小为28个字,分别由12个字的FIFOL和16个字的FIFOH组成。使用FIFOL和FIFOH,用来支持双扫描显示模式,在单扫描显示模式,仅有FIFO中一个,即FIFOH能够被使用。
14。 以下是S3C2410A的串口逻辑方框图,试分析其组成和工作原理。
一个波特率发生器、一个发送器、一个接收器和一个控制单元.波特率发生器使用PCLK或UEXTCLK时钟。发送器和接收器各有一个16字节的FIFO寄存器和移位器。在FIFO方式,要发送的数据先写入FIFO寄存器,然后复制到发送移位器,通过发送数据引脚TxDn移位输出;而接收数据从接收数据引脚RxDn输入并移位,然后从接收移位器复制到FIFO寄存器、
二、 程序分析。给以下程序主要过程加注释,幷写出程序功能
1。 汇编程序:
IsrIRQ
sub sp,sp,#4; //修改栈指针,在栈顶留出4字节空间
stmfd sp!,{r8-r9} 保存R8,R9
ldr r9,= INTOFFSET 取中断偏移寄存器INTOTTSET地址
ldr r9,[r9]; //读中断偏移寄存器INTOFFSET地址
ldr r8,=HandleEINT0;//读中断向量表首地址
add r8,r8,r9,lsl #2;//由中断偏移寄存器INTOFFSET中偏移量乘以4,加中断向量表首地址,得到对应中断在向量表中的地址
ldr r8, [r8]; //从向量表中取中断请求对应的服务程序入口地址到R8
str r8,[sp,#8]; //R8存堆栈
ldmfd sp!,{r8—r9,pc}; //从堆栈将原R8(对应中断入口地址)内容送PC,转移到对应中断服务程序,同时出栈R8,R9
程序实现的功能:IRQ中断服务程序 课本P257
2. C语言程序段
rGPFCON|=2<〈0|2<<4; // 将GPF0配置成EINT0和将GPF2配置成EINT2
rGPGCON|=2〈〈6|2<〈22; // 将GPG3,GPG11配置成EINT11,EINT19功能
rINTMOD=0; // 中断模式寄存器设置为0,所有中断均为IRQ类型
rEXTINT0|=4〈<0|4〈〈8; // 将EINT0和EINT2信号方式设置为上升沿触发
rEXTINT1|=4〈<12; // 将EINT11信号方式配置为上升沿触发
rEXTINT2|=4〈〈12; // 将EINT19信号方式配置为上升沿触发
Reintmaks&=~(i<〈11|1<〈19) ; // EINT11、EINT19对应屏蔽位置为0,允许服务
rINTMSK&=~(1<〈0|1〈<2|1〈〈5); // EINT0,EINT2,EINT8_23对应屏蔽位置0,允许服务
程序实现的功能:
中断初始化 课本P255
3. C语言程序段
void Test_Touchpanel(void)
{
rADCDLY=50000; //Normal conversion mode delay about ADC开始或区间延时
rADCCON=(1〈〈14)+(ADCPRS〈〈6); //ADCPRS En, ADCPRS Value
rADCTSC=0xd3; //Wfait,XP_PU,XP_Dis,XM_Dis,YP_Dis,YM_En
pISR_ADC = (int)AdcTsAuto; //设置中断程序入口地址
rINTMSK=~BIT_ADC; //ADC Touch Screen Mask bit clear 中断屏蔽寄存器中,不屏蔽 INT_ADC
rINTSUBMSK&=~(BIT_SUB_TC); //不屏蔽子中断INT_TC
Uart_Getch(); //等待键盘输入,等待期间可以按下触摸屏触针,进入中断处理程序
rINTSUBMSK|=BIT_SUB_TC; //屏蔽子中断INT_TC
rINTMSK|=BIT_ADC; //中断屏蔽寄存器中,屏蔽INT_ADC
}
程序实现的功能:测试触摸屏
4。 汇编语言
掉电模式,SDRAM自动刷新
ldr r0,=REFRESH
ldr r3,[r0] ;r3=rREFRESH
mov r1, r3
orr r1, r1, #BIT_SELFREFRESH
str r1, [r0] ;Enable SDRAM self-refresh使SDRAM自动刷新
mov r1,#16 ;wait until self-refresh is issued。 may not be needed.等待刷新,也可能不需要
0 subs r1,r1,#1
bne %B0
四、设计与编程(每题10分,共20分)
1. 设计程序,写出实现LED1~LED4轮流闪烁的主程序代码。
已知FCLK=400M,不考虑分频函数,FCLK:HCLK:PCLK按1:2:4计算,使用端口GPB0、1、2、3为LED控制端口,低电平点亮.
GPBCON功能描述
配置端口B引脚端,使用位[21:0],分别对端口B的11个引脚端进行配置.
00:输入;01:输出;10:第2功能;11:保留
程序代码:void dely(U32 tt)
{
U32 i;
for(;tt〉0;tt—-)
{
for(i=0;i<10000;i++){}
}
}
int Main(int argc, char **argv)
{
int i;
U8 key;
U32 mpll_val=0;
int data;
mpll_val = (92<<12)|(1<<4)|(1);
//init FCLK=400M, so change MPLL first
ChangeMPllValue((mpll_val〉〉12)&0xff, (mpll_val〉〉4)&0x3f, mpll_val&3);
ChangeClockDivider(key, 12);
MMU_DisableICache();
MMU_DisableDCache();
rGPBCON = 0x155555;
data = 0x06;
while(1)
{
rGPBDAT = (data<〈5);
dely(120);
data =~data;
}
return 0;
}
2. 根据Nand Flash控制器工作原理,试在图中画出S3C2410A的Nand Flash控制器与K9F2808U0C芯片的连接关系,并简单描述其操作过程。
3. S3C2410A的LCD控制器初始化程序主要包括配置LCD引脚用到的GPIO;设置LCDCON寄存器参数等。试配置C端口、D端口的相关引脚为LCD功能引脚.写出端口配置初始化程序。
void Lcd_Port_Init(void)
{
rGPCUP=0xffffffff;
rGPCCON=0xaaaaaaaa;
rGPDUP=0xffffffff;
rGPDCON=0xaaaaaaaa;
rGPCCON|=2<<12|2〈〈14|2〈<16;
Uart_Printf("Initializing GPIO ports ……\n”);
}
4. 用S3C2410A或S3C2440的串口1实现串口通信。试设计不带流量控制的简单收发程序,包括初始化程序,发送程序和接收程序。
所用寄存器描述如下:
ULCONn位
描述
[6]
0:正常模式;1:红外模式
[5:3]
0xx:无奇偶校验;100:奇校验101:偶校验
110:强制奇偶校验/校验1;111:强制奇偶校验/校验0
[2]
0:每帧1个停止位;1:每帧2个停止位
[1:0]
00:5位;01:6位;10:7位;11:8位
UCONn的位功能
位
描述
波特率时钟选择
[10]
0:使用PCLK ,1:使用UEXTCLK
发送中断请求类型选择
[9]
0:脉冲;1:电平
接收中断请求类型选择
[8]
0:脉冲;1:电平
Rx超时中断使能控制
[7]
0:禁止;1:使能
接收错误状态中断使能控制
[6]
0:禁止;1:使能
回送模式选择
[5]
0:正常模式;1:回送模式
发送模式选择
[3:2]
00:禁止;01:中断请求或查询模式;
接收模式选择
[1:0]
00:禁止;01:中断请求或查询模式;
UMCONn的位功能
位
描述
AFC使能
[4]
0:禁止;1:使能
请求发送
[0]
0:RTS无效;1:RTS有效
等等
已定义宏如下:
#define WrUTXH0(ch) (*(volatile unsigned char *)0x50000020)=(unsigned char)(ch)
#define RdURXH0() (*(volatile unsigned char *)0x50000024)
程序设计(要求加注释):
void Uart_Init (int pclk,int baud){
int i;
if (pclk= =0) pclk=PCLK;
Switch(nchannel)
{case UART0: //UART0
rUFCON0=0x0; //UART0 FIFO控制寄存器,FIFO禁止
rUMCON0=0x0; //UART0 MODEM控制寄存器,AFC禁止
rULCON0=0x3; //行控制寄存器:正常模式,无奇偶校验,1位停止 位,8位数据位
rUCON0=0x245 ; //控制寄存器
rUBRDIV0 =((int)(pclk/16./baud+0.5)—1) ; //波特率因子寄存器
break;
case UART1: 。。. //UART1
case UART2: ... //UART2
default: break; }
for(i=0; i< 100; i++);
}
void Uart_SendByte(int data)
{
if(whichUart= =0)
{
if(data= ='\n')
{
while(!(rUTRSTAT0&0x2));
Delay(10); //延时,与终端速度有关
WrUTXH0('\r’);
}
while(!(rUTRSTAT0&0x2)); //等待,直到发送状态就绪
Delay(10);
WrUTXH0(data);
}
}
char Uart_GetKey(void)
{
if(whichUart==0){
if(rUTRSTAT0&0x1) //UART0接收到数据
return RdURXH0();
else return 0;
}
}
5. S3C2440的 bank6使用32位数据总线与SDRAM芯片HY57V561620连接,每片SDRAM 为32MB存储空间,16位数据线。试画出二者之间的连接电路图。在下图中SDRAM芯片引脚引出线上标出连接到S3C2440芯片上的对应引脚名称。
简单描述工作原理:地址总线ADDR[25:24]分别与SDRAM的BA1、BA0连接,选择芯片内部的bank3~bank0。由于数据总线为32位,所以地址总线ADDR[1:0]被忽略,地址总线ADDR[14:2]与SDRAM的A[12:0]连接,,传送行地址和列地址。数据总线U6连接低十六位,U7连接高十六位.
一、 填空
1. “嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。
2. IP核分为软核、硬核、固核.
3. 嵌入式系统通常由包含有嵌入式处理器、嵌入式操作系统、应用软件和外围设备接口的嵌入式计算机系统和执行装置(被控对象)组成.
4. 嵌入式计算机系统是整个嵌入式系统的核心,可以分为硬件层、中间层、系统软件层和应用软件层。
5. 硬件层中包含嵌入式微处理器、存储器、通用设备接口和I/O接口.嵌入式微处理器是嵌入式系统硬件层的核心。
6. 系统初始化过程按照自底向上、从硬件到软件的次序依次可以分为片级初始化、板级初始化和系统级初始化3个主要环节。
7. 系统软件层通常包含有实时多任务操作系统(Real—time Operation System,RTOS)、文件系统、图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。
8. ARM处理器共有37个寄存器,31个通用寄存器,6个状态寄存器.寄存器R13通常用作堆栈指针,称作SP.寄存器R14用作子程序链接寄存器,也称为链接寄存器LK (Link Register)。
9. FIQ模式有7个分组的寄存器R8~R14,映射为R8_fiq~R14_fiq。在ARM状态下,许多FIQ处理没必要保存任何寄存器。User、IRQ、Supervisor、Abort和Undefined模式每一种都包含两个分组的寄存器R13和R14的映射,允许每种模式都有自己的堆栈和链接寄存器。
10. 寄存器R15用作程序计数器(PC)。在ARM状态,位[1:0]为0,位[31:2]保存PC。
11. 程序状态寄存器CPSR的N、Z、C、V分别指---—--—,I=1指-—————、F=1指-—-——-,M[4:0]用做—-——-——。
12. ARM指令集大致分为6类:分支/跳转指令、存储器访问指令、数据处理指令、程序状态寄存器指令、异常中断指令、协处理器指令。
指令解析举例:
13. LDR R0,[R1] ;将存储器地址为R1的字数据读入寄存器R0。
14. STR R0,[R1],#8 ;将R0中的字数据写入以R1为地址的存储器中,并将新地址R1+8写入R1。
15. ADDS R1,R1,#1 ;加法指令,R1+1=R1 影响CPSR寄存器,带有S
16. LDMFD R13!,{R0,R4-R12,PC} ;将堆栈内容恢复到寄存器(R0,R4到R12,LR)。
17. S3C2410A的CPU内核采用的是16/32位ARM920T 内核,同时还采用了AMBA(先进的微控制器总线体系结构)新型总线结构。
18. ARM920T采用了MMU,AMBA总线和Harvard高速缓存体系结构,该结构具有独立的16KB指令Cache和16KB数据Cache,每个Cache都是由8字长的行组成的.
19. 2个USB主设接口/1个USB从设接口
20. 117位通用I/O口和24通道外部中断源;
21. 电源控制模式有正常、慢速、空闲和电源关断4种模式;
22. ARM处理器支持用户、快中断、中断、 管理 、 中止、系统和未定义等7种处理器模式,除了用户模式外,其余的均为特权模式;
23. ARM微处理器支持四种类型的堆栈,即:满递增堆栈、满递减堆栈、空递增堆栈、空递减堆栈。
24.
25. 8通道10位ADC和触摸屏接口;
26. 支持小/大端方式
27. ARM体系结构使用单一、线性地址空间。将字节地址做为无符号数看待,范围为( 0~232-1 )。
28. 地址空间:8个存储器bank,每bank 128 MB(byte)(总共1GB)。
29. 对于字对齐的地址A,地址空间规则要求如下:
地址位于A的字由地址为A、A+1、A+2和A+3的字节组成;
地址位于A的半字由地址为A和A+1的字节组成;
地址位于A+2的半字由地址为A+2和A+3的字节组成;
地址位于A的字由地址为A和A+2的半字组成。
30. ARM系统使用存储器映射I/O。I/O口使用特定的存储器地址,当从这些地址加载(用于输入)或向这些地址存储(用于输出)时,完成I/O功能.
31. bank0~bank6都采用固定的bank起始地址.
32. 每个bank支持可编程的8/16/32位数据总线宽度。
33. 总线宽度和等待寄存器BWSCON:用来设置总线宽的和等待状态.
34. Bank控制寄存器BANKCONn:控制各bank的片选,访问周期。
35. 刷新控制寄存器REFRESH:SDRAM的刷新控制寄存器。
36. BANKSIZE寄存器:用来设置BANK的容量。
37. 支持从NAND Flash存储器和NOR Flash两种启动方式.在NAND Flash模式下,采用4 KB内部缓冲器用于启动引导
38. Cache存储器采用写直达(Write—through)或写回(Write-back)操作来更新主存储器.
39. 每个引脚端的功能通过端口控制寄存器(PnCON)来定义(配置).
40. 与配置I/O口相关的寄存器包括:端口控制寄存器(GPACON~GPHCON)、端口数据寄存器(GPADAT~GPHDAT)、端口上拉寄存器(GPBUP~GPHUP)、杂项控制寄存器以及外部中断控制寄存器(EXTINTN)等。
41. 在ARM系统中,支持复位、未定义指令、软中断、预取中止、数据中止、IRQ和FIQ 7种异常,每种异常对应于不同的处理器模式,有对应的异常向量(固定的存储器地址).
42. S3C2410A通过对程序状态寄存器(PSR)中的F位和I位进行设置控制CPU的中断响应。如果设置PSR的F位为1,则CPU不会响应来自中断控制器的FIQ中断;如果设置PSR的I位为1,则CPU不会响应来自中断控制器的IRQ中断。如果设置PSR的F位或I位设置为0,同时将中断屏蔽寄存器(INTMSK)中的相对应位设置为0,CPU响应来自中断控制器的IRQ或FIQ中断请求。
43. S3C2410A中的中断控制器能够接收来自56个中断源的请求;
44. S3C2440A中的中断控制器能够接收来自60个中断源的请求;
45. 每个DMA控制器可以处理以下4种情况:(1)源和目的都在系统总线上;(2)源在系统总线上,目的在外围总线上;(3)源在外围总线上,目的在系统总线上;(4)源和目的都在外围总线上。
46. S3C2410A每个DMA通道有9个控制寄存器,4个通道共有36个寄存器。每个DMA通道的9个控制寄存器中有6个用于控制DMA传输,另外3个用于监控DMA控制器的状态。
47. 如果在一个存储系统中,指令预取时使用的一个cache,数据读写时使用的另一个cache,各自是独立的,这时称系统使用了独立的cache,用于指令预取的cache称为指令cache,用于数据读写的cache称为数据cache。
48. 存储器按存储信息的功能,分为随机存取存储器(Random Access Memory,RAM)和只读存储器(Read Only Memory,ROM)。
49. Flash memory(闪速存储器)是嵌入式系统中重要的组成部分,用来存储程序和数据,掉电后数据不会丢失。
50. Bank控制寄存器BANKCONn:控制各bank的片选,访问周期。
混合编程技术中,子程序之间的调用必须遵循一定的调用规则,这些规则统称为ATPCS
展开阅读全文