




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统讲义
第4章S3C2410X系统结构嵌入式系统第四章S共178页,您现在浏览的是第1页!1、S3C2410X主要特性有哪些?2、S3C2410X的结构分为几个部分?每一部分主要由哪些部件构成?3、S3C2410X的存储器由哪几部分构成,每一部分有什么特点?存储器主要有哪些控制寄存器?4、S3C2410X的Flash有哪些特点?5、S3C2410X的DMA有哪些特点?其工作过程是怎样的?每个通道配置有哪些寄存器?6、S3C2410X的A/D转换器有哪些特点?有哪些相关的寄存器?7、编写一程序,用查询的方式,对S3C2410X的A/D转换器的第0通道连续进行100次A/D转换,然后将其结果求平均值。注意:A/D转换器有独立的模拟信号输入引脚AIN0---AIN9。嵌入式系统第四章S共178页,您现在浏览的是第2页!8、S3C2410X的中断系统有哪些特点?相关的寄存器有哪些?9、S3C2410X的中断控制器的工作过程是怎样的?对于IRQ,整个中断过程是怎样的(中断控制器处理,向CPU请求,转到中断入口,转去获得中断服务程序的首地址,执行中断服务程序)?10、编写一程序,使用外部中断EINT0,用中断方式对端口C做数据输入。(注意对中断系统和相关引脚进行初始化) 提示:C语言指向特定地址的方法:(1)#definerGPCDAT(*(volatileunsigned*)0x56000024)(2)int*rGPCDAT=0x56000024;(3)int*rGPCDAT; rGPCDAT=0x56000024; 用种方法为好。11、S3C2410X的定时器系统有哪些特点?由哪几部分构成?相关的寄存器有哪些?是如何工作的?嵌入式系统第四章S共178页,您现在浏览的是第3页!第4章S3C2410X系统结构4.1S3C2410X概述4.2存储器配置4.3DMA4.4ADC和触摸屏接口4.5中断控制器4.6I/O端口4.7PWM4.8UART接口4.9RTC4.10IIC接口4.11SPI接口4.12时钟和电源管理4.13看门狗4.14其它接口主要内容嵌入式系统第四章S共178页,您现在浏览的是第4页!4.1S3C2410X概述主要内容主要特性系统结构引脚信号嵌入式系统第四章S共178页,您现在浏览的是第5页!55个中断源,可以设定1个为快速中断,有24个外部中断,并且触发方式可以设定。4通道的DMA,并且有外部请求引脚。3个通道的UART,带有16字节的TX/RXFIFO,支持IrDA1.0功能。具有2通道的SPI、1个通道的IIC串行总线接口和1个通道的IIS音频总线接口。有2个USB主机总线的端口,1个USB设备总线的端口。有4个具有PWM功能的16位定时器和1个16位内部定时器。8通道的10位A/D转换器,最高速率可达500kB/s;提供有触摸屏接口。具有117个通用I/O口和24通道的外部中断源。嵌入式系统第四章S共178页,您现在浏览的是第6页!二、系统结构 主要由两大部分构成: ARM920T内核 片内外设。嵌入式系统第四章S共178页,您现在浏览的是第7页!
2、片内外设
分为高速外设和低速外设,分别用AHB总线和APB总线。嵌入式系统第四章S共178页,您现在浏览的是第8页!4.2S3C2410X的存储器主要内容存储器配置存储器概述控制寄存器Flash及控制器Flash控制器概述控制器主要特性控制器的寄存器控制器的工作原理嵌入式系统第四章S共178页,您现在浏览的是第9页!嵌入式系统第四章S共178页,您现在浏览的是第10页!注意:补充引脚信号嵌入式系统第四章S共178页,您现在浏览的是第11页!
1、总线宽度和等待控制寄存器31302928272625242322212019181716ST7WS7DW7ST6WS6DW6ST5WS5DW5ST4WS4DW41514131211109876543210ST3WS3DW3ST2WS2DW2ST1WS1DW1XDW0XSTn:控制存储器组n的UB/LB引脚输出信号。 1:使UB/LB与nBE[3:0]相连; 0:使UB/LB与nWBE[3:0]相连WSn:使用/禁用存储器组n的WAIT状态 1:使能WAIT;0:禁止WAITDWn:控制存储器组n的数据线宽 00:8位;01:16位;10:32位;11:保留嵌入式系统第四章S共178页,您现在浏览的是第12页!Tcoh:nOE无效后片选信号的保持时间
00:0个;01:1个;10:2个;11:4个时钟Tcah:nGCSn无效后地址信号的保持时间
00:0个;01:1个;10:2个;11:4个时钟Tacp:页模式的访问周期
00:2个;01:3个;10:4个;11:6个时钟PMC:页模式的配置,每次读写的数据数
00:1个;01:4个;10:8个;11:16个 注:00为通常模式。
注:紫色为实验箱上的配置,其值为0x0700嵌入式系统第四章S共178页,您现在浏览的是第13页!REFEN:刷新控制。 1:使能刷新;0:禁止刷新TREFMD:刷新方式。 1:自刷新 0:自动刷新Trp:设置SDRAM行刷新时间(时钟数)
00:2个时钟;01:3个;10:3个;11:4个时钟Tsrc:设置SDRAM行操作时间(时钟数) 00:4个时钟;01:5个;10:6个;11:7个时钟 注:SDRAM的行周期=Trp+Tsrc。Refresh_count:刷新计数值1514131211109876543210保留Refresh_count4、REFRESH---刷新控制寄存器31……242322212019181716保留REFENTREFMDTrpTsrc保留嵌入式系统第四章S共178页,您现在浏览的是第14页! 高24位未用。BURST_EN:ARM突发操作控制 0:禁止突发操作;1:可突发操作SCKE_EN:SCKE使能控制SDRAM省电模式 0:关闭省电模式;1:使能省电模式SCLK_EN:SCLK省电控制,使其只在SDRAM访问周期内使能SCLK 0:SCLK一直有效;1:SCLK只在访问期间有效BK76MAP:控制BANK6/7的大小及映射76543210BURST_ENXSCKE_ENSCLK_ENXBK76MAP5、BANKSIZE---BANK6/7组大小控制寄存器嵌入式系统第四章S共178页,您现在浏览的是第15页!WBL:突发写的长度。0:固定长度;1:保留TM:测试模式。 00:模式寄存器集;其它保留CL:列地址反应时间
000:1个时钟;010:2个时钟; 011:3个时钟;其它保留BT:猝发类型
0:连续; 1:保留BL:猝发时间
000:1个时钟;其它保留
6、MRSRB6/7---BANK6/7模式设置寄存器1514131211109876543210WBLTMCLBTBL嵌入式系统第四章S共178页,您现在浏览的是第16页!4.2.2NandFlash及其控制器
Norflash存储器:读速度高,而擦、写速度低,容量小,价格高。 Nandflash存储器:读速度不如Norflash,而擦、写速度高,容量大,价格低。有取代磁盘的趋势。 因此,现在不少用户从Nandflash启动和引导系统,而在SDRAM上执行主程序代码。一、NandFlash控制器概述
S3C2410X微控制器从Nandflash的引导功能:其内部有一个叫做“起步石(Steppingstone)”的SRAM缓冲器,系统启动时,Nandflash存储器的前面4KByte字节将被自动载入到起步石中,然后系统自动执行这些载入的引导代码。引导代码执行完毕后,自动跳转到SDRAM执行。
Nandflash操作的校验功能:使用S3C2410X内部硬件ECC功能可以对Nandflash的数据进行有效性的检测。
嵌入式系统第四章S共178页,您现在浏览的是第17页!NandFlash控制器功能框图主要由6部分组成引脚信号:CLE:命令锁存R/nB:就绪/忙嵌入式系统第四章S共178页,您现在浏览的是第18页!NFEN:NF控制器使能控制 0:禁止使用; 1:允许使用IECC:初始化ECC编码/解码器控制位 0:不初始化ECC; 1:初始化ECCNFCE:NF片选信号nFCE控制位持续时间设置 0:nFCE为低有效; 0:nFCE为高无效TACLE:CLE/ALE持续时间设置值(0---7) 持续时间=HCLK*(TACLS+1)
CLE/ALE:命令/地址锁存允许1514131211109876543210NFENXIECCNFCETACLEXTWRPH0XPWRPH10-000-0-01、NFCON---Flash配置寄存器嵌入式系统第四章S共178页,您现在浏览的是第19页! 高24位未用,低8位为读入或者写出的数据1514131211109876543210保留地址值3、NFADDR---Flash地址寄存器1514131211109876543210保留输入/输出数据4、NFDATA---Flash数据寄存器 高24位未用,低8位为Flash存储器地址值嵌入式系统第四章S共178页,您现在浏览的是第20页!四、NandFlash控制器的工作原理
1、自动导入启动代码步骤
完成复位。 如果自动导入模式使能,Nandflash存储器的前面4K字节被自动拷贝到Steppingstone内部缓冲器中。 Steppingstone被映射到nGCS0对应的BANK0存储空间。 CPU在Steppingstone的4-KB内部缓冲器中开始执行引导代码。
注意:在自动导入模式下,不进行ECC检测。因此,Nandflash的前4KB应确保不能有位错误(一般Nandflash厂家都确保)。
嵌入式系统第四章S共178页,您现在浏览的是第21页!
3、系统引导和NandFLASH配置
OM[1:0]=00b:使能Nandflash控制器自动导入模式; OM[3:0]为芯片引脚,设置引导模式、存储器bank0的数据宽度、时钟模式等。 OM[1:0]=01b、10b: bank0数据宽度为16位、32位 OM[1:0]=11b:测试模式
Nandflash的存储页面大小应该为512字节。
NCON:Nandflash寻址步骤数选择 0:3步寻址; 1:4步寻址嵌入式系统第四章S共178页,您现在浏览的是第22页!4.3DMA控制器主要内容1、概述2、工作原理3、寄存器嵌入式系统第四章S共178页,您现在浏览的是第23页!二、DMA工作原理
1、DMA的服务对象
每个DMA通道都有4个DMA请求源,通过设置,可以从中挑选一个服务。每个通道的DMA请求源如表4-1所示。
通道
源请求源0请求源1请求源2请求源3请求源4通道0nXDREQ0UART0SDITimerUSB设备EP1通道1nXDREQ1UART1IIS/SDISPI0USB设备EP2通道2IISSDOIISSDISDITimerUSB设备EP3通道3UART2SDISPI1TimerUSB设备EP4表4-1各通道的DMA请求源嵌入式系统第四章S共178页,您现在浏览的是第24页! 2、DMA的工作过程
S3C2410X的DMA工作过程可以分为三个状态: 状态1:等待状态。DMA等待一个DMA请求。如果有请求到来,将转到状态2。在这个状态下,DMAACK和INTREQ为0。 状态2:准备状态。DMAACK变为1,计数器(CURR_TC)装入DCON[19:0]寄存器。 注意:DMAACK保持为1直至它被清除。 状态3:传输状态。DMA控制器从源地址读入数据并将它写到目的地址,每传输一次,CURR_TC数器(在DSTAT中)减1,并且可能做以下操作: 重复传输:在全服务模式下,将重复传输,直到计数器CURR_TC变为0;在单服务模式下,仅传输一次。嵌入式系统第四章S共178页,您现在浏览的是第25页!
3、外部DMA请求/响应规则 DMAC有3种类型的外部DMA请求/响应规则: (1)singleservicedemand,单服务请求(对应于需求模式) (2)singleservicehandshake,单服务握手(握手模式) (3)wholeservicehandshake,全服务握手(全服务模式) 每种类型都定义了像DMA请求和DMA响应这些信号怎样与这些规则相联系。
demand与handshake模式的比较: 在一次传输结束时,DMA检查xnxDREQ(DMA请求)信号的状态: 在demand模式下:如果DMA请求(xnxDREQ)信号仍然有效,则传输马上再次开始。否则等待。 在handshake模式下:如果DMA请求信号无效,DMA在两个时钟周期后将DMA响应(xnxDACK)信号变得无效。否则,DMA等待直到DMA请求信号变得无效。每请求一次传输一次。嵌入式系统第四章S共178页,您现在浏览的是第26页!三、DMA控制器的相关寄存器 每个DMA通道有9个控制寄存器(4个通道共计36个寄存器),6个用来控制DMA传输,其它3个监视DMA控制器的状态。 RegisterAddressR/WDescriptionResetValueDISRCn0x4B0000x0R/W初始源基地址寄存器0x00000000DISRCCn0x4B0000x4R/W初始源控制寄存器0x00000000DIDSTn0x4B0000x8R/W初始目的基地址寄存器0x00000000DIDSTCn0x4B0000xCR/W初始目的控制寄存器0x00000000DCONn0x4B0000y0R/WDMA控制寄存器0x00000000DSTATn0x4B0000y4R状态/计数寄存器0x00000000DCSRCn0x4B0000y8R当前源地址寄存器0x00000000DCDSTn0x4B0000yCR当前目的地址寄存器0x00000000SKTRIGn0x4B0000z0R/WDMA掩码/触发寄存器0b000嵌入式系统第四章S共178页,您现在浏览的是第27页!LOC---源所在总线选择 0:AHB; 1:APBINC---源地址变化设置 0:源地址增加; 1:源地址不变
2、DISRCCn---DMA源控制寄存器
寄存器地址R/W意义初值DISRCC00x4B000004R/WDMA0初始源控制寄存器0x00000000DISRCC10x4B000044R/WDMA1初始源控制寄存器0x00000000DISRCC20x4B000084R/WDMA2初始源控制寄存器0x00000000DISRCC30x4B0000C4R/WDMA3初始源控制寄存器0x0000000031……210保留(为0)LOC---源总线选择INC---源地址变化设置嵌入式系统第四章S共178页,您现在浏览的是第28页!4、DIDSTCn---DMA初始目的控制寄存器寄存器地址R/W意义初值DIDSTC00x4B00000CR/WDMA0初始目的控制寄存器0x00000000DIDSTC10x4B00004CR/WDMA1初始目的控制寄存器0x00000000DIDSTC20x4B00008CR/WDMA2初始目的控制寄存器0x00000000DIDSTC30x4B0000CCR/WDMA3初始目的控制寄存器0x00000000LOC---目的地址所在总线选择 0:AHB; 1:APBINC---目的地址地址变化设置 0:目的地址增加; 1:目的地址不变31……210保留(为0)LOC---目的总线选择INC---目的地址变化设置嵌入式系统第四章S共178页,您现在浏览的是第29页!DMD_HS---DMA与外设握手模式选择 0:需求模式。为单服务,但只要DREQ信号有效便传输 1:握手模式。为单服务,要等待DREQ信号变为无效, DREQ再有效时才传输。SYNC---DREQ和DACK信号与系统总线时钟同步选择 0:DREQ和DACK与PCLK(APBclock)同步。慢速外设 1:DREQ和DACK与HCLK(AHBclock)同步。高速外设INT---CURR_TC的中断请求控制 0:禁止CURR_TC产生中断请求 1:当所有的传输结束时,CURR_TC产生中断请求
TSZ---传输长度类型选择 0:执行单数据传输 1:执行四数据长的突发传输
313029282726252423222120DMD_HSSYNCINTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZ嵌入式系统第四章S共178页,您现在浏览的是第30页!SWHW_SEL---DMA源选择方式(软件或硬件)设置 0:以软件software方式产生DMA请求,需要用DMASKTRIG控制寄存器中的SW_TRIG位设置触发。 1:由位[26:24]提供的DMA源触发DMA操作RELOAD---再装载选择 0:自动再装载,当传输次数减为0时自动装载DMA初值 1:不自动再装载,传输结束关闭DMA通道。DSZ---传输数据类型设置 00:字节; 01:半字; 10:字; 11:保留313029282726252423222120DMD_HSSYNCINTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZ嵌入式系统第四章S共178页,您现在浏览的是第31页!CURR_SRC---当前数据源地址 注意:(1)DMA每传输一次,其地址可能增加(1、2、4)、可能不变;(2)在CURR_SRC为0、且DMAACK为1时,将S_ADDR源基地址的值装入。寄存器地址R/W意义初值DCSRC00x4B000018RDMA0当前源地址寄存器0x00000000DCSRC10x4B000058RDMA1当前源地址寄存器0x00000000DCSRC20x4B000098RDMA2当前源地址寄存器0x00000000DCSRC30x4B0000D8RDMA3当前源地址寄存器0x000000003130……00CURR_SRC---当前数据源地址7、DCSRCn---DMA当前源地址寄存器嵌入式系统第四章S共178页,您现在浏览的是第32页!寄存器地址R/W意义初值DMASKTRIG00x4B000020R/WDMA0掩码触发寄存器0x00000000DMASKTRIG10x4B000060R/WDMA1掩码触发寄存器0x00000000DMASKTRIG20x4B0000A0R/WDMA2掩码触发寄存器0x00000000DMASKTRIG30x4B0000E0R/WDMA3掩码触发寄存器0x000000009、DMASKTRIGn---DMA掩码(Mask)触发寄存器31……3210保留(为0)STOPON/OFFSW_TRIG
嵌入式系统第四章S共178页,您现在浏览的是第33页!
对DMA应用注意: 在DMA运行中改变DISRCn、DIDSTn寄存器以及改变DCONn中TC的值,对DMA当前的整个传输没有影响。而其它寄存器或位值的改变,将立即影响传输。
嵌入式系统第四章S共178页,您现在浏览的是第34页! 一、S3C2410X的A/D转换器概述 S3C2410X中集成了一个8通道10位A/D转换器,A/D转换器自身具有采样保持功能。并且S3C2410X的A/D转换器支持触摸屏接口。A/D转换器的主要特性:分辨率:10位; 精度:±1LSB线性度误差:±1.5---2.0LSB;最大转换速率:500KSPS;输入电压范围:0~3.3v;系统具有采样保持功能;常规转换和低能源消耗功能;独立/自动的X/Y坐标转换模式。嵌入式系统第四章S共178页,您现在浏览的是第35页!
2、引脚信号(需要补充)
0:正常工作模式; 嵌入式系统第四章S共178页,您现在浏览的是第36页!
测量X坐标:从XP输出电压给X+端,从XM输出地电位给X-端;从YP脚输入按压点电压。 控制信号: nYPON=1; nYMON=0 nXPON=0; nXMON=1测Y测X嵌入式系统第四章S共178页,您现在浏览的是第37页!
3、S3C24120XA/D转换器的工作模式 有5种:普通转换模式、分离的X/Y坐标转换模式、连续的X/Y坐标转换模式、等待中断模式、静态模式。第2---4种是用于触摸屏。
(1)普通转换模式 用于一般A/D转换,不是用于触摸屏。转换结束后,其数据在ADCDAT0中的XPDATA域。
(2)分离的X/Y坐标转换模式 分两步进行X/Y坐标转换,其转换结果分别存于ADCDAT0中的XPDATA域中和ADCDAT1中的YPDATA域中,并且均会产生INT_ADC中断请求。
(3)自动(连续)的X/Y坐标转换模式 X坐标转换结束启动Y坐标转换,其转换结果分别存于ADCDAT0中的XPDATA域中和ADCDAT1中的YPDATA域中,然后产生INT_ADC中断请求。嵌入式系统第四章S共178页,您现在浏览的是第38页!
三、ADC和触摸屏专用寄存器 有5个专用寄存器RegisterAddressR/WDescriptionResetValueADCCON0x58000000R/WADC控制寄存器0x3FC4ADCTSC0x58000004R/W触摸屏控制寄存器0x058ADCDLY0x58000008R/WADC起始延迟寄存器0x00FFADCDAT00x5800000CRADC转换数据0寄存器-ADCDAT10x58000010RADC转换数据1寄存器-嵌入式系统第四章S共178页,您现在浏览的是第39页!SEL_MUX---模拟输入通道选择 000:AIN0; 001:AIN1 010:AIN2 011:AIN3 …… 111:AIN7STDBM---备用模式设置
0:正常工作模式; 1:备用模式,不做A/D转换READ_START---通过读取启动转换 0:停止通过读取启动转换;1:使能通过读取启动转换ENABLE_START---通过设置该位启动转换 0:无效; 1:启动A/D转换(启动后被清0) 注意:如果READ_START为1,则该位无效543210SEL_MUXSTDBMREAD_STARTENABLE_START嵌入式系统第四章S共178页,您现在浏览的是第40页!PULL---上拉切换使能 0:XP上拉使能; 1:XP上拉禁止AUTO_PST---自动连续转换X轴和Y轴坐标模式选择
0:普通A/D转换; 1:连续X/Y轴转换模式XY_PST---手动测量X轴和Y轴坐标模式选择
00:无操作模式; 01:对X坐标测量; 10:对X坐标测量; 11:等待中断模式876543210保留0YM_SENYP_SENXM_SENXP_SENPULL_UPAUTO_PSTXY_PST嵌入式系统第四章S共178页,您现在浏览的是第41页!UPDOWN---等待中断模式的按压状态 0:触笔点击; 1:触笔提起AUTO_PST---自动X/Y轴转换模式指示
0:普通转换模式; 1:X/Y轴坐标连续转换XY_PST---手动X/Y轴转换模式指示
00:无操作; 01:为X轴坐标转换 10:为Y轴坐标转换 11:为等待中断转换XPDATA[9:0]:为X轴坐标转换数值、或普通ADC转换数值 具体意义由其它位指示。其值为:0---0x3FF4、ADCDAT0---ADC转换数据0寄存器1514131211109……0UPDOWNAUTO_PSTXY_PST保留(0)XPDATA或普通ADC值第11次到此嵌入式系统第四章S共178页,您现在浏览的是第42页!
例题:编写程序,对3通道的模拟量连续做10次转换,用查询方式读取转换结果,其数据存于0x400000开始的区域。AREAADC,CODE,READONLY ENTRYSTART嵌入式系统第四章S共178页,您现在浏览的是第43页!4.5中断主要内容概述结构与工作原理寄存器应用举例嵌入式系统第四章S共178页,您现在浏览的是第44页!二、S3C2410X中断系统结构
1、中断系统结构 主要由中断源和控制寄存器两大部分构成,其寄存器主要有4种:模式、屏蔽、优先级、挂起(标志)寄存器等。中断源(有子寄存器)子中断源挂起寄存器中断源(无子寄存器)子中断源屏蔽寄存器中断屏蔽中断模式优先级仲裁FIQIRQ中断源挂起中断挂起嵌入式系统第四章S共178页,您现在浏览的是第45页!
中断服务程序工作流程:
先屏蔽中断,防止其他中断干扰中断服务程序的执行;
执行相应的中断服务子程序,在子程序中先要清除SRCPND和INTPND;
取消中断屏蔽;嵌入式系统第四章S共178页,您现在浏览的是第46页!
三、中断控制器专用寄存器 有8个专用寄存器RegisterAddressR/WDescriptionResetValueSRCPND0x4A000000R/W中断标志寄存器0x00000000INTMOD0x4A000004R/W中断模式寄存器0x00000000INTMSK0x4A000008R/W中断屏蔽寄存器0xFFFFFFFFPRIORITY0x4A00000CR/W中断优先级寄存器0x7FINTPND0x4A000010R/W中断服务寄存器0x00000000INTOFFSET0x4A000014R中断偏移寄存器0x00000000SUBSRCPND0x4A000018R/W子源挂起寄存器0x00000000INTSUBMSK0x4A00001CR/W中断子源屏蔽寄存器0x7FF
主要使用前5个寄存器嵌入式系统第四章S共178页,您现在浏览的是第47页! 该寄存器是设置各中断源是FIQ中断还是IRQ中断各位: 1:对应中断源设为FIQ中断模式 0:对应中断源设为IRQ中断模式
2、INTMOD---中断模式寄存器
位号中断源位号中断源位号中断源位号中断源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT_TIM46保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留16INT_LCD8INT_TICK0EINT0嵌入式系统第四章S共178页,您现在浏览的是第48页!
4、PRIORITY---中断优先级寄存器
ARB_SELn---n组优先级顺序控制位 00:REQ0,1,2,3,4,5 01:REQ0,2,3,4,1,5 10:REQ0,3,4,1,2,511:REQ0,4,1,2,3,5ARB_MODEn---n组优先级循环控制位 0:优先顺序固定不变 1:优先顺序循环,每响应一次中断,其顺序循环改变一次,但REQ0、REQ5位置不变。位号含义位号含义位号含义31:21保留12:11ARB_SEL24ARB_MODE420:19ARB_SEL610:9ARB_SEL13ARB_MODE318:17ARB_SEL58:7ARB_SEL02ARB_MODE216:15ARB_SEL46ARB_MODE61ARB_MODE114:13ARB_SEL35ARB_MODE50ARB_MODE0嵌入式系统第四章S共178页,您现在浏览的是第49页!
该寄存器的偏移值指示在INTPND中显示的中断源各位: 1:对应的中断源,在INTPND中被置位
说明:当在中断服务程序中对SRCPND、INTPND中的标志位清0时,该寄存器的对应位自动清0。6、INTOFFSET---中断偏移寄存器中断源偏移值中断源偏移值中断源偏移值中断源偏移值INT_ADC31INT_UART123INT_UART215nBATT_FLT7INT_RTC30INT_SPI022INT_TIM414保留6INT_SPI129INT_SDI21INT_TIM313EINT8_235INT_UART028INT_DMA320INT_TIM212EINT4_74INT_IIC27INT_DMA219INT_TIM111EINT33INT_USBH26INT_DMA118INT_TIM010EINT22INT_USBD25INT_DMA017INT_WDT9EINT11保留24INT_LCD16INT_TICK8EINT00嵌入式系统第四章S共178页,您现在浏览的是第50页!8、INTSUBMSK---子中断源屏蔽寄存器 对有多个中断源的外设,对具体的中断源进行屏蔽各位: 1:屏蔽对应的子中断源 0:开放对应的子中断源位号中断源位号中断源位号中断源31:11保留7INT_TXD23INT_RXD110INT_ADC6INT_RXD22INT_ERR09INT_TC5INT_ERR11INT_TXD08INT_ERR24INT_TXD10INT_RXD0嵌入式系统第四章S共178页,您现在浏览的是第51页! LTORG ;声明一个数据缓冲池的开始HandlerFIQ HANDLER HandleFIQHandlerIRQ HANDLER HandleIRQHandlerUndef HANDLER HandleUndefHandlerSWI HANDLER HandleSWIHandlerDabort HANDLER HandleDabortHandlerPabort HANDLER HandlePabort 本段意义:利用后面定义的宏来展开上面各行,使其进入它们所对应的中断服务子程序嵌入式系统第四章S共178页,您现在浏览的是第52页!
IRQ中断服务程序IsrIRQ sub sp,sp,#4 ;reservedforPC stmfd sp!,{r8-r9} ldr r9,=INTOFFSET ;中断偏移寄存器 ldr r9,[r9] ldr r8,=HandleEINT0 ;中断向量表首地址 add r8,r8,r9,lsl#2 ldr r8,[r8] str r8,[sp,#8] ldmfd sp!,{r8-r9,pc}
本段意义:根据中断服务号,转去执行相应的中断处理程序段。嵌入式系统第四章S共178页,您现在浏览的是第53页!4.6输入/输出端口主要内容概述寄存器应用举例嵌入式系统第四章S共178页,您现在浏览的是第54页!
二、端口寄存器及引脚配置 每一个端口都有4个寄存器,它们是:引脚配置寄存器、数据寄存器、引脚上拉寄存器等。RegisterAddressR/WDescriptionResetValueGPXCON0x560000x0R/W端口X配置寄存器XGPXDAT0x560000x4R/W端口X数据寄存器XGPXUP0x560000x8R/W端口X上拉寄存器XRESERVED0x560000xCR/W端口X保留寄存器-嵌入式系统第四章S共178页,您现在浏览的是第55页!1、端口A寄存器及引脚配置
位号位名位值:01位号位名位值:0122GPA22输出nFCE10GPA10输出ADDR2521GPA21输出nRSTOUT9GPA9输出ADDR2420GPA20输出nFRE8GPA8输出ADDR2319GPA19输出nFWE7GPA7输出ADDR2218GPA18输出ALE6GPA6输出ADDR2117GPA17输出CLE5GPA5输出ADDR2016GPA16输出nGCS54GPA4输出ADDR1915GPA15输出nGCS43GPA3输出ADDR1814GPA14输出nGCS32GPA2输出ADDR1713GPA13输出nGCS21GPA1输出ADDR1612GPA12输出nGCS10GPA0输出ADDR011GPA11输出ADDR26FCE:Flash片选嵌入式系统第四章S共178页,您现在浏览的是第56页!端口B引脚配置寄存器
位号位名位值:0001101121,20GPB10输入输出nXDREQ0Reserved19,18GPB9输入输出nXDACK0Reserved17,16GPB8输入输出nXDREQ1Reserved15,14GPB7输入输出nXDACK1Reserved13,12GPB6输入输出nXBACKReserved11,10GPB5输入输出nXBREQReserved9,8GPB4输入输出TCLK0Reserved7,6GPB3输入输出TOUT3Reserved5,4GPB2输入输出TOUT2Reserved3,2GPB1输入输出TOUT1Reserved1,0GPB0输入输出TOUT0Reserved嵌入式系统第四章S共178页,您现在浏览的是第57页!端口C引脚配置寄存器
位号位名位值位号位名位值000110110001101131,30GPC15输入输出VD7保留15,14GPC7输入输出LCDVF2保留29,28GPC14输入输出VD6保留13,12GPC6输入输出LCDVF1保留27,26GPC13输入输出VD5保留11,10GPC5输入输出LCDVF0保留25,24GPC12输入输出VD4保留9,8GPC4输入输出VM保留23,22GPC11输入输出VD3保留7,6GPC3输入输出VFRAME保留21,20GPC10输入输出VD2保留5,4GPC2输入输出VLINE保留19,18GPC9输入输出VD1保留3,2GPC1输入输出VCLK保留17,16GPC8输入输出VD0保留1,0GPC0输入输出VEND保留嵌入式系统第四章S共178页,您现在浏览的是第58页!端口D引脚配置寄存器位号位名位值位号位名位值000110110001101131,30GPD15输入输出VD23nSS015,14GPD7输入输出VD15保留29,28GPD14输入输出VD22nSS113,12GPD6输入输出VD14保留27,26GPD13输入输出VD21保留11,10GPD5输入输出VD13保留25,24GPD12输入输出VD20保留9,8GPD4输入输出VD12保留23,22GPD11输入输出VD19保留7,6GPD3输入输出VD11保留21,20GPD10输入输出VD18保留5,4GPD2输入输出VD10保留19,18GPD9输入输出VD17保留3,2GPD1输入输出VD9保留17,16GPD8输入输出VD16保留1,0GPD0输入输出VD8保留嵌入式系统第四章S共178页,您现在浏览的是第59页!端口E引脚配置寄存器位号位名位值位号位名位值000110110001101131,30GPE15输入输出IICSDA保留15,14GPE7输入输出SDDAT0保留29,28GPE14输入输出IICSCL保留13,12GPE6输入输出SDCMD保留27,26GPE13输入输出SPICLK0保留11,10GPE5输入输出SDCLK保留25,24GPE12输入输出SPISI0保留9,8GPE4输入输出IISSDO保留23,22GPE11输入输出SPISO0保留7,6GPE3输入输出IISSDI保留21,20GPE10输入输出SDDAT3保留5,4GPE2输入输出CDCLK保留19,18GPE9输入输出SDDAT2保留3,2GPE1输入输出IISSCLK保留17,16GPE8输入输出SDDAT1保留1,0GPE0输入输出IISLRCK保留嵌入式系统第四章S共178页,您现在浏览的是第60页!端口F引脚配置寄存器位号位名位值0001101115,14GPF7输入输出EINT7保留13,12GPF6输入输出EINT6保留11,10GPF5输入输出EINT5保留9,8GPF4输入输出EINT4保留7,6GPF3输入输出EINT3保留5,4GPF2输入输出EINT2保留3,2GPF1输入输出EINT1保留1,0GPF0输入输出EINT0保留嵌入式系统第四章S共178页,您现在浏览的是第61页!端口G引脚配置寄存器位号位名位值位号位名位值000110110001101131,30GPG15输入输出EINT23nYPON15,14GPG7输入输出EINT15SPICLK129,28GPG14输入输出EINT22YMON13,12GPG6输入输出EINT14SPISI127,26GPG13输入输出EINT21nXPON11,10GPG5输入输出EINT13SPISO125,24GPG12输入输出EINT20XMON9,8GPG4输入输出EINT12LCD-PEN23,22GPG11输入输出EINT19TCLK17,6GPG3输入输出EINT11nSS121,20GPG10输入输出EINT18保留5,4GPG2输入输出EINT10nSS019,18GPG9输入输出EINT17保留3,2GPG1输入输出EINT9保留17,16GPG8输入输出EINT16保留1,0GPG0输入输出EINT8保留LCD-PEN:POWER_ENABLEnSS0:SPI0_SELECT嵌入式系统第四章S共178页,您现在浏览的是第62页!端口H引脚配置寄存器
位号位名位值:0001101121,20GPH10输入输出CLKOUT1Reserved19,18GPH9输入输出CLKOUT0Reserved17,16GPH8输入输出UCLKReserved15,14GPH7输入输出RXD2nCTS113,12GPH6输入输出TXD2nRTS111,10GPH5输入输出RXD1Reserved9,8GPH4输入输出TXD1Reserved7,6GPH3输入输出RXD0Reserved5,4GPH2输入输出TXD0Reserved3,2GPH1输入输出nRTS0Reserved1,0GPH0输入输出nCTS0ReservedUCLK为USB的嵌入式系统第四章S共178页,您现在浏览的是第63页!nEN_SCKE---SCLK使能位。在电源关闭模式下对SDRAM做保护 0:正常状态 1:低电平nEN_SCLKx---SCLKx使能位。在电源关闭模式下对SDRAM做保护 0:SCLKx=SCLK 1:低电平nRSTCON---对nRSTOUT软件复位控制位 0:使nRSTOUT为低,0;1:使nRSTOUT为高,1151413121110987保留USBSUSPND1
USBSUSPND0
保留CLKSEL1
保留(1)MISCCR---混合控制寄存器31……2019181716保留(为0)nEN_SCKE
nEN_SCLK1
nEN_SCLK0
nRSTCON
6543210CLKSEL0
USBPAD
MEM_HZ_CONSPUCR_L
SPUCR_H
嵌入式系统第四章S共178页,您现在浏览的是第64页!USBPAD---与USB连接选择 0:与USB设备连接 1:与USB主机连接MEM_HZ_CON---MEM高阻控制位 0:Hi-Z 1:前一状态SPUCR_L---数据口低16位[15:0]上拉控制位 0:上拉 1:无上拉SPUCR_H---数据口高16位[31:16]上拉控制位 0:上拉 1:无上拉6543210CLKSEL0
USBPAD
MEM_HZ_CONSPUCR_L
SPUCR_H
嵌入式系统第四章S共178页,您现在浏览的是第65页!15…1211109876543210保留DCLK0CMPDCLK0DIV保留DCLK0SelCKDCLK0EN(2)DCLKCON---D时钟控制寄存器(续)31…28272625242322212019181716保留DCLK1CMP
DCLK1DIV
保留
DCLK1SEL
DCLK1ENDCLK1(0)SelCK---DCLK1(0)sourceclock选择 0:源时钟选择PCLK 1:源时钟选择UCLK(USB)DCLK1(0)EN---DCLK1(0)Enable 0:禁止 1:允许嵌入式系统第四章S共178页,您现在浏览的是第66页!EINT0~7---中断请求信号触发方式选择 000:低电平触发 001:高电平触发 01x:下降沿触发 10x:上升沿触发 11x:双边沿触发第3、7、11、15、19、23、27、31位---保留1514131211109876543210XEINT3XEINT2XEINT1XEINT0(1)EXTINT0---外中断触发方式控制寄存器031302928272625242322212019181716XEINT7XEINT6XEINT5XEINT4嵌入式系统第四章S共178页,您现在浏览的是第67页!EINT16~23---外中断请求信号触发方式选择 000:低电平触发 001:高电平触发 01x:下降沿触发 10x:上升沿触发 11x:双边沿触发第3、7、11、15、19、23、27、31位---为FILTEN各引脚滤波控制位 0:禁止滤波 1:使能滤波1514131211109876543210F19EINT19F18EINT18F17EINT17F16EINT16(3)EXTINT2---外中断控制寄存器231302928272625242322212019181716F23EINT23F22EINT22F21EINT21F20EINT20嵌入式系统第四章S共178页,您现在浏览的是第68页!FLTCLK16~19---外中断16~19滤波器时钟选择
0:PCLK 1:外部/振荡时钟(由OM引脚选择)EINTFLT16~19---外中断16~19滤波器宽度(频带宽度)
1514……876……0FLTCLK17EINTFLT17FLTCLK16EINTFLT16(1)EINTFLT2---外中断滤波控制寄存器23130……24232216FLTCLK19EINTFLT19FLTCLK18EINTFLT18嵌入式系统第四章S共178页,您现在浏览的是第69页!12、外中断屏蔽、标志寄存器
RegisterAddressR/WDescriptionResetValueEINTMAK0x560000A4R/W外中断屏蔽寄存器0x00FFFFF0EINTPEND0x560000A8R/W外中断标志寄存器0x0嵌入式系统第四章S共178页,您现在浏览的是第70页!外中断标志寄存器位号含义位号含义位号含义23EINT2315EINT157EINT722EINT2214EINT146EINT621EINT2113EINT135EINT520EINT2012EINT124EINT419EINT1911EINT113保留18EINT1810EINT102保留17EINT179EINT91保留16EINT168EINT80保留各位: 0:无中断请求 1:有中断请求
注意:对某位写1,则清除相应标志,即清为0.嵌入式系统第四章S共178页,您现在浏览的是第71页!nWEIT---引脚nWEIT状态nCON---引脚nCON状态RnB---引脚R/nB状态nBATT_FLT---引脚nBATT_FLT状态
注意:各位的数值0、1,随着对应引脚变化。31……43210保留nWEITnCONRnBnBATT_FLT(1)GSTATUS0---外部引脚状态寄存器嵌入式系统第四章S共178页,您现在浏览的是第72页!外中断举例staticvoid__irqEint0Int(void){ClearPending(BIT_EINT0);Uart_Printf("EINT0interruptisoccurred.\n");}staticvoid__irqEint1Int(void){ClearPending(BIT_EINT1);Uart_Printf("EINT1interruptisoccurred.\n");}嵌入式系统第四章S共178页,您现在浏览的是第73页!
switch(extintMode){case'1': rEXTINT0=(rEXTINT0&~((7<<4)|(0x7<<0)))|0x0<<4|0x0<<0; //EINT0/1=lowleveltriggered break;case'2': rEXTINT0=(rEXTINT0&~((7<<4)|(0x7<<0)))|0x1<<4|0x1<<0; //EINT0/1=highleveltriggered break;case'3': rEXTINT0=(rEXTINT0&~((7<<4)|(0x7<<0)))|0x2<<4|0x2<<0; //EINT0/1=fallingedgetriggered break;嵌入式系统第四章S共178页,您现在浏览的是第74页!Uart_Printf(“PresstheEINT0/1buttonsorPressanykeytoexit.\n”); //设置中断向量pISR_EINT0=(U32)Eint0Int; //将中断处理程序的开始pISR_EINT1=(U32)Eint1Int;; //地址送到中断向量表rEINTPEND=0xffffff;//清除EINTPND需要向其中写入数 据。因此这句代码的含义是清除EINTPND。rSRCPND=BIT_EINT0|BIT_EINT1; //toclearthepreviouspendingstatesrINTPND=BIT_EINT0|BIT_EINT1;rINTMSK=~(BIT_EINT0|BIT_EINT1);Uart_Getch();rEINTMASK=0xffffff;rINTMSK=BIT_ALLMSK;} (voidTest_Eint(void)函数结束) 注释:#defineBIT_ALLMSK(0xffffffff)嵌入式系统第四章S共178页,您现在浏览的是第75页!一、概述 1、S3C2410X定时器的主要特性 5个16位定时器; 2个8位预分频器和2个4位分频器; 可编程PWM输出占空比; 具有初值自动重装连续输出模式和单脉冲输出模式; 具有死区生成器。
S3C2410有5个16位的定时器,定时器0-3具有PWM(脉宽调制)功能。定时器4是一个内部定时器,没有输出引脚,供内部使用。定时器0有死区产生器,通常用于大电流设备控制。
有2个8位预分频器和2个4位分频器。定时器0和定时器1分享同一个8位的预分频器和分频器,定时器2、3、4分享另一个预分频器和分频器,分频器有1/2、1/4、1/8、1/16这4种分频值。定时器从分频器接收自己的时钟信号,时钟分频器从相应的预分频器接收时钟信号。嵌入式系统第四章S共178页,您现在浏览的是第76页!二、结构与工作原理1、定时器结构
(1)时钟控制:系统为每个定时器设置有:预分频器、分频器。
(2)定时器组成(5部分): 减法计数器、初值寄存器、比较寄存器、观察寄存器、控制逻辑等部分构成。嵌入式系统第四章S共178页,您现在浏览的是第77页!
2、工作原理
(1)定时器工作过程 装入初值、启动计数,计数结束产生中断请求,并且可以重装初值连续计数。如下图所示。嵌入式系统第四章S共178页,您现在浏览的是第78页!
(3)死区产生器
死区的概念:是一小段时间间隔,在这个时间间隔内,禁止两个开关同时处于开启状态。死区是在功率设备控制中常采用的一种技术,防止两个开关同时打开起反作用。 S3C2410的timer0具有死区发生器功能,可用于控制大功率设备。死区发生器开启前后输出波形对比嵌入式系统第四章S共178页,您现在浏览的是第79页!
3、计数时钟和输出计算1)定时器输入时钟频率fTclk(即计数时钟频率)
:fTclk=[f
pclk∕(Prescaler+1)]×分频值 式中:Prescaler,预分频值,0---255;分频值为1/2、1/4、1/8、1/16。2)PWM输出时钟频率:PWM输出时钟频率=fTclk∕
TCNTBn3)PWM输出信号占空比(即高电平持续时间所占信号周期的比例):PWM输出信号占空比=TCMPBn∕
TCNTBn嵌入式系统第四章S共178页,您现在浏览的是第80页!三、定时器专用寄存器 共有6种、17个寄存器TCNTBn---Timern计数初值寄存器(计数缓冲寄存器)。16位TCMPBn---Timern比较寄存器(比较缓冲寄存器)。16位TCNTOn---Timern计数读出寄存器。16位RegisterAddressR/WDescriptionResetValueTCFG00x51000000R/W配置寄存器00x00000000TCFG10x51000004R/W配置寄存器10x00000000TCON0x51000008R/W控制寄存器0x00000000TCNTBn0x510000xxR/W计数初值寄存器(5个)0x0000TCMPBn0x510000xxR/W比较寄存器(4个)0x0000TCNTOn0x510000xxR观察寄存器(5个)0x0000嵌入式系统第四章S共178页,您现在浏览的是第81页!2、TCFG1---DMA模式与分频选择寄存器DMAmode---DMA通道选择设置位
0000:不使用DMA方式,所有通道都用中断方式 0001:选择timer0 0010:选择timer1 0011:选择timer2 0100:选择timer3 0101:选择timer4 011X:保留MUX4~MUX0---timer4~timer0分频值选择
0000:1/2 0001:1/4 0010:1/8 0011:1/16 01XX:选择外部TCLK0、1(对timer0、1是选TCLK0,对timer4、3、2是选TCLK1)31…2423…2019…1615…1211…87…43…0保留(为0)DMAmodeMUX4MUX3MUX2MUX1MUX0嵌入式系统第四章S共178页,您现在浏览的是第82页!TR4~TR0---TIMER4~TIMER0运行控制位 0:停止 1:启动对应的TIMERTO3~TO0---TIMER4~TIMER0输出控制位 0:正相输出 1:反相输出DZE---TIMER0死区操作控制位 0:禁止死区操作 1:使能死区操作121110987…543210TR2TL1TO1TUP1TR1保留DZETL0TO0TUP0TR03、TCON---定时器控制寄存器(续)31…2322212019181716151413保留TL4TUP4TR4TL3TO3TUP3TR3TL2TO2TUP2嵌入式系统第四章S共178页,您现在浏览的是第83页! 3、定时器操作例子 (1)按照前面初始化定时器;设置TCNTBn=160(50+110),TCMPBn=110;手动装入初值后,又重设TCNTBn=80,TCMPBn=40; (2)启动定时器,按个初值计数; (3)与个比较值相同,输出取反; (4)次计数结束,自动重装初值80、40; (5)在次中断处理程序又重设TCMPBn=60; (8)在第二次中断处理程序禁止自动重装初值,准备结束计数; (10)第三次计数结束,不再计数。501104040206012346791058TOUTn嵌入式系统第四章S共178页,您现在浏览的是第84页!voidTest_TimerInt(void){variable0=0;variable1=0;variable2=0; variable3=0;variable4=0;rINTMSK=~(BIT_TIMER4|BIT_TIMER3|BIT_TIMER2|BIT_TIMER1|BIT_TIMER0);//将各个中断向量写入中断向量表中pISR_TIMER0=(int)Timer0Done;pISR_TIMER1=(int)Timer1Done;pISR_TIMER2=(int)Timer2Done;pISR_TIMER3=(int)Timer3Done;pISR_TIMER4=(int)Timer4Done;Uart_Printf("\n[Timer0,1,2,3,4InterruptTest]\n\n");
嵌入式系统第四章S共178页,您现在浏览的是第85页!Delay(1); //Topensatetimererror(<1tickperiod)if(variable4==8&&variable3==4&&variable2==2&&variable1==1&&variable0==1) Uart_Printf("Timer0,1,2,3,4InterruptTest-->OK\n"); else Uart_Printf("Timer0,1,2,3,4InterruptTest-->Fail.......\n");
嵌入式系统第四章S共178页,您现在浏览的是第86页!#defineBIT_TIMER0(0x1<<10)#defineBIT_TIMER1(0x1<<11)#defineBIT_TIMER2(0x1<<12)#defineBIT_TIMER3(0x1<<13)#defineBIT_TIMER4(0x1<<14)嵌入式系统第四章S共178页,您现在浏览的是第87页!一、概述
S3C2410的UART(通用异步串行口)有三个独立的异步串行I/O端口:UART0、UART1、UART2,每个串口都可以在中断和DMA两种模式下进行收发。UART支持的最高波特率达230.4kbps。
每个UART包含:波特率发生器、接收器、发送器和控制单元。波特率发生器以PCLK或UCLK为时钟源。发送器和接收器各包含1个16字节的FIFO寄存器和移位寄存器。
S3C2410的3个UART都有遵从1.0规范的红外传输功能,UART0、UART1有完整的握手信号,可以连接MODEM。 当发送数据的时候,数据先写到FIFO然后拷贝到发送移位寄存器,然后从数据输出端口(TxDn)依次被移位输出。被接收的数据也同样从接收端口(RxDn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水产养殖基地土地使用权合同
- 公司技术服务采购合同
- 豪华酒店厨师服务合同
- 电子产品购销合同标准版
- 房地产投资专项法律服务合同
- (完整版)农村土地租赁合同书
- 光学玻璃的紫外光固化涂层技术考核试卷
- 医疗用品行业服务平台拓展考核试卷
- 搪瓷原材料市场动态与价格趋势考核试卷
- 数字出版物的长期保存与数字遗产考核试卷
- 湖南有色金属职业技术学院单招职业技能测试参考试题库(含答案)
- (完整word版)体检报告单模版
- 船厂安全用电培训课件
- 新型抗肿瘤药物临床应用指导原则
- 中国居民膳食指南(全)
- Boomer-XL3D凿岩台车(修订版)
- 幼儿园小班故事《贪吃的小猪》课件
- 三年级(下)道德与法治第三单元教材分析课件
- Passport评估工具:项目复杂度评估表
- 南宁铁路局招聘2023年高校毕业生133人笔试参考题库(共500题)答案详解版
- 军用飞机改进方案
评论
0/150
提交评论