嵌入式系统课件:第四讲.ppt

上传人(卖家):罗嗣辉 文档编号:2040513 上传时间:2022-01-19 格式:PPT 页数:86 大小:4.41MB
下载 相关 举报
嵌入式系统课件:第四讲.ppt_第1页
第1页 / 共86页
嵌入式系统课件:第四讲.ppt_第2页
第2页 / 共86页
嵌入式系统课件:第四讲.ppt_第3页
第3页 / 共86页
嵌入式系统课件:第四讲.ppt_第4页
第4页 / 共86页
嵌入式系统课件:第四讲.ppt_第5页
第5页 / 共86页
点击查看更多>>
资源描述

1、CHAPTER 4微处理器微处理器S3C2410A2022-1-192内容提要内容提要S3C2410A简介简介存储器控制器存储器控制器最小系统构成最小系统构成I/O口口中断控制中断控制DMA控制控制2022-1-193内容提要内容提要S3C2410A简介简介存储器控制器存储器控制器最小系统构成最小系统构成I/O口口中断控制中断控制DMA控制控制2022-1-194S3C2410A简介简介o 概述概述nS3C2410是Samsung公司推出的16/32位RISC处理器,主要面向高性价比、低功耗的手持设备应用。nS3C2410有S3C2410X和S3C2410A两个型号,A型是X型的改进型,具有更

2、好的性能和更低的功耗。nS3C2410A采用16/32位ARM920T 内核,同时还采用了AMBA(Advanced Microcontroller Bus Architecture,先进的微控制器总线体系结构)新型总线结构。nARM920T采用了MMU,AMBA总线和Harvard高速缓存体系结构,该结构具有独立的16KB指令Cache和16KB数据Cache,每个Cache都是由8字长的行组成的。2022-1-195S3C2410A简介简介o S3C2410A的特点的特点-体系结构体系结构n采用ARM920T CPU内核,具有16/32位RISC体系结构和强大的指令集,为手持设备和通用嵌入

3、式应用提供片上集成系统解决方案;n增强的ARM体系结构MMU,支持WinCE、EPOC 32和Linux;n使用指令Cache、数据Cache、写缓冲器和物理地址TAG RAM,减少主存储器带宽和反应时间对性能的影响;nARM920T CPU内核支持ARM调试体系结构;n内部采用先进的微控制器总线体系结构(AMBA)(AMBA2.0,AHB/APB)。2022-1-196S3C2410A简介简介o S3C2410A的特点的特点-片上功能片上功能n采内核电压1.8V/2.0V,存储器电压3.3V,外部I/O电压3.3V;n具有16KB的I-Cache和16KB的D-Cache以及MMU;n外部存

4、储器控制器(SDRAM控制和片选逻辑);nLCD控制器(最大支持4K彩色STN和256K彩色TFT)提供1通道LCD专用DMA;n4通道DMA并有外部请求引脚端;n3通道UART/2通道SPI;n1通道多主设I2C总线和1通道I2S总线控制器;n版本1.0SD主接口和2.11兼容版MMC卡协议;2022-1-197S3C2410A简介简介o S3C2410A的特点的特点-片上功能(续)片上功能(续)n2个USB主设接口/1个USB从设接口(版本1.1);n4通道PWM定时器和1通道内部定时器;n看门狗定时器;n117位通用I/O口和24通道外部中断源;n电源控制模式有正常、慢速、空闲和电源关断

5、4种模式;n8通道10位ADC和触摸屏接口;n具有日历功能的RTC;n使用PLL的片上时钟发生器;n支持NAND Flash Boot Loadern中断控制器2022-1-198S3C2410A简介简介S3C2410A内部结构体系内部结构体系2022-1-199内容提要内容提要S3C2410A简介简介存储器控制器存储器控制器最小系统构成最小系统构成I/O口口中断控制中断控制DMA控制控制2022-1-1910S3C2410A存储器控制器存储器控制器o提供访问外部存储器所需要的控制信号,具有以下特性:提供访问外部存储器所需要的控制信号,具有以下特性:n支持小大端(通过软件选择)。n地址空间:每

6、个bank有128 MB(总共8个bank,共1 GB)。n除bank0只能是16/32位宽之外,其他bank都具有可编程的访问位宽(8/16/32位)。n总共有8个存储器bank(bank0bank7):其中6个用于ROM,SRAM等;剩下2个用于ROM,SRAM,SDRAM等。nbank0bank6采用固定的bank起始地址。nbank7起始地址是可调整的。nbank6和bank7的存储容量是可编程的,但两者大小相同 。n所有存储器bank的访问周期都是可编程的。n总线访问周期可以通过插入外部等待来扩展。n支持SDRAM的自刷新和掉电模式。2022-1-1911存储器映射存储器映射不使用N

7、AND Flash作为启动ROM 使用NAND Flash作为启动ROM注意:SROM表示是ROM或SRAM类型的存储器;SFR指特殊功能寄存器。2022-1-1912存储器映射存储器映射注:bank 6和bank 7必须具有相同的存储器大小。bank 6和和bank 7的地址的地址2022-1-1913内容提要内容提要S3C2410A简介简介存储器控制器存储器控制器最小系统构成最小系统构成I/O口口中断控制中断控制DMA控制控制2022-1-1914S3C2410A最小系统最小系统o 复位电路复位电路n在系统中,复位电路主要完成系统的上电复位和系统在运行在系统中,复位电路主要完成系统的上电复

8、位和系统在运行时用户的按键复位功能。复位电路可由简单的时用户的按键复位功能。复位电路可由简单的RC电路构成,电路构成,也可以使用其他的相对较复杂,但功能更完善的电路。也可以使用其他的相对较复杂,但功能更完善的电路。IMP811S复位电路2022-1-1915S3C2410A最小系统最小系统o 复位电路复位电路n在系统中,复位电路主要完成系统的上电复位和系统在运行在系统中,复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。复位电路可由简单的时用户的按键复位功能。复位电路可由简单的RC电路构成,电路构成,也可以使用其他的相对较复杂,但功能更完善的电路。也可以使用其他的相对较复杂,但功

9、能更完善的电路。RC复位电路2022-1-1916S3C2410A最小系统最小系统o 时钟电路时钟电路n在S3C2410A中的时钟控制逻辑能够产生CPU所需的FCLK时钟信号、AHB总线外围设备所需的HCLK时钟信号,以及APB总线外围设备所需的PCLK时钟信号。nS3C2410A有两个锁相环(Phase Locked Loops,PLL),一个用于FCLK,HCLK和PCLK,另一个专门用于USB模块(48 MHz)。时钟控制逻辑可以在不需要PLL的情况下产生慢速时钟,并且可以通过软件来控制时钟与每个外围模块是连接还是断开,从而降低功耗。nS3C2410A微处理器的主时钟可以由外部时钟源提供

10、,也可以由外部振荡器提供,如图3.3.3所示,采用哪种方式通过引脚OM3:2来进行选择2022-1-1917时钟电路时钟电路o 时钟源选择时钟源选择nOM3:2=00时,MPLL和UPLL的时钟均选择外部晶体振荡器;nOM3:2=01时,MPLL的时钟选择外部晶体振荡器;UPLL选择外部时钟源;nOM3:2=10时,MPLL的时钟选择外部时钟源;UPLL选择外部晶体振荡器;nOM3:2=11时,MPLL和UPLL的时钟均选择外部时钟源。2022-1-1918电源电路电源电路o在在S3C2410A中的电源管理模块具有中的电源管理模块具有4种有效模式:种有效模式:n正常模式 电源管理模块为CPU和

11、S3C2410A中的所有外设提供时钟。n慢速模式 又称无PLL模式。不使用PLL,而使用外部时钟(XTIPLL或EXTCLK)直接作为S3C2410A中的FCLK。n空闲模式 电源管理模块只断开CPU内核的时钟(FCLK),但仍为所有其他外围设备提供时钟。任何中断请求可以从空闲模式唤醒CPU。n掉电模式 电源管理模块断开内部电源。因此,除唤醒逻辑以外,CPU和内部逻辑都不会产生功耗。激活掉电模式需要两个独立的电源,一个电源为唤醒逻辑供电;另一个为包括CPU在内的其他内部逻辑供电,并且这个电源开关可以控制。在掉电模式下,为CPU和内部逻辑供电的第二个电源将关断。通过EINT15:0或RTC报警中

12、断可以从掉电模式唤醒S3C2410A。2022-1-1919S3C2410A电源引脚电源引脚o 在设计系统电源电路前对在设计系统电源电路前对S3C2410A的电源引脚进行分析的电源引脚进行分析nVDDalive引脚给处理器复位模块和端口寄存器提供1.8V电压;nVDDi和VDDiarm为处理器内核提供1.8V电压;nVDDi_MPLL为MPLL提供1.8V模拟电源和数字电源;nVDDi_UPLL为UPLL提供1.8V模拟电源和数字电源;nVDDOP和VDDMOP分别为处理器端口和处理器存储器端口提供3.3V电压;nVDD_ADC为处理器内的ADC系统提供3.3V电压;nVDDRTC为时钟电路提

13、供1.8V电压,该电压在系统掉电后仍需要维持。系统需要使用系统需要使用3.3V和和1.8V的直流稳压电源。的直流稳压电源。2022-1-1920电源电路设计电源电路设计o为简化系统电源电路的设计,要求整个系统的输入电压为高质量的5V直流稳压电源。VDD33提供给VDDMOP,VDDIO,VDDADC和VCC引脚,VDD18提供给VDDi_X。3.3V电源电路1.8V电源电路2022-1-1921内容提要内容提要S3C2410A简介简介存储器控制器存储器控制器最小系统构成最小系统构成I/O口口中断控制中断控制DMA控制控制2022-1-1922I/O口配置口配置o S3C2410A共有117个多

14、功能复用输入输出端口(I/O口),分为端口A端口H 8组,其中8组I/O口按照其位数的不同又可分为:端口A(GPA)是1个23位输出口;端口B(GPB)和端口H(GPH)是2个11位I/O口;端口C(GPC)、端口D(GPD)、端口E(GPE)和端口G(GPG)是4个16位I/O口;端口F(GPF)是1个8位I/O口。o 为了满足不同系统设计的需要,每个I/O口可以很容易地通过软件对进行配置。每个引脚的功能必须在启动主程序之前进行定义。如果一个引脚没有使用复用功能,那么它可以配置为I/O口。注意:端口 A除了作为功能口外,只能够作为输出口使用。2022-1-1923端口端口A I/O口配置情况

15、口配置情况端口端口A可选择的引脚端功能可选择的引脚端功能GPA22输出输出nFCEGPA21输出输出nRSTOUTGPA20输出输出nFREGPA19输出输出nFWEGPA18输出输出ALEGPA17输出输出CLEGPA16GPA12输出输出nGCS5nGCS1GPA11GPA1输出输出ADDR26ADDR16GPA0输出输出ADDR02022-1-1924端口端口B I/O口配置情况口配置情况端口端口B可选择的引脚端功能可选择的引脚端功能GPB10输入输入/输出输出nXDREQ0GPB9输入输入/输出输出nXDACK0GPB8输入输入/输出输出nXDREQ1GPB7输入输入/输出输出nXDA

16、CK1GPB6输入输入/输出输出nXBREQGPB5输入输入/输出输出nXBACKGPB4输入输入/输出输出TCLK0GPB3GPB0输入输入/输出输出TOUT3 TOUT02022-1-1925I/O口寄存器口寄存器o 在S3C2410A中,大多数的引脚端都是复用的,所以对于每一个引脚端都需要定义其功能。为了使用I/O口,首先需要定义引脚的功能。每个引脚端的功能通过端口控制寄存器(PnCON)来定义(配置)。o 与配置I/O口相关的寄存器包括:端口控制寄存器(GPACONGPHCON)、端口数据寄存器(GPADATGPHDAT)、端口上拉寄存器(GPBUPGPHUP)、杂项控制寄存器以及外部

17、中断控制寄存器(EXTINTN)等。在掉电模式,如果GPF0GPF7和GPG0GPG7用作为唤醒信号,那么这些端口必须配置为中断模式。o 如果端口配置为输出口,数据可以写入到端口数据寄存器(PnDAT)的相应位中;如果将端口配置为输入口,则可以从端口数据寄存器(PnDAT)的相应位中读出数据。2022-1-1926I/O口寄存器口寄存器o 端口上拉寄存器用于控制每组端口的上拉电阻为使能/不使能。如果相应位设置为0,则表示该引脚的上拉电阻使能;为1,则表示该引脚的上拉电阻不使能。如果使能了端口上拉寄存器,则不论引脚配置为哪种功能(输入、输出、DATAn、EINTn等),上拉电阻都会起作用。o 杂

18、项控制寄存器用于控制数据端口的上拉电阻、高阻状态、USB Pad和CLKOUT的选择。o 24个外部中断通过不同的信号方式被请求。EXTINTn寄存器用于配置这些信号对于外部中断请求采用的是低电平触发、高电平触发、下降沿触发、上升沿触发还是双边沿触发。有8个外部中断有数字滤波器。仅16 EINT引脚端(EINT15:0)用来作为唤醒源。2022-1-1927端口端口A控制寄存器控制寄存器寄存器寄存器地址地址读读/写写描述描述复位值复位值GPACON 0 x56000000 R/W 配置端口配置端口A引脚端,使用位引脚端,使用位22:0。设置为。设置为0:输出引脚端;:输出引脚端;设置为设置为1

19、:第:第2功能功能0 x7FFFFF GPADAT0 x56000004 R/W 端口端口A数据寄存器,使用位数据寄存器,使用位22:0 未定义未定义 保留保留0 x56000008 保留保留未定义未定义保留保留0 x5600000C 保留保留未定义未定义2022-1-1928端口端口B控制寄存器控制寄存器寄存器寄存器 地址地址 读读/写写描述描述复位值复位值 GPBCON 0 x56000010 R/W 配置端口配置端口B引脚端,使用位引脚端,使用位21:0,分别对端口分别对端口B的的11个引脚端进行配个引脚端进行配置。置。00:输入;:输入;01:输出;:输出;10:第:第2功功能;能;1

20、1:保留:保留0 x0 GPBDAT 0 x56000014 R/W 端口端口B数据寄存器,使用位数据寄存器,使用位10:0 未定义未定义GPBUP 0 x56000018 R/W 端口端口B上拉电阻不使能寄存器,使上拉电阻不使能寄存器,使用位用位10:0 。0:使能;:使能;1:不使能:不使能0 x0 保留保留0 x5600001C 保留保留未定义未定义2022-1-1929端口端口C控制寄存器控制寄存器寄存器寄存器地址地址 读读/写写 描述描述 复位值复位值GPCCON 0 x56000020 R/W 配置端口配置端口C引脚端,使用位引脚端,使用位31:0,分别对端口,分别对端口B的的16

21、个引脚端进行配置。个引脚端进行配置。00:输入;:输入;01:输出;:输出;10:第:第2功能;功能;11:保留:保留0 x0 GPCDAT 0 x56000024 R/W 端口端口C数据寄存器,使用位数据寄存器,使用位15:0 未定义未定义GPCUP 0 x56000028 R/W 端口端口C上拉电阻不使能寄存上拉电阻不使能寄存器,使用位器,使用位15:0 。0:使能;:使能;1:不使能:不使能0 x0 保留保留0 x5600002C 保留保留未定义未定义I/O寄存器总结寄存器总结2022-1-1930GPxCON用于选择引脚功能;用于选择引脚功能;GPxDAT用于读用于读/写引脚数据;写引

22、脚数据;GPxUP用于确定是否使用内部上拉电阻。用于确定是否使用内部上拉电阻。注意:注意: 1、PORT A与与PORT B-H在功能选择方面有所不同,在功能选择方面有所不同,GPACON中每一位中每一位对应一根引脚对应一根引脚(共共23根引脚根引脚)。当某位设为。当某位设为0时,相应引脚为输出引脚,此时,相应引脚为输出引脚,此时在时在GPADAT中相应位写入中相应位写入0或或1让此引脚输出低电平或高电平;当某位让此引脚输出低电平或高电平;当某位设为设为1时,相应引脚为地址线或用于地址控制,此时时,相应引脚为地址线或用于地址控制,此时GPADAT无用。一无用。一般而言般而言GPACON通常设为

23、全通常设为全1,以便访问外部存储器件。,以便访问外部存储器件。 2、PORT B-H在寄存器操作方面完全相同。在寄存器操作方面完全相同。GPxCON中每两位控制一根中每两位控制一根引脚:引脚:00表示输入、表示输入、01表示输出、表示输出、10表示特殊功能、表示特殊功能、11保留不用。保留不用。GPxDAT用于读用于读/写引脚:当引脚设为输入时,读此寄存器可知相应引脚写引脚:当引脚设为输入时,读此寄存器可知相应引脚的状态是高是低;当引脚设为输出时,写此寄存器相应位可令此引脚输的状态是高是低;当引脚设为输出时,写此寄存器相应位可令此引脚输出低电平或高电平。出低电平或高电平。I/O编程实例编程实例

24、2022-1-1931#define GPBCON (*(volatile unsigned long *)0 x56000010) #define GPBDAT (*(volatile unsigned long *)0 x56000014) int main() GPBCON = 0 x00004000; /设置GPB7为输出口 GPBDAT = 0 x00000000; /令GPB7输出0 return 0; 2022-1-1932内容提要内容提要S3C2410A简介简介存储器控制器存储器控制器最小系统构成最小系统构成I/O口口中断控制中断控制DMA控制控制2022-1-1933ARM系

25、统中断处理系统中断处理oARM系统支持复位、未定义指令、软中断、预取中止、数据中止、IRQ和FIQ 7种异常,每种异常对应不同的处理器模式,有对应的异常向量。o一旦有中断发生,正在执行的程序都会停下来,执行如下的中断步骤:(1)保存现场。保存当前PC值到R14,保存当前程序运行状态到SPSR。(2)模式切换。根据发生的中断类型,进入IRQ模式或FIQ模式。(3)获取中断服务子程序地址。PC指针跳到异常向量表所保存的IRQ或FIQ地址处,IRQ或FIQ的异常向量地址处一般保存的是中断服务子程序的地址,PC指针跳入到中断服务子程序,进行中断处理。(4)多个中断请求处理。ARM系统存在多个中断请求源

26、,比如串口中断、AD中断、外部中断等,可能出现多个中断源同时请求中断的情况。通常为这些中断定义不同的优先级别,并为每一个中断设置一个中断标志位。当发生中断时,通过判断中断优先级以及访问中断标志位的状态来识别哪一个中断发生了,进而调用相应的函数进行中断处理。(5)中断返回,恢复现场。当完成中断服务子程序后,将SPSR中保存的程序运行状态恢复到CPSR中,R14中保存的被中断程序的地址恢复到PC中,继续执行被中断的程序。2022-1-1934中断控制器中断控制器o S3C2410A采用ARM920T CPU内核,ARM920T CPU的中断包含有IRQ和FIQ。IRQ是普通中断,FIQ是快速中断,

27、FIQ的优先级高于IRQ。FIQ中断通常在进行大批量的复制、数据传输等工作时使用。o S3C2410A通过对程序状态寄存器(CPSR)中的F位和I位进行设置控制CPU的中断响应。n如果设置CPSR的F位为1,则CPU不会响应来自中断控制器的FIQ中断;n如果设置CPSR的I位为1,则CPU不会响应来自中断控制器的IRQ中断。n如果设置CPSR的F位或I位设置为0,同时将中断屏蔽寄存器(INTMSK)中的相对应位设置为0,CPU响应来自中断控制器的IRQ或FIQ中断请求。2022-1-1935中断屏蔽寄存器和挂起寄存器中断屏蔽寄存器和挂起寄存器o 中断屏蔽寄存器用于指示中断是否禁止。n如果设置中

28、断屏蔽寄存器中的相对应屏蔽位为1,表示相对应的中断禁止;n如果设置为0,表示中断发生时将正常执行中断服务。n如果发生中断时相对应的屏蔽位正好为1,则中断挂起寄存器中的相对中断源挂起位将置1。o S3C2410A有SRCPND(中断源挂起寄存器)和INTPND(中断挂起寄存器)两个中断挂起寄存器。SRCPND和INTPND两个挂起寄存器用于指示某个中断请求是否处于挂起状态。当多个中断源请求中断服务时,SRCPND寄存器中的相应位设置为1,仲裁过程结束后INTPND寄存器中只有1位被自动设置为1。2022-1-1936中断源中断源oS3C2410A中的中断控制器能够接收来自中的中断控制器能够接收来

29、自56个中断源的请求,这个中断源的请求,这些中断源来自些中断源来自DMA控制器、控制器、UART、I2C及外部中断引脚等。及外部中断引脚等。中断源中断源描述描述仲裁器分组仲裁器分组INT_ADCADCEOC和触摸中断和触摸中断(INT_ADC/INT_TC)ARB5INT_RTCRTC报警中断报警中断ARB5INT_SPI1SPI1中断中断ARB5INT_UART0UART0中断(故障、接收和发中断(故障、接收和发送)送)ARB5INT_IICI2 C中断中断ARB4VINT_USBHUSB主设备中断主设备中断ARB4INT_USBUSB从设备中断从设备中断ARB4保留保留保留保留ARB4IN

30、T_UART1UART1中断(故障、接收和发中断(故障、接收和发送)送)ARB4INT_SPI0SPI0中断中断ARB4INT_SDISDI中断中断ARB3INT_DMA3DMA通道通道3中断中断ARB3INT_DMA2DMA通道通道2中断中断ARB3INT_DMA1DMA通道通道1中断中断ARB3INT_DMA0DMA通道通道0中断中断ARB3中断源中断源描述描述仲裁器分组仲裁器分组INT_LCDLCD中断中断ARB3INT_UART2UART2中断(故障、接收和发中断(故障、接收和发送)送)ARB2INT_TIMER4定时器定时器4中断中断ARB2INT_TIMERS定时器定时器3中断中断

31、ARB2INT_TIMER2定时器定时器2中断中断ARB2INT_TIMER1定时器定时器1中断中断ARB2INT_TIMER0定时器定时器0中断中断ARB2INT_WDT看门狗定时器中断看门狗定时器中断ARB1INT_TICKRTC时钟滴答中断时钟滴答中断ARB1nBATT_FLT电源故障中断电源故障中断ARB1保留保留保留保留ARB1EINT8_23外部中断外部中断823ARB1EINT4_7外部中断外部中断47ARB1EINT3外部中断外部中断3ARB0EINT2外部中断外部中断2ARB0EINTI外部中断外部中断1ARB0EINT0外部中断外部中断0ARB02022-1-1937中断源

32、中断源o 从上表可以看出,S3C2410A共有32个中断请求信号。S3C2410A采用了中断共享技术,INT_UARTO、INT_UART1、INT_UART2、EINT8_23和EINT4_7为多个中断源共享使用的中断请求信号。o 中断请求的优先级逻辑是由7个仲裁器组成的,其中包括6个一级仲裁器和1个二级仲裁器。每个仲裁器是否使能由寄存器PRIORITY6:0决定。每个仲裁器可以处理46个中断源,从中选出优先级最高的。优先级顺序由寄存器PRIORITY20:7的相应位决定。2022-1-1938优先级生成模块2022-1-1939中断控制器的特殊寄存器中断控制器的特殊寄存器o SRCPNDo

33、 INTMODo INTMSKo PRIORITYo INTPNDo INTOFFSETo SUBSRCPNDo INTSUBMSK2022-1-1940SRCPND寄存器寄存器o SRCPND 寄存器包括32 位,每位与一个中断源相关。如果相应的中断源产生中断请求且等待中断服务,则每个位置1。因此这个寄存器指出那个中断源在等待请求服务。o 对于一个特定中断源的中断服务程序中,SRCPND 寄存器的相应位必须被清除目的是下次能正确得到同一个中断源的中断请求。o 如果从中断服务程序返回却没有清除该位,中断控制器将操作好像又有同一个中断源的中断请求到来。换言之,如果SRCPND的一个特殊位置1,其

34、总是认为一个有效的中断请求等待服务。o 通过写数据到这个寄存器来清除SRCPND 寄存器的某个位。对相应位置1 来清除相应位;对相应位写0,则该位的数值保持不变。2022-1-1941INTMOD寄存器寄存器o 该寄存器包括32 位,每位与一个中断源相关。如果某位置1,相应的中断将在FIQ模式下处理。否则在IRQ模式下操作。o 请注意仅有一个中断源能够在FIR模式下服务,也就是说,INTMOD仅有一个位可以被置1。2022-1-1942INTMSK寄存器寄存器o 该寄存器包括32 位,每个都是和一个中断源相关。如果某位置1,则CPU不会服务相应中断源的中断请求(注意SRCPND的相应位还是会被

35、置1)。如果屏蔽位为0,中断请求可以被服务。2022-1-1943INTPND寄存器寄存器o 中断悬挂寄存器的32 位显示是否相应的中断请求有最高优先级,其中断请求未屏蔽且在等待中断服务。因为INTPND寄存器位于优先级逻辑之后,仅1 位可以被置1,且中断请求生成对CPU的IRQ。o 在对于IRQ的中断服务程序中,我们可以读取寄存器决定那个中断源被服务。2022-1-1944外中断控制寄存器外中断控制寄存器寄存器寄存器地址地址读读/写写描述描述复位值复位值EXTINT00 x56000088R/W外部中断控制寄存器外部中断控制寄存器0 ,使用位,使用位30:0,分别对,分别对EINT7EINT

36、0触发触发信号进行配置。信号进行配置。000:低电平触发;:低电平触发;001:高电平触发:高电平触发;01x:下降沿下降;:下降沿下降;10 x:上升沿触:上升沿触发;发;11x:双边沿触发:双边沿触发0 x0EXTINT10 x5600008CR/W外部中断控制寄存器外部中断控制寄存器1,使用位,使用位30:0,分别对分别对EINT15EINT8触发信号进触发信号进行配置。行配置。000:低电平触发;:低电平触发;001:高电平触发:高电平触发;01x:下降沿下降;:下降沿下降;10 x:上升沿触:上升沿触发;发;11x:双边沿触发:双边沿触发0 x0EXTINT20 x56000090R

37、/W外部中断控制寄存器外部中断控制寄存器2,使用位,使用位30:0,分别对分别对EINT23EINT16触发信号进触发信号进行配置。行配置。000:低电平触发;:低电平触发;001:高电平触发:高电平触发;01x:下降沿下降;:下降沿下降;10 x:上升沿触:上升沿触发;发;11x:双边沿触发。:双边沿触发。位位31为为EINT23滤波器使能控制,滤波器使能控制,1:使能;使能;0:不使能:不使能0 x02022-1-1945寄存器寄存器地址地址 读读/写写 描述描述 复位值复位值EINTMASK 0 x560000A4 R/W 外部中断屏蔽寄存器,使用位外部中断屏蔽寄存器,使用位23:4 控

38、制控制EINT23EINT4中断屏蔽。中断屏蔽。0:使能中断;:使能中断;1:屏蔽中断:屏蔽中断0 x00FFFFF0 寄存器寄存器地址地址 读读/写写 描述描述 复位值复位值EINTPEND 0 x560000A8 R/W 外部中断挂起寄存器,使用位外部中断挂起寄存器,使用位23:4 控制控制EINT23EINT4中断请求。中断请求。0:不被请求;:不被请求;1:被请求:被请求 0 x0 外部中断挂起寄存器外部中断挂起寄存器外部中断屏蔽寄存器外部中断屏蔽寄存器2022-1-1946中断处理流程图中断处理流程图2022-1-1947S3C2410A的中断编程实例的中断编程实例o程序功能:通过定

39、时器1控制一个led灯每1秒钟改变一次状态。(假设led连在端口C1上)n(1)对定时器1初始化,并设定定时器的中断时间为1,具体代码参见Timed_init( )函数。void Timerl_init(void)rGPCCON = rGPCCON&0 xfffffffc|0 x00000001; rGPCDAT= rGPCDAT |0 x001;rTCFG0 = 255;rTCFG1 = 04;rTCNTB1 = 48828; /在pclk 50MHz下,1s的记数值 /rTCNTB1 = 50000000/4/256=48828;rTCMPB1 0 x00;rTCON (1+11) | (

40、19) | (08);/禁用定时器1,手动加载rTCON (1+11) | (09) | (18);/启动定时器1,自动装载2022-1-1948S3C2410A的中断编程实例的中断编程实例o (2)为了使CPU响应中断,在中断服务子程序执行之前,必须打开ARM920T的CPSR中的I位,以及相应的中断屏蔽寄存器中的位。打开相应的中断屏蔽寄存器中的位,是在TimerlINT Init()函数中实现的,具体代码如下。void TimerlINT_Init(void) /定时器接口使能if(rINTPNDBIT_TIMER1) rSRCPND | = BIT_TIMER1;pISR_TiMER1=

41、(int)Timer1_ISR; /写入定时器1中断服务子程序的入口地址rINTMSK (BIT_TIMER1); /开中断;2022-1-1949S3C2410A的中断编程实例的中断编程实例o (3)等待定时器中断,通过一个死循环,如“while(1);”实现等待过程。o (4)根据设置的定时时间,产生定时器中断。中断发生后,首先进行现场保护,然后转入中断的入口代码处执行。该部分代码通常使用汇编语言编写。在执行中断服务程序之前,要确保HandleIRQ地址处保存中断分发程序IsrIRQ的入口地址,代码如下。ldr r0, HandleIRQldr r1, IsrIRQstr r1,r0202

42、2-1-1950S3C2410A的中断编程实例的中断编程实例接下来将执行IsrIRQ中断分发程序,具体代码如下。IsrIRQsub sp,sp,#4; /为保存PC预留堆栈空间stmfd sp!,r8-r9ldr r9, INTOFFSETldr r9,r9; /加载INTOFFSET寄存器值到r9ldr r8,HandleEINT0; /加载中断向量表的基地址到r8add r8,r8,r9,lsl #2; /获得中断向量ldr r8, r8; /加载中断服务程序的入口地址到r8str r8,sp,#8; /保存sp,将其作为新的pc值ldmfd sp!,r8-r9,pc; /跳转到新的pc处

43、执行, /即跳转到中断服务子程序执行2022-1-1951S3C2410A的中断编程实例的中断编程实例o(5)执行中断服务子程序,该子程序实现led灯每一秒钟改变一次状态。看到LEDl灯闪烁一次,则说明定时器发生了一次中断。具体实现见函数Timerl_ISR()。int f ;void _ _irq Timer1_ISR(void)If (f= = 0) rGPBDAT = rGPBDAT | 0 x001;f=1;If (f= = 1) rGPBDAT= rGPBDAT &0 x0;f=0;rSRCPND |= BIT_TIMER1;rINTPND |= BIT_TIMER1;2022-1-

44、1952S3C2410A的中断编程实例的中断编程实例o (6)从中断返回,恢复现场,跳转到被中断的主程序继续)从中断返回,恢复现场,跳转到被中断的主程序继续执行,等待下一次中断的到来。执行,等待下一次中断的到来。2022-1-1953内容提要内容提要S3C2410A简介简介存储器控制器存储器控制器最小系统构成最小系统构成I/O口口中断控制中断控制DMA控制控制2022-1-1954DMA工作原理工作原理o DMA(Direct Memory Access,直接存储器存取)方式是指存储器与外设在DMA控制器的控制下,直接传送数据而不通过CPU,传输速率主要取决于存储器存取速度。在DMA传输过程中

45、,DMA控制器负责管理整个操作,并且无须CPU介入,从而大大提高了CPU的工作效率。DMA方式为高速I/O设备和存储器之间的批量数据交换提供了直接的传输通道。由于I/O设备直接同内存发生成块的数据交换,可以提高I/O效率。现在大部分计算机系统均采用DMA技术。许多输入输出设备的控制器都支持DMA方式。2022-1-1955DMA工作原理工作原理o 在进行DMA数据传送之前,DMA控制器会向CPU申请总线控制权,CPU如果允许,则将控制权交出。因此,在数据交换时,总线控制权由DMA控制器掌握,在传输结束后,DMA控制器将总线控制权交还给CPU。 o DMA的主要优点:n可以不通过CPU的干预来实

46、现数据的传输,DMA的运行可以通过软件、内部外设或外部请求引脚信号的请求来初始化。2022-1-1956DMA传输过程传输过程o 采用DMA方式进行数据传输的具体过程如下:n(1)外设向DMA控制器发出DMA请求。n(2)DMA控制器向CPU发出总线请求信号。n(3)CPU执行完现行的总线周期后,向DMA控制器发出响应请求的回答信号。n(4)CPU将控制总线、地址总线及数据总线让出,由DMA控制器进行控制。n(5)DMA控制器向外部设备发出DMA请求回答信号。n(6)进行DMA传送。n(7)数据传送完毕,DMA控制器通过中断请求线发出中断信号。CPU在接收到中断信号后,转入中断处理程序进行后续

47、处理。n(8)中断处理结束后,CPU返回到被中断的程序继续执行。CPU重新获得总线控制权。2022-1-1957S3C2410A的的DMA控制器控制器o 在系统总线和外围总线之间,S3C2410A有4个DMA控制器。每个DMA控制器可以处理以下4种情况:n(1)源和目的都在系统总线上;n(2)源在系统总线上,目的在外围总线上;n(3)源在外围总线上,目的在系统总线上;n(4)源和目的都在外围总线上。o 如果DCON寄存器选择采用硬件(H/W)DMA请求模式,DMA控制器可以从对应通道的DMA请求源中选择一个。如果DCON寄存器选择采用软件(S/W)DMA请求模式,那么这些DMA请求源将没有任何

48、意义。2022-1-1958DMA请求源通道通道请求源请求源0请求源请求源1请求源请求源2请求源请求源3请求源请求源4通道通道0nXDREQ0UART0SDI定时器定时器USB设备设备EP1通道通道1nXDREQ1UARTII2 SSDISPI0USB设备设备EP2通道通道2I2SSDOI2SSDISDI定时器定时器USB设备设备EP3通道通道3UART2SDISPI1定时器定时器USB设备设备EP4nXDREQ0和和nXDREQ1表示两个外部源(外部设备),表示两个外部源(外部设备),I2SSDO和和I2SSDI分别表示分别表示IIS 的发送和接收。的发送和接收。 2022-1-1959DM

49、A专用寄存器专用寄存器o 每一个DMA通道都有9个控制寄存器 (4个通道共计36个寄存器) 。 6个控制寄存器用来控制DMA 传输,其它3个监视DMA控制器的状态。要进行DMA操作,首先需要对这些寄存器进行正确配置。o (1) DMA初始源寄存器(DISRC)n用于存放要传输的源数据的起始地址。2022-1-1960o (2) DMA初始化源控制寄存器(DISRCC) n用于控制源数据在AHB总线还是APB总线上并控制地址增长方式 。2022-1-1961o (3) DMA初始化目标地址寄存器(DIDST)n用于存放传输目标的起始地址。 2022-1-1962o (4) DMA初始化目标控制寄

50、存器(DIDSTC)n用于控制目标位于AHB总线还是APB总线上,并控制地址增长方式。 2022-1-1963o (5)DMA控制寄存器(DCON)n有4个DMA控制寄存器(DCON)(DCON0DCON3),DMA控制寄存器的位描述见课本。2022-1-1964o (6)DMA状态寄存器(DSTAT)n用于保存DMA0DMA3计数寄存器状态。2022-1-1965o (7)DMA当前源寄存器(DCSRC)n用于保存DMAn的当前源地址。2022-1-1966o (8)DMA当前目标寄存器(DCDST)n用于保存DMAn的当前目标地址。2022-1-1967o (9) DMA屏蔽触发寄存器(D

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(嵌入式系统课件:第四讲.ppt)为本站会员(罗嗣辉)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|