《嵌入式复习题.pdf》由会员分享,可在线阅读,更多相关《嵌入式复习题.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、文档 一、简答题 1.什么是嵌入式系统?嵌入式系统的特点是什么?答:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统 特点:与应用密切相关,实时性,复杂的算法,制造成本,功耗,开发和调试,可靠性,体积 2.简要说明嵌入式系统的硬件组成和软件组成。答:硬件组成:微处理器,存储器,输入设备和输出设备。软件组成:操作系统,文件系统,图形用户接口,网络系统,通用组建模块。3.S3C2410A 的 AHB 总线上连接了那些控制器?APB 总线上连接了那些部件?AHB:LCD 控制器,LCD DMA,总线控制器,USB 主控制器,中断控制
2、器,ExtMaster,电源管理,Nandflash 控制器,储存器控制器。APB:通用异步收发器,内部集成电路总线(IIC),USB 设备控制器,集成电路内部声音总线(IIS),MMC/SD/SDIO主控制器,通用I/O端口(GPIO),看门狗定时器(WDT),定时时钟(RTC),总线控制器,A/D 转换器,串行外设接口,定时器/脉宽调制。4.ARM 体系结构支持几种类型的异常,并说明其异常处理模式和优先级状态?答,支持 7 种类型的异常 异常处理过程:(进入异常)PCLR,CPRSSPSR,设置 CPSR 的运行模式位,跳转到相应的异常处理程序,(异常返回)LRPC,SPSRCPSR,若在
3、进入异常处理时设置中断禁止位,要在此清楚,复位异常处理程序不需要返回。Reset数据中指快速中断请求()中断请求(IRQ)指令预取中止未定义指令和软件中止。5.存储器生长堆栈可分为哪几种?各有什么特点?4 种,满递增堆栈,满递减堆栈,空递增堆栈,空递减堆栈。6.简述存储器系统层次结构及特点。答:层次结构主要体现在“Cache-主存”层次和“主存-辅存”(Cache,主存储器,辅助 存储器),前者主要解决 CPU 和主存速度不匹配的问题,后者主要解决存储器系统 的问题。在存储器体系中 Cache、主存能与 CPU 直接交换信息,辅存则要通过主存 与 CPU 交换信息;主存与 CPU、Cache、
4、辅存都能交换信息。7.简述 I2S 总线接口的启动与停止过程。通过I2S控制寄存器IISCON控制,当控制寄存器IISCON的地址为0=I2S禁止(停止);当控制寄存器 IISCON 的地址为 1=I2S 允许(开始)。8.简述 ARM 系统中的中断处理过程。中断处理过程包括:中断请求、中断排队或中断判优、中断响应、中断处理和中断返回 9.ARM 微处理器支持哪几种运行模式?各运行模式有什么特点?User:用户模式。绝大部分的任务执行都在这种操作模式下,此为正常的程序执行模式。FIQ:快速中断模式。支持数据传送或通道处理。IRQ:普通中断模式。用于一半中断处理。Supervisor:管理模式。
5、一种操作系统受保护的方式。Abort:中止模式。在访问数据中止后或指令预取中止后进入中止方式。文档 System:系统模式。是操作系统一种特权级的用户方式。Undef:未定义模式。当执行未定义指令时会进入这种操作模式。10.当 PCLK=66.5MHz 时,选择不同的时钟分频(1/2、1/4、1/8、1/16)输入,分别计算定时器最小分辨率、最大分辨率及最大定时区间。答:最小分辨率:定时器输入时钟频率=值.5/0+1/2=33.2500(MHz)一个计数脉冲时间=1/33.2500MHz=0.0300(us)最大分辨率:定时器输入时钟频率=PCLK/255+1/2=66.5/256/2=129
6、.8828 一个计数脉冲的时间=1/129.8828=7.6992(us)最大定时区间:由于 TCNTBn=65535,计数到 0 共 65536 个计数脉冲,所以 65536*7.6992=0.5045(sec)。11.分析如图所示 I2S 总线时序图,说明其操作过程。在 I2SLRCK 改变后经过 1 个时钟周期之后,发送器发送下一个字的最高有效位。串行数据通过发送器发送,虽然同步可以使用时钟信号的后沿(从高到低)或前 沿(从低到高),然后在串行时钟信号的前沿,串行数据必须被锁存到接收器。由 于这个限制,传送数据被同步只能使用时钟信号的前沿。左右声道选择线指示正在传送的数据所在的声道。I2
7、SLRCK 能够在串行时钟信号的 后沿或前沿改变,而它的长度不需要对称。在从设备,I2SLRCK 信号在时钟信号的前沿被锁存。I2SLRCK 在最高有效位被传送的前一个周期改变。12.S3C2410A 与 UAD1341 通过 I2S 总线接口连接,试述音频数据传送过程。答:处理器通过 IIS 总线接口,控制音频数据在 s3c2410 内存与 UDA1341TS 之间传送。连接在 UDA1314TS 上的麦克风信号在 UDA1314 内部经过 A/D 转换器,转换成二进制数,串行通过 DATAO 引脚送到 S3C2410 的 IIS 模块,在 IIS 模块中数据转换成并行数据然后使用通常存取方
8、式或 DMA 存取方式,将并行数据保存的内存中,而内存中要输出的音频数据使用通常存取方式或 DMA 存取方式,将数据并行传送到IIS 模块在 IIS 中转换成串行数据,串行通过 DATAI 引脚送到 UDA1314TS,在片内经过 D/A 转换器,变成模拟信号,经过驱动器,驱动扬声器。文档 13.简述 LCD 控制器组成及数据流描述。LCD 控制器包括:REGBBANK,LCDCDMA,TMEGEN,定时控制逻辑单元,VIDPRCS以及 VIDEOMUX 组成。当传送请求由总线仲裁器接收时,4 个连续的字数据由系统存储器帧缓冲区传送到LCDCDMA 内的 FIFO。全部 FIFO 大小为 28
9、 个字,分别由 12 个字的 FIFOL 和 16 个字的FIFOH 组成。使用 FIFOL 和 FIFOH,用来支持双扫描显示模式,在单扫描显示模式,仅有 FIFO 中一个,即 FIFOH 能够被使用。14.以下是 S3C2410A 的串口逻辑方框图,试分析其组成和工作原理。文档 一个波特率发生器、一个发送器、一个接收器和一个控制单元。波特率发生器使用 PCLK 或UEXTCLK 时钟。发送器和接收器各有一个 16 字节的 FIFO 寄存器和移位器。在 FIFO 方式,要 发送的数据先写入 FIFO 寄存器,然后复制到发送移位器,通过发送数据引脚 TxDn 移位输出;而接收数据从接收数据引脚
10、 RxDn 输入并移位,然后从接收移位器复制到 FIFO 寄存器、二、程序分析。给以下程序主要过程加注释,幷写出程序功能 1.汇编程序:IsrIRQ sub sp,sp,#4;/堆栈指针4 送入 sp stmfd sp!,r8r9 /保存 R8,R9 ldr r9,INTOFFSET /取出中断偏移寄存器 INTOFFSET 地址 ldr r9,r9;/将该 r9 内容作为地址,读该单元数据送 r9。ldr r8,HandleEINT0;/读中断向量表首地址 add r8,r8,r9,lsl#2;/r9 的值逻辑左移 2 位,加 r8,和送 r8。ldr r8,r8;/将该 r8 内容作为地址
11、,读该单元数据送 r8。str r8,sp,#8;/先索引,r8 数据写入 sp+8 做地址的寄存器中,不回写。ldmfd sp!,r8-r9,pc;/将 sp 指向的储存单元多字数据,装入 r8-r9 地址单元,pc 中。程序实现的功能:IRQ 中断服务程序 课本 P257 2.C 语言程序段 rGPFCON|=20|24;/将 GPF0 配置成 EINT0 和将 GPF2 配置成 EINT2 rGPGCON|=26|222;/将 GPG3,GPG11 配置成 EINT11,EINT19 功能 rINTMOD=0;/中断模式配置为 IRQ 中断 rEXTINT0|=40|48;/将 EINT
12、0 和 EINT2 信号方式设置为上升沿触发 rEXTINT1|=412;/将 EINT11 信号方式配置为上升沿触发 rEXTINT2|=412;/将 EINT19 信号方式配置为上升沿触发 /rINTMSK&=(10|12|15);/EINT0,EINT2,EINT8_23 对应屏蔽位置 0,允许服务 程序实现的功能:中断初始化 课本 P255 3.C 语言程序段 void Test_Touchpanel(void)文档 rADCDLY=50000;/Normal conversion mode delay about ADC 开始或区间延时 rADCCON=(114)+(ADCPRS0;
13、tt-)for(i=0;i10000;i+)int Main(int argc,char*argv)int i;U8 key;U32 mpll_val=0;int data;mpll_val=(9212)|(112)&0 xff,(mpll_val4)&0 x3f,mpll_val&3);ChangeClockDivider(key,12);MMU_DisableICache();MMU_DisableDCache();rGPBCON=0 x155555;data=0 x06;while(1)rGPBDAT=(data5);dely(120);data=data;return 0;文档 2.根
14、据 Nand Flash 控制器工作原理,试在图中画出 S3C2410A 的 Nand Flash 控制器与K9F2808U0C 芯片的连接关系,并简单描述其操作过程。3.S3C2410A 的 LCD 控制器初始化程序主要包括配置 LCD 引脚用到的 GPIO;设置 LCDCON寄存器参数等。试配置 C 端口、D 端口的相关引脚为 LCD 功能引脚。写出端口配置初始化程序。void Lcd_Port_Init(void)rGPCUP=0 xffffffff;rGPCCON=0 xaaaaaaaa;rGPDUP=0 xffffffff;rGPDCON=0 xaaaaaaaa;rGPCCON|=2
15、12|214|216;Uart_Printf(”Initializing GPIO ports n”);4.用S3C2410A或S3C2440 的串口 1实现串口通信。试设计不带流量控制的简单收发程序,包括初始化程序,发送程序和接收程序。所用寄存器描述如下 :文档 ULCONn 位 描述 6 0:正常模式;1:红外模式 5:3 0 xx:无奇偶校验;100:奇校验 101:偶校验 110:强制奇偶校验校验 1;111:强制奇偶校验校验 0 2 0:每帧 1 个停止位;1:每帧 2 个停止位 1:0 00:5 位;01:6 位;10:7 位;11:8 位 UCONn 的位功能 位 描述 波特率时
16、钟选择 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)(*
17、(volatile unsigned char*)0 x50000020)=(unsigned char)(ch)#define RdURXH0()(*(volatile unsigned char*)0 x50000024)程序设计(要求加注释):void Uart_Init(int pclk,int baud)int i;if(pclk=0)pclkPCLK;Switch(nchannel)case UART0:/UART0 rUFCON0=0 x0;/UART0 FIFO 控制寄存器,FIFO 禁止 rUMCON0=0 x0;/UART0 MODEM 控制寄存器,AFC 禁止 rULCO
18、N00 x3;/行控制寄存器:正常模式,无奇偶校验,1 位停止 位,8 位数据 位 rUCON00 x245;/控制寄存器 rUBRDIV0=(int)(pclk/16/baud+0.5)-1);/波特率因子寄存器 break;文档 case UART1:./UART1 case UART2:./UART2 default:break;for(i0;i 100;i+);void Uart_SendByte(int data)if(whichUart=0)if(data=n)while(!(rUTRSTAT00 x2);Delay(10);/延时,与终端速度有关 WrUTXH0(r);while
19、(!(rUTRSTAT00 x2);/等待,直到发送状态就绪 Delay(10);WrUTXH0(data);char Uart_GetKey(void)if(whichUart0)if(rUTRSTAT00 x1)/UART0 接收到数据 return RdURXH0();else return 0;5.使用 S3C2410A 的 A/D 转换器进行模拟信号到数字信号的转换。写出初始化函数和读取转换结果的函数。ADCDAT0 位名 位 描述 XPDATA(正常 ADC)9:0 X 位置的转换数据值(包括正常 A/D 转换的数据值)。取值范围:03FF 定义与 AD 转换相关的寄存器 文档#d
20、efine rADCCON(*(volatile unsigned*)0 x58000000)/ADC 控制寄存器#define rADCTSC(*(volatile unsigned*)0 x58000004)/ADC 触摸屏控制寄存器#define rADCDLY(*(volatile unsigned*)0 x58000008)/ADC 启动或间隔延时寄存器#define rADCDAT0(*(volatile unsigned*)0 x5800000c)/ADC 转换数据寄存器 0#define rADCDAT1(*(volati1e unsigned*)0 x58000010)/AD
21、C 转换数据寄存器 程序设计(要求加注释):6.S3C2440 的 bank6 使用 32 位数据总线与 SDRAM 芯片 HY57V561620 连接,每片 SDRAM 为 32MB 存储空间,16 位数据线。试画出二者之间的连接电路图。在下图中 SDRAM 芯片引脚引出线上标出连接到 S3C2440 芯片上的对应引脚名称。简单描述工作原理:地址总线 ADDR25:24分别与 SDRAM 的 BA1、BA0 连接,选择芯片内部 的 bank3bank0。由于数据总线为 32 位,所以地址总线 ADDR1:0被忽略,地址总线文档 ADDR14:2与 SDRAM 的 A12:0连接,传送行地址和
22、列地址。数据总线 U6 连接低十六位,U7 连接高 十六位。一、填空 1.“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。2.IP 核分为软核、硬核、固核。3.嵌入式系统通常由包含有嵌入式处理器、嵌入式操作系统、应用软件和外围设备接口的嵌入式计算机系统和执行装置(被控对象)组成。4.嵌入式计算机系统是整个嵌入式系统的核心,可以分为硬件层、中间层、系统软件层和应用软件层。5.硬件层中包含嵌入式微处理器、存储器、通用设备接口和 I/O 接口。嵌入式微处理器是嵌入式系统硬件层的核心。6.系统初始化过程按照自底向上、从硬件到软件的次序依次可以分为片级初始化、板级初始化和系统级初始化
23、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 个分组的寄存器 R8R14,映射为 R8_fiqR14_fiq。在 ARM 状态下,
24、许多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 指-,M4:0用做-。12.ARM 指令集大致分为 6 类:分支/跳转指令、存储器访问指令、数据处理指令、程序状态寄存器指令、异常中断指令、协处理器指令。指令解析举例:13.LDR R0,R1;将存
25、储器地址为 R1 的字数据读入寄存器 R0。14.STR R0,R1,8;将 R0 中的字数据写入以 R1 为地址的存储器中,并将新地址 R18 写入 R1。15.ADDS R1,R1,#1;加法指令,R11R1 影响 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 高速缓存体系结
26、构,该结构具有独立的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、式 27.ARM 体系结构使用单一、线性地址空间。将字节地址做为无符号数看待,范围为(02321)。28.地址空间:8 个存储器 bank,每 bank 128 MB(byte)(总共 1GB)。29.对于字对齐的地址 A,地址空间规则要求如下:地址位于 A 的字由地址为 A、A1、A2 和 A3 的字节组成;地址位于 A 的半字由地址为 A 和 A1 的字节组成;地址位于 A2 的半字由地址为 A2 和 A3 的字节组成;地址位于 A 的字由地址为 A 和 A2 的半字组成。30.ARM 系统使用存储器映射 I/O。I/O 口使用特定的存储器地址,当从这些地址加载(用于输入)或向这些地址存储
28、(用于输出)时,完成 I/O 功能。31.bank0bank6 都采用固定的 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内部缓冲器用于启动引导 3
29、8.Cache 存储器采用写直达(Write-through)或写回(Write-back)操作来更新主存储器。39.每个引脚端的功能通过端口控制寄存器(PnCON)来定义(配置)。40.与配置 I/O 口相关的寄存器包括:端口控制寄存器(GPACONGPHCON)、端口数据寄存器(GPADATGPHDAT)、端口上拉寄存器(GPBUPGPHUP)、杂项控制寄存器以及外部中断控制寄存器(EXTINTN)等。41.在 ARM 系统中,支持复位、未定义指令、软中断、预取中止、数据中止、IRQ 和 FIQ 7种异常,每种异常对应于不同的处理器模式,有对应的异常向量(固定的存储器地址)。42.S3C2
30、410A 通过对程序状态寄存器(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.每个
31、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
限制150内