一、简答题1.什么是嵌入式系统?嵌入式系统的特点是什么?答案:嵌入式系统的定义:以应用为中心、以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。
嵌入式系统明显特点:1.嵌入式系统是一个专用计算机系统,有微处理器,可编程;2、嵌入式系统有明确的应用目的3、嵌入式系统作为机器或设备的组成部分被使用。
嵌入式系统特点:1、与应用密切相关2、实时性3、复杂的算法4、制造成本5、功耗6、开发和调试7、可靠性8、体积小2.简要说明嵌入式系统的硬件组成和软件组成。
答案:硬件组成:微处理器、存储器、输入设备、输出设备。
软件组成:嵌入式应用程序、应用程序接口、嵌入式实时操作系统、板级支持包3.S3C2410A的AHB总线上连接了那些控制器?APB总线上连接了那些部件?答案:AHB总线上连接的控制器:LCD控制器,总线控制器,USB主控制器,中断控制器,存储器控制器,Nand Flash 控制器,时钟与电源管理,ExtMaster。
APB总线上连接的控制器:通用异步收发器,通用I/O端口,定时器/脉宽调制,实时时钟,看门狗定时器,A/D转换器与触摸屏,IIC总线接口,IIS总线接口,SPI串行外设接口,MMC/SD/SDIO主控制器,USB设备控制器。
4.ARM体系结构支持几种类型的异常,并说明其异常处理模式和优先级状态?答案:7种异常,异常种类处理模式优先级复位管理程序模式最高数据中止中止模式次之快速中断请求快速中断请求模式次之中断请求中断请求模式次之指令预取中止中止模式次之未定义指令未定义模式最低软件中断管理程序模式最低5.存储器生长堆栈可分为哪几种?各有什么特点?答案:满递减堆栈(特点是栈指针指向堆栈的最后一个已使用的地址,堆栈向存储器地址减小方向生长)、满递增堆栈(特点是指针指向堆栈的最后一个已使用的地址,堆栈向存储器地址增大方向生长)、空递减堆栈(特点是指SP指向堆栈的第一个没有使用的地址,堆栈向存储器地址减小方向生长)、空递增堆栈(特点是指SP指向堆栈的第一个没有使用的地址,堆栈向存储器地址增大方向生长)6.简述存储器系统层次结构及特点。
答案:存储系统分为三个层次:高速缓冲存储器cache,主存储器和辅助存储器构成。
特点:Cache是一种位于主存储器和嵌入式微处理器内核之间的快速存储器阵列,存放的是最近一段时间微处理器使用最多的程序代码和数据,Cache一般集成在嵌入式微处理器内,可分为数据Cache、指令Cache或混合Cache,Cache的存储容量大小依不同处理器而定。
主存储器用来存放系统和用户的程序及数据,是嵌入式微处理器能直接访问的存储器。
主存储器包含有ROM和RAM,可以位于微处理器的内部或外部。
辅助存储器通常指硬盘、NAND Flash、CF卡、MMC和SD卡等,用来存放大数据量的程序代码或信息,一般容量较大,但读取速度与主存相比要慢一些。
7.简述I2S总线接口的启动与停止过程。
答案:启动IIS:rIISCON |= 0x1; While(!Uart_GetKey());停止:Delay(10);rIISCON |= 0x0;rDMASKTRIG2=(1<<2);rIISFCON = 0x0;8.简述ARM系统中的中断处理过程。
答案:处理过程:1)将PC的值保存到IRQ方式下的连接寄存器LR中2)将当前程序状态寄存器CPSR内容保存到IRQ方式下的保留程序状态寄存器SPSR中3)强制设置程序状态寄存器的方式位和状态为,系统进入IRQ方式ARM状态4)设置中断禁止位,禁止再次中断5)设置PC为相应的异常向量9.ARM微处理器支持哪几种运行模式?各运行模式有什么特点?答案:7种模式,用户模式:用于执行大部分应用程序快速中断模式:支持数据传送或通道处理中断模式:用于一般中断处理管理程序模式:是一种操作系统受保护的方式中止模式:访问数据或指令预取中止后进入中止方式系统模式:是一种操作系统特权级的用户方式未定义模式:当一条未定义指令被执行时进入的模式10.当PCLK=66.5MHz时,选择不同的时钟分频(1/2、1/4、1/8、1/16)输入,分别计算定时器最小分辨率、最大分辨率及最大定时区间。
掌握方法下面以时钟分频为1/2时为例子:(见书上P275-P276页例题)必须先知道分辨率和最大定时区间的定义答案:最小分辨率:定时器输入时钟的频率=PCLK/{prescaler值+1}/{divider值}=66.5/{0+1}/{2}=33.2500(MHz)一个计数脉冲的时间=1/33.2500(MHz)=0.0300(us)最大分辨率:定时器输入时钟的频率=PCLK/{prescaler值+1}/{divider值}=66.5/{255+1}/{2}=129.8828(MHz)一个计数脉冲的时间=1/129.8828MHz)=7.6992(us)最大定时区间:由于TCNTBn=65535,计数到0共65536个计数脉冲,所以65536*7.6992(us)=0.5045(sec)11.分析如图所示I2S总线时序图,说明其操作过程。
答案:12.S3C2410A与UAD1341通过I2S总线接口连接,试述音频数据传送过程。
答案:传输过程:处理器通过IIS总线接口,控制音频数据在S3C2410A内存与UDA1341TS 之间传送。
连接在UDA1341TS上的麦克风信号在UDA1341TS内部经过A/D转换器等,转换成二进制数,串行通过DATAO引脚送到S3C2410A的IIS模块,在IIS模块中数据转换成并行数据,然后使用通常存取方式或DMA存取方式,将并行数据保存在内存中;而内存中要输出的音频数据,使用通常存取方式或DMA存取方式,将数据并行传送到IIS模块,在IIS模块中转换成串行数据,串行通过DATAI引脚送到UDA1341TS,在片内经过D/A转换器等,变成模拟信号,经过驱动器等,驱动扬声器。
13.简述LCD控制器组成及数据流描述。
答案:组成:REGBANK寄存器组,一个专用DMA即LCDCDMA,像素数据传输VIDPRCS,定时产生器TIMEGEN,三星专用定时控制逻辑单元,视频多路开关VIDEOMUX.数据流描述:在LCDCDMA中有FIFO存储器,当FIFO为空或部分空,LCDCDMA请求从帧存储器(也称帧缓冲区)装入数据。
装入数据使用突发(burst)存储器传送方式,每一次突发请求,连续从存储器取4个字,即16字节数据。
在总线传输期间,不允许总线主设备权转让给别的总线主设备。
当传送请求由总线仲裁器接收时,4个连续的字数据由系统存储器的帧缓冲区传送到LCDCDMA内的FIFO。
全部FIFO大小为28个字,分别由12个字的FIFOL和16个字的FIFOH组成。
使用FIFOL和FIFOH,用来支持双扫描显示模式。
在单扫描显示模式,仅有FIFO中的1个,即FIFOH能够被使用。
14.以下是S3C2410A的串口逻辑方框图,试分析其组成和工作原理。
答案:组成:一个波特率发生器,一个发送器,一个接收器,一个控制单元。
工作原理:在FIFO方式,要发送的数据先写入FIFO寄存器,然后复制到发送移位器,通过发送数据引脚TxDn移位输出;而接收数据从接收数据引脚RxDn输入并移位,然后从接收移位器复制到FIFO寄存器。
在非FIFO方式,要发送的数据先写入发送保持寄存器,然后复制到发送移位器,通过TxDn引脚移位输出;要接收的数据通过RxDn引脚输入并移位,然后从移位器复制到接收保持寄存器。
二、程序分析。
给以下程序主要过程加注释,幷写出程序功能1. 汇编程序:IsrIRQsub sp,sp,#4;//sp=sp-4stmfd sp!,{r8-r9}ldr r9,=INTOFFSETldr r9,[r9];//将r9内容作为地址,读该单元数据,送r9ldr r8,=HandleEINT0;//装入HandleEINT0数据到r8add r8,r8,r9,lsl #2;//r8=r8+r9<<2;ldr r8, [r8];//将r8内容作为地址,读该单元数据,送r8str r8,[sp,#8];//r8数据写入sp+8作地址的存储器中,不回写ldmfd sp!,{r8-r9,pc};//将sp指向的存储器单元的数据,装入r8-r9和pc的寄存器中程序实现的功能:中断响应进入中断和中断返回的过程2. C语言程序段rGPFCON|=2<<0|2<<4; //设置GPF0、GPF2为EINT0、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为上升沿触发//rINTMSK&=~(1<<0|1<<2|1<<5);// EINT0、EINT2、EINT8_23对应屏蔽位置0,允许服务程序实现的功能:中断的初始化程序3. C语言程序段void Test_Touchpanel(void){rADCDLY=50000; //ADC开始或区间延时rADCCON=(1<<14)+(ADCPRS<<6); // A/D转换器预分频值允许,-// A/D转换器预分频值为ADCPRS rADCTSC=0xd3; //等待中断模式,通常ADC转换,XP上拉允许,nXPON输出时1,//XP与AIN[7]连接,XMON输出是0,XM=高阻,nYPON输出是1,//YP与AIN[5]连接,YMON输出是1,YM=GND pISR_ADC = (int)AdcTsAuto;rINTMSK=~BIT_ADC; //中断屏蔽寄存器中,不屏蔽INT_ADCrINTSUBMSK=~(BIT_SUB_TC);//不屏蔽子中断INT_TCUart_Getch();rINTSUBMSK|=BIT_SUB_TC;//屏蔽子中断INT_TCrINTMSK|=BIT_ADC;// 中断屏蔽寄存器中,屏蔽INT_ADC}程序实现的功能:分别X/Y位置转换测试程序4. 汇编语言ldr r0,=REFRESH //把刷新控制寄存器的值装入到r0ldr r3,[r0] //r3=rREFRESH,从r0的地址读值装入r3中mov r1, r3 //把r3值送r1中orr r1, r1, #BIT_SELFREFRESH //把刷新控制寄存器的自动刷新位置为1str r1, [r0] //读r1的数据存入r0中mov r1,#16 ;wait until self-refresh is issued. may not be needed.0 subs r1,r1,#1 //r1=r1-1bne %B0 //四、设计与编程(每题10分,共20分)1. 设计程序,写出实现LED1~LED4轮流闪烁的主程序代码。