
嵌入式课后答案整理.doc
11页第二章(1)S3C2410A AHB总线中连接了哪些控制器?APB总线上连接了哪些部件?答:AHB:存储器控制器;NandFash 控制器;中断控制器;LCD控制器;USB主控制器;时钟与电源管理APB:通用异步收发器;通用I/O端口(GPIO);定时器/脉冲调制;实时时钟(RTC);看门狗定时器;A/D转换器与触摸屏;IIC(Itergrated Circuit,部集成电路)总线接口;SPI(串行外设接口);MMC/SD/SDIO主控制器;USB设备控制器2)S3C2410A中使用的CPU核是那个公司的产品?什么型号?答:ARM公司的ARM920T核3)S3C2410A的存储器控制器可以支持哪些类型的存储器芯片?答:bank0-bank7支持ROM/SRAM,其中bank6-bank7也支持SDRAM4)S3C2410A中LCD控制器使用什么存储器作为显示存储器?答:LCD控制器支持STN LCD显示以与TFT LCD显示,显示缓冲区使用系统存储器(存),支持专用LCD DMA将显示缓冲区数据传送到LCD控制器缓冲区5)4通道DMA支持存储器到存储器的数据传输吗?支持I/O到I/O的数据传输吗?支持I/O到存储器的数据传输吗?答:支持;支持;支持。
6)简述AHB、APB总线的含义答:AHB是一种片上总线,用于连接时钟频率和高性能的系统模块,支持突发传输、支持顺县操作,也支持单个数据传输,所有的时序都以单一时钟的前沿为基准操作APB也是一种片上总线,为低性能、慢速外设提供了较为简单的接口,不支持流水线操作7)S3C2410A主时钟频率最高达到多少MHz?答:266MHz8)S3C2410A有几通道A/D转换器?转换器是多少位的?答:8通道;10位9)S3C2410A支持多少个中断源?支持多少个外部中断源?答:55个;24个外部中断源10)S3C2410A存储器寻址空间有多大?每个bank空间有多大?支持几个banks?答:1GB;128MB;8个11)S3C2410A微处理器支持几种数据总线宽度?bank0和其他banks各支持几种数据总线宽度?答:3种;bank0支持可编程的16/32位数据总线宽度;bank1支持可编程的8/16/32位数据总线宽度12)S3C2410A支持存储器与I/O地址统一编址,还是独立编址?答:统一编址13)特殊功能寄存器已经集成在S3C2410A片了,还是需要在片外另加存储器芯片?答:部14)ARM920T核使用了几级流水线结构?答:五级。
15)指令和数据cache是分开的,还是共用的?容量是多少KB?答:分开的;单独的16KB指令cache,单独的16KB数据cache16)ARM920T有几种指令集?各有什么特点?答:ARM920T有两种指令集,32位的ARM和16位的Thumb指令集特点:ARM指令集:所有的指令都是32位固定长度,便于译码和流水线实现,并且在存中以4字节边界地址对齐保存;只有LOAD-STORE类型的指令才可以访问存;使用了桶形移位器,可以在一个指令周期完成移位操作和ALU操作Thumb指令集:Thumb指令集虽然是一个16位的指令集,但是能够在32位的ARM920T处理器上运行Thumb指令集执行效率比传统的16位结构的处理器更有效,也比32位结构的处理器有更高的代码密度Thumb指令集是32位ARM指令集中最常用的指令功能上的一个子集Thumb指令集有效果一样的32位ARM指令对应17)ARM920T有几种操作状态?如何转换?每种状态各有什么特点?答:两种状态,ARM状态,Thumb状态;使用ARM指令集的BX指令,并且BX指令指定寄存器bit[]=1,能够从ARM状态进入Thumb状态使用Thumb指令集的BX指令指定寄存器的bit[0]=0,能够从Thumb状态进入ARM状态。
特点:ARM状态,在这种状态执行32位长度的、字边界对齐的ARM指令Thumb状态,在这种状态执行16位长度的、半字边界对齐的Thumb指令简述存储器格式端,小端格式有何不同?答:大端格式字寻址使用的地址,是数据最高字节对应的字节地址小端格式字寻址使用的地址,是数据最字节对应的字节地址19、ARM920T支持哪几种数据类型?答:字,32位;半字,16位;字节,8位20、ARM920T支持哪几种操作方式?答:ARM920T支持7种操作方式,用户、快速中断请求、中断请求、管理程序、终止、系统、未定义21、特权方式包含哪几种操作方式?答:快速中断请求、中断请求、管理程序、终止、系统、未定义22、ARM状态下不同的操作方式分别可以使用那些寄存器?Thumb状态下不同的操作方式分别可以使用那些寄存器?答:ARM状态下System and User:r0到r14,r15(PC)FIQ:r0到r7,r8-fiq到r14-fiq,r15(PC)Supervisor:r0到r12,r13-svc,r14-svc,r15(PC)Abort:r0到r12,r13-abt,r14-abt,r15(PC)IRQ:r0到r12,r13-irq,r14-irq,r15(PC)Undefined:r0到r12,r13-und,r14-und,r15(PC)Thumb状态下System and User:r0到r7,SP,SR,PC;FIQ:r0到r7,SP-fiq,LR-fiq,PC;Supervisor:r0到r7,SP-svc ,LR-svc,PC;23、简述LR,PC、SPSR、CPSR和SP寄存器的用法?•答:LR:寄存器r14用作子程序连接寄存器。
当一条分支并且连接指令(BL)被执行时,寄存器r14收到r15的一个拷贝在其他时间,r14能被看作通用寄存器PC:在ARM状态下,r15的bit[1:0]是无定义且必须被忽略的,而r15的bit[31:2]含有程序计数值在Thumb状态下,r15的bit[0]是无定义且必须被忽略的,而r15的bit[31:1]含有程序计数值CPSR和SPSR与ARM状态下的CPSR和SPSR是一样的;SP映射到ARM状态下的r1324、什么叫高寄存器组?低寄存器组?答:Thumb状态下,寄存器r0到r7称为低寄存器组,寄存器r8到r15称为高寄存器组25、简述程序状态器的格式和为一位的含义?答:程序状态寄存器格式有bit[31:28] 条件码标志,bit[31]N负于或低于 bit[30]Z 零 bit[29]C 进位/溢位/扩展 bit[28]v 溢出 bit[27:8]保留 bit[7:0]控制位 bit[7]IRQ禁止 bit[6]FIQ禁止bit[5]状态位bit[4:0]方式位26、简述异常进入和退出需要做哪些处理?答:在对应的LR中保存下一条指令的地址•当异常是从ARM状态进入,处理器复制下一条指令的地址到LR,这时地址是PC+4或PC+8,与不同的异常有关。
•当异常从Thumb状态进入,处理器写当前的PC值到LR,这时地址是PC+2或PC+4,与不同的异常有关•异常处理不必确定进入异常前的状态例如由SWI进入异常,MOVS PC,r14_svc总是返回到下一条指令,而不管SWI是在ARM或Thumb状态下被执行退出:当异常处理完时,异常处理程序必须:•⑴ 参考表2.4,对应不同类型的异常,直接传送LR到PC或从LR中减去一个偏移量送到PC•⑵ 复制SPSR到CPSR•⑶ 清除在进入异常时被设置的中断禁止标志•将SPSR值恢复到CPSR的同时,自动地将T位的值恢复成进入异常前的值27、简述终止的一般含义?答:中止处理程序必须:① 确定中止原因,使请求的数据可用② 用LDR Rn,[r14_abt,#-8]指令,取回引起中止的指令,确定那条指令是否指定了回写基址寄存器,如果是这样,中止处理程序还必须:从这条指令确定对基址寄存器回写的偏移量是多少;当中止处理程序返回时,使用相反的偏移量重装到基址寄存器28、简述未定义指令的用途?答:当ARM7TDMI处理器遇到一条指令,这条指令即不是ARM7TDMI处理器的指令,又不是系统任何协处理器能处理的指令,ARM7TDMI产生未定义指令陷阱。
29、说出各异常优先级的次序?答:复位最高,数据中断次之,然后是快速中断请求,中断请求,指令预取中止,未定义指令和软件中断最低30、说出各异常的向量地址?答:复位的向量地址为0x00000000,未定义指令为0x00000004,软件中断0x00000008,预取中止0x0000000C,数据中止0x00000010,保留0x00000014,中断请求0x00000018,快速中断请求0x0000001C31、S3C2410A有多少个引脚?核使用电压时多少伏?S3C2410A片的寄存器和I/O使用电压是多少伏?答:S3C2410A有272个引脚,核1.8V用于S3C2410A-20;核2V用于S3C2410A-26;S3C2410A片的寄存器和I/O使用电压是3.3V32、S3C2410A Nand Flash控制器支持从Nand Flash引导系统吗?答:支持33、S3C2410A LCD控制器支持哪两种不同类型的液晶显示器?答:LCD控制器支持STN LCD显示以与TFT LCD显示34、S3C2410A支持USB主控制器吗?支持USB设备控制器吗?答:支持2个端口的USB主(Host)控制器·兼容OHCI Rev 1.0·兼容USB V 1.1·支持低速和全速设备第三章1、简述ARM指令集的主要能力答:(1)条件执行 (2)寄存器访问 (3)式桶形移位器的访问2、简述程序计数器pc、连接寄存器1r、堆栈指针sp、CPSR和SPSR的用法答:程序计数器pc也成R15寄存器,在ARM状态下,岁每条指令以1个字作为地址增量;在Thumb状态,以2字节作为地址增量。
连接寄存器1r :寄存器14作为子程序连接寄存器当一条分支并且连接指令(BL)被执行时,寄存器14收到R15的一个拷贝在其他时间,R14被看做通用寄存器堆栈指针sp :寄存器R13习惯用于作堆栈指针,总是指向栈顶元素CPSR和SPSR :保存最近执行过的ALU操作的信息;控制允许或禁止中断;设置处理器操作方式3、简述处理器如何从ARM状态转换到Thum状态的答:分支并且转换状态指令BX,在指令中制定了一个Rn寄存器,将Rn容拷贝到PC,同时使PC[0]=0.如果 Rn[0]=1,将处理器状态转换成Thumb状态,把目标地址处的代码解释为Thumb代码;如果Rn[0]=0,将处理器状态转换成ARM状态,把目标地址处的代码解释为ARM代码4、ARM指令对于无符号数、带符号数装入字节或半字节到寄存器是如何操作的答:指令中S=1并且H=0时,LSRSB读存储器半字数据装入寄存器;指令STRH存寄存器半字数据到存储器指令中S=1并且H=0时,LDRSB指令装入半字带符号数,并扩展符号位方法是将存储器读出的半字数据,装入目的寄存器的bit[7:0],bit[7]作为符号位,用这一位的值扩展到bit[31:16]。
指令中S=1并且H=1时,LDRSH指令装入半字带符号数,并扩展符号位方法是将存储器读出的半字数据,装入摸底寄存器的bit[15:0],bit[15]作为符号位,用这一位的值扩展到bit[31:16]5、简述ARM指令是如何实现条件执行的答:在AR。
