一、简答题1.什么是嵌入式系统?嵌入式系统的特点是什么?答:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统特点:与应用密切相关,实时性,复杂的算法,制造成本,功耗,开发和调试,可靠性,体积2.简要说明嵌入式系统的硬件组成和软件组成。答:硬件组成:微处理器,存储器,输入设备和输出设备。软件组成:操作系统,文件系统,图形用户接口,网络系统,通用组建模块。3.S3C2410A的AHB总线上连接了那些控制器?APB总线上连接了那些部件?AHB:LCD控制器,LCDDMA,总线控制器,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.汇编程序:IsrIRQsubsp,sp,#4;//修改栈指针,在栈顶留出4字节空间stmfdsp!,{r8-r9}保存R8,R9ldrr9,=INTOFFSET取中断偏移寄存器INTOTTSET地址ldrr9,[r9];//读中断偏移寄存器INTOFFSET地址ldrr8,=HandleEINT0;//读中断向量表首地址addr8,r8,r9,lsl#2;//由中断偏移寄存器INTOFFSET中偏移量乘以4,加中断向量表首地址,得到对应中断在向量表中的地址ldrr8,[r8];//从向量表中取中断请求对应的服务程序入口地址到R8strr8,[sp,#8];//R8存堆栈ldmfdsp!,{r8-r9,pc};//从堆栈将原R8(对应中断入口地址)内容送PC,转移到对应中断服务程序,同时出栈R8,R9程序实现的功能:IRQ中断服务程序课本P2572.C语言程序段rGPFCON|=20|24;//将GPF0配置成EINT0和将GPF2配置成EINT2rGPGCON|=26|222;//将GPG3,GPG11配置成EINT11,EINT19功能rINTMOD=0;//中断模式寄存器设置为0,所有中断均为IRQ类型rEXTINT0|=40|48;//将EINT0和EINT2信号方式设置为上升沿触发rEXTINT1|=412;//将EINT11信号方式配置为上升沿触发rEXTINT2|=412;//将EINT19信号方式配置为上升沿触发Reintmaks&=~(i11|119);//EINT11、EINT19对应屏蔽位置为0,允许服务rINTMSK&=~(10|12|15);//EINT0,EINT2,EINT8_23对应屏蔽位置0,允许服务程序实现的功能:中断初始化课本P2553.C语言程序段voidTest_Touchpanel(void){rADCDLY=50000;//NormalconversionmodedelayaboutADC开始或区间延时rADCCON=(114)+(ADCPRS6);//ADCPRSEn,ADCPRSValuerADCTSC=0xd3;//Wfait,XP_PU,XP_Dis,XM_Dis,YP_Dis,YM_EnpISR_ADC=(int)AdcTsAuto;//设置中断程序入口地址rINTMSK=~BIT_ADC;//ADCTouchScreenMaskbitclear中断屏蔽寄存器中,不屏蔽INT_ADCrINTSUBMSK&=~(BIT_SUB_TC);//不屏蔽子中断INT_TCUart_Getch();//等待键盘输入,等待期间可以按下触摸屏触针,进入中断处理程序rINTSUBMSK|=BIT_SUB_TC;//屏蔽子中断INT_TCrINTMSK|=BIT_ADC;//中断屏蔽寄存器中,屏蔽INT_ADC}程序实现的功能:测试触摸屏4.汇编语言掉电模式,SDRAM自动刷新ldrr0,=REFRESHldrr3,[r0];r3=rREFRESHmovr1,r3orrr1,r1,#BIT_SELFREFRESHstrr1,[r0];EnableSDRAMself-refresh使SDRAM自动刷新movr1,#16;waituntilself-refreshisissued.maynotbeneeded.等待刷新,也可能不需要0subsr1,r1,#1bne%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:保留程序代码:voiddely(U32tt){U32i;for(;tt0;tt--){for(i=0;i10000;i++){}}}intMain(intargc,char**argv){inti;U8key;U32mpll_val=0;intdata;mpll_val=(9212)|(14)|(1);//initFCLK=400M,sochangeMPLLfirstChangeMPllValue((mpll_val12)&0xff,(mpll_val4)&0x3f,mpll_val&3);ChangeClockDivider(key,12);MMU_DisableICache();MMU_DisableDCache();rGPBCON=0x155555;data=0x06;while(1){rGPBDAT=(data5);dely(120);data=~data;}return0;}2.根据NandFlash控制器工作原理,试在图中画出S3C2410A的NandFlash控制器与K9F2808U0C芯片的连接关系,并简单描述其操作过程。3.S3