嵌入式系统-第二章.ppt

上传人:小飞机 文档编号:6414963 上传时间:2023-10-28 格式:PPT 页数:53 大小:656.50KB
返回 下载 相关 举报
嵌入式系统-第二章.ppt_第1页
第1页 / 共53页
嵌入式系统-第二章.ppt_第2页
第2页 / 共53页
嵌入式系统-第二章.ppt_第3页
第3页 / 共53页
嵌入式系统-第二章.ppt_第4页
第4页 / 共53页
嵌入式系统-第二章.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《嵌入式系统-第二章.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统-第二章.ppt(53页珍藏版)》请在三一办公上搜索。

1、ARM9嵌入式系统设计与开发应用,教师:电气与信息学院 万琴,2,第二章 基于ARM920T核微处理器,通用处理器系列 ARM7、ARM9、ARM9E和ARM10E的特点及主要应用领域嵌入式ARM920T内核编程模型、ARM920T的运行模式、寄存器组织及ARM体系结构的存储器格式三星S3C2410X处理器结构,3,2.1 ARM 处理器简介,ARM(Advanced RISC Machines)处理器是一种低功耗高性能的32位RISC处理器。什么是RISC架构?,嵌入式微处理器可分为CISC和RISC两类(复杂指令集计算机Complex Instruction Set ComputerCIS

2、C;精简指令集计算机Reduced Instruction Set ComputerRISC)。大家熟悉的大多数台式PC都是使用CISC微处理器,如Intel的x86。RISC结构体系有两大主流:Silicon Graphics公司(硅谷图形公司)的MIPS技术;ARM公司的Advanced RISC Machines技术。,4,RISC和CISC是目前设计制造微处理器的两种典型技术,为达到高效的目的,采用的方法不同。它们的差异主要有以下几点。(1)指令系统:RISC设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来实现。而CISC计算机的

3、指令系统比较丰富,有专用指令来完成特定的功能。(2)存储器操作:RISC对存储器操作有限制,使控制简单化;而CISC机器的存储器操作指令多,操作直接。(3)程序:RISC汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC汇编语言程序编程相对简单,科学计算及复杂操作的程序设计相对容易,效率较高。(4)中断:RISC机器在一条指令执行的适当地方可以响应中断;而CISC机器是在一条指令执行结束后响应中断的。,5,(5)CPU:由于RISC CPU包含较少的单元电路,因而面积小、功耗低;而CISC CPU包含丰富的电路单元,因而功能强、面积大、功耗大。(6)设计周期:RI

4、SC微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC微处理器结构复杂,设计周期长。(7)易用性:RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。(8)应用范围:RISC机器更适合于嵌入式应用;而CISC机器则更适合于通用计算机。,目前CISC与RISC正在逐步走向融合,如Pentium Pro的内核是基于RISC体系结构,而能接受CISC指令后将其分解分类成RISC指令以便在遇一时间内能够执行多条指令。由此可见,下一代的CPU将融合CISC与RISC两种技术,从软件与硬件方面看二者会取长补短。,6,ARM处理

5、器的主要特点,共有31个32位寄存器:16个在任何模式下可见所有指令都带有条件加载数值的同时进行算术和移位操作在几种模式下操作2.1.1 ARM 微处理器系列ARM7系列:工业控制、网络设备、移动电话ARM9系列ARM9E系列ARM10E系列SecurCore系列:安全要求较高的应用,如电子银行Intel的StrongARM:便携式通信产品,如掌上电脑Intel的Xscale:Intel主推的ARM微处理器,已用于数字移动电话,通用处理器,无线设备、消费类电子产品,7,2.1.2 ARM7系列微处理器,嵌入式ICE-RT(In Circuit Emulator-Rral Time)逻辑,调试开

6、发方便 解释:用于提供片内调试支持,它包含一个调试通信通道,在主机调试器和目标之间传送信息,嵌入式ICE-RT通过JTAG测试访问接口进行控制。极低的功耗,适用于便携产品能够提供0.9MIPS/MHZ 的三级流水线结构 解释:三级流水线结构是 取指-译码-执行对操作系统的广泛支持:Windows CE、Linux指令系统与ARM9、ARM9E、ARM10E兼容主频高达130MHZ,可用于高速运算,具有低功耗的32位RISC处理器,主要特点:,8,ARM7TDMI是目前使用最广泛的内核:T:支持16位压缩指令集 Thumb.Thumb简介:为兼容数据总线宽度为16位的应用系统,ARM体系结构除了

7、支持执行效率很高的32位ARM指令集以外,同时支持16位的Thumb指令集。Thumb指令集是ARM指令集的一个子集,是针对代码密度问题而提出的,它具有16位的代码宽度。与等价的32位代码相比较,Thumb指令集在保留32位代码优势的同时,大大的节省了系统的存储空间。Thumb不是一个完整的体系结构,不能指望处理器只执行Thumb指令集而不支持ARM指令集。,9,D:支持片上Debug,实现实时调试M:内嵌硬件乘法器(multiplier)解释:硬件乘法器可以在单个指令周期内完成乘法操作,是区别于通用的微处理器的重要标志 I:嵌入式ICE,支持片上断点和调试点,10,2.1.3 ARM9系列微

8、处理器,具有高性能、低功耗,主要特点:5级流水线,具有分开的指令和数据存储器,指令执行效率更高,具体如下:,(1)取指:从存储器中取出指令,并将其放入指令流水线。(2)译码:对指令进行译码。(3)执行:把一个操作数移位,产生ALU(算术逻辑单元)的结果。(4)缓冲/数据:如需要则访问数据存储器;否则ALU的结果只是简单地缓冲1个时钟周期,以便所有的指令具有同样的流水线流程。(5)回写:将指令产生的结果回写到寄存器,包括任何从存储器中读取的数据。,5级流水线图,11,提供1.1MIPS/MHZ 的哈佛结构 哈佛结构:是一种将程序指令存储和数据存储分开的存储器结构。支持32位ARM指令集和16位T

9、humb指令集。支持32位的高速AMBA总线接口 AMBA:将RISC处理器集成在其他IP芯核和外设中,它是有效连接IP核的“数字胶”,并且是ARM复用策略的重要组件。它不是芯片与外设之间的接口,而是ARM内核与芯片上其他元件进行通信的接口。,全性能的MMU支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。MMU:MemoryManagementUnit,内存管理单元,负责虚拟地址与物理地址的转换。达到每个用户进程都拥有自己独立的地址空间的目标。MPU(Memory Protection Unit,内存保护单元)支持实时操作系统 支持数据Cache(高速缓冲存储器)

10、和指令Cache,12,2.2 ARM 920T简介,ARM920T是ARM920TDMI系列中的一款通用性的微处理器,ARM920TDMI系列微处理器包含如下几种类型的内核。ARM9TDMI:只有内核。ARM940T:由内核、高速缓存和内存保护单元(MPU)组成。ARM920T:由内核、高速缓存和内存管理单元(MMU)组成。,13,ARM920T以ARM9TDMI为内核,增加了高速缓存和内存管理单元(MMU),系统结构图如图4.3所示。,ARM920T 结构功能图,内置追踪宏单元:ETM定义了一个物理跟踪端口用来传输程序执行流程的信息,RISC CPU,16K字节指令缓存,指令存储器管理单元

11、,高级微处理器总线架构,协处理器:系统控制处理器,16K字节数据缓存,数据存储器管理单元,写缓冲器,14,ARM920T处理器的主要特性,ARM9TDMI 内核,ARM v4T 架构(ARM版本4,支持Thumb)两套指令集:ARM高性能32位指令集、Thumb高代码密度16位指令集。5级流水线结构 16K字节数据缓存、指令缓存 标准的ARMv4存储器管理单元(MMU)8位、16位、32位的指令总线与数据总线。,15,2.2.1 ARM920T内核编程模型,字(Word),在ARM体系结构中,字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位。半字(Half-Word),

12、在ARM体系结构中,半字的长度为16位,与8位/16位处理器体系结构中字的长度一致。字节(Byte),在ARM体系结构和8位/16位处理器体系结构中,字节的长度均为8位。指令长度可以是32位(在ARM状态下),也可以为16位(在Thumb状态下)。ARM920T中支持字节(8位)、半字(16位)、字(32位)3种数据类型,其中,字需要4字节对齐,半字需要2字节对齐。,16,ARM微处理器的工作状态从编程的角度看,ARM920T微处理器的工作状态一般有两种:ARM状态,此时处理器执行32位的、字对齐的ARM指令;Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。ARM指令集和Th

13、umb指令集均有切换处理器状态的指令,在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令(跳转指令)的方法,使微处理器从ARM状态切换到Thumb状态。当操作数寄存器的状态位为0时,执行BX指令可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,将PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。,17,2.2.2 ARM 体系结构

14、的存储器格式,ARM920T体系结构将存储器看做是从零地址开始的字节的线性组合。从0字节到3字节放置第1个存储的字数据,从第4个字节到第7个字节放置第2个存储的字数据,依次排列。作为32位的微处理器,ARM920T体系结构所支持的最大寻址空间为4GB(232字节)。ARM920T体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。大端格式中字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,如下图所示。,18,与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。如下图所示:,19,2.2.3 处理器模式,ARM920T支持7

15、种运行模式,分别为:用户模式(usr),ARM处理器正常的程序执行状态;快速中断模式(fiq),用于高速数据传输或通道处理;外部中断模式(irq),用于通用的中断处理;管理模式(svc),操作系统使用的保护模式;数据访问终止模式(abt),当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护;系统模式(sys),运行具有特权的操作系统任务;未定义指令中止模式(und),当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资

16、源是不能被访问的。除用户模式以外,其余的6种模式称为非用户模式或特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及访问受保护的系统资源等情况。,20,2.2.4 寄存器组织,ARM920T共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决于微处理器的工作状态及具体的运行模式。在ARM状态下,任一时刻可以访问16个通用寄存器和12个状态寄存器。1、ARM状态下的寄存器组织(R0R15)未分组寄存器R0R7分组寄存器R8R14程序计数器PC(R15)1)未分组寄存器R0-R7:在所

17、有运行模式下,指向同一个物理寄存器,21,2)分组寄存器R8-R14:每一次所访问的物理寄存器与处理器当前的运行模式有关。R8-R12:两种模式,对应两个不同的物理寄存器R13、R14:7种模式(用户模式与系统模式共用),对应6个不 同的物理寄存器(区分记号R13、R14)R14也称为子程序连接寄存器(Subroutine Link Register)或连接寄存器LR。当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。在其他情况下,R14用做通用寄存器。与之类似,当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_u

18、nd用来保存R15的返回值。,22,3)程序计数器PC(R15)寄存器R15用做程序计数器(PC)。在ARM状态下,位1:0为0,位31:2用于保存PC;在Thumb状态下,位0为0,位31:1用于保存PC。4)寄存器R16用做当前程序状态寄存器(Current Program Status Register,CPSR),CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。,23,用户与系统模式,快速中断模式,管理模式,终止模式,中断模式,未定义模式,24,2.Thumb状态下的寄存器组织Thumb状态下的寄存器集是ARM状态下

19、寄存器集的一个子集,程序可以直接访问8个通用寄存器(R7R0)、程序计数器(PC)、堆栈指针(SP)、连接寄存器(LR)和CPSR。同时,在每一种特权模式下都有一组SP、LR和SPSR。如图所示表明Thumb状态下的寄存器组织。Thumb状态下的寄存器组织与ARM状态下的寄存器组织的关系:Thumb状态下和ARM状态下的R0R7是相同的;Thumb状态下和ARM状态下的CPSR和所有的SPSR是相同的;Thumb状态下的SP对应于ARM状态下的R13;Thumb状态下的LR对应于ARM状态下的R14;Thumb状态下的程序计数器对应于ARM状态下的R15。,25,高位寄存器R8R15并不是标准

20、寄存器集的一部分,但可使用汇编语言程序受限制地访问这些寄存器,将其用做快速的暂存器。如:MOV、CMP、ADD指令。,26,2.2.5 程序状态寄存器ARM920T体系结构中包含一个当前程序状态寄存器(CPSR)和5个备份的程序状态寄存器(SPSR)。备份的程序状态寄存器用来进行异常处理,其功能包括:保存ALU中的当前操作信息;控制允许和禁止中断;设置处理器的运行模式。程序状态寄存器每一位的安排如图所示。,27,1条件码标志(Condition Code Flags)N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。条件码标志各位的具体含

21、义如表所示。,28,2控制位CPSR的低8位(包括I、F、T和M4:0)称为控制位,当发生异常时这些位可以被改变。如果处理器运行特权模式,这些位也可以由程序修改。中断禁止位I、F:置1时,禁止IRQ中断和FIQ中断。T标志位:该位反映处理器的运行状态。当该位为1时,程序运行于Thumb状态,否则运行于ARM状态。该信号反映在外部引脚TBIT上。在程序中不得修改CPSR中的TBIT位,否则处理器工作状态不能确定。运行模式位M4:0:M0、M1、M2、M3、M4是模式位。这些位决定了处理器的运行模式。具体含义如表4.2所示。保留位:CPSR中的其余位为保留位,当改变CPSR中的条件码标志位或者控制

22、位时,保留位不要被改变,在程序中也不要使用保留位来存储数据。保留位将用于ARM版本的扩展。,29,异常(Exceptions)当正常的程序执行流程发生暂时的停止时,称之为异常。在处理异常之前,当前处理器的状态必须保留,这样,当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,处理器会按固定的优先级对多个异常进行处理。1、对异常的响应:按以下步骤操作(1)将下一条指令的地址存入相应连接寄存器LR。若异常是从ARM状态进入,LR寄存器中保存的是下一条指令的地址(当前PC4或PC8,与异常的类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量。这样,异常处

23、理程序就不需要确定异常是从何种状态进入的,程序在处理异常返回时能从正确的位置重新开始执行。例如:在软件中断异常SWI中,指令 MOV PC,R14_svc总是返回到下一条指令,而不管SWI是在ARM状态执行,还是在Thumb状态执行。(2)将CPSR复制到相应的SPSR中。(3)根据异常类型,强制设置CPSR的运行模式位。(4)强制PC从相应的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。,30,2、从异常返回:进入异常处理前可以设置中断禁止位,以禁止异常处理时对中断的响应。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。异常

24、处理完毕之后,执行以下操作从异常返回:(1)将连接寄存器LR的值减去相应的偏移量后送到PC中。(2)将SPSR复制回CPSR中。(3)若在进入异常处理时设置了中断禁止位,要在此清除。3、各类异常的具体描述(1)FIQ(快速中断请求)(2)IRQ(中断请求)(3)Abort(中止)(4)Software Interrupt(软件中断)(5)Undefined Instruction(未定义指令),31,4、异常进入/退出 表中总结了进入异常处理时保存在相应R14中的PC值,及在退出异常处理时推荐使用的指令。,32,5、异常向量及异常处理 应用程序中的异常处理:当系统运行时,异常可能会随时发生。为

25、保证在ARM处理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处理。采用的方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序。当ARM处理器发生异常时,程序计数器PC会被强制设置为对应的异常向量,从而跳转到异常处理程序。当异常处理完成以后,返回到主程序继续执行。各异常向量地址如表所示。,33,当多个异常同时发生时,系统根据固定的优先级决定异常的处理顺序。异常优先级由高到低的排列次序为:复位、数据中止、FIQ、IRQ、预取指令中止、未定义指令、SWI。,34,2.2.7 ARM微处理器的指令集,加载/存储型,指令集仅能处理寄存器中的数据,处理结果要放回寄存器中

26、。跳转指令 数据处理指令 程序状态寄存器(PSR)处理指令 加载/存储指令 协处理器指令 异常产生指令,35,1、ARM 指令集,1)跳转指令:实现程序流程的跳转 直接向程序计数器PC写入跳转地址值,可在4GB地址空间中的任意跳转 MOV LR,PC;保存将来的返回地址值 从当前指令向前或向后的32MB地址空间的跳转,有4条指令:(1)B指令:B条件 目标地址(2)BL指令:BL条件 目标地址(3)BLX指令:BLX 目标地址(4)BX指令:BX条件 目标地址2)数据处理指令(1)MOV指令:加载数据 MOV条件S 目的寄存器,源操作数 如:MOV R1,R0 MOV PC,R14 MOV R

27、1,R0,LSL#3,36,(2)MVN指令:取反后加载数据 MVN条件S 目的寄存器,源操作数(3)CMP指令:比较数据 CMP条件 操作数1,操作数2(4)CMN指令:取反后比较 CMN条件 操作数1,操作数2(5)TST指令:按位与运算 TST条件 操作数1,操作数2(6)TEQ指令:按位异或 TEQ条件 操作数1,操作数2(7)ADD指令:相加并存储 ADD条件S 目的寄存器,操作数1,操作数2(8)ADC指令:相加并加上标志位,再存储 ADC条件S 目的寄存器,操作数1,操作数2(9)SUB指令:相减并存放在目的寄存器(10)SBC指令:相减并减去标志位,再存放在目的寄存器(11)R

28、SB指令:逆向减法,再存放在目的寄存器(12)RSC指令:逆向减法,再减去标志位,再存放在目的寄存器,37,(13)AND指令:操作数逻辑与运算(14)ORR指令:操作数逻辑或运算(15)EOR指令:操作数逻辑异或运算(16)BIC指令:清除操作数1的某些位,并把结果放置到目的寄存器,4)程序状态寄存器访问指令:MRS条件 通用寄存器,程序状态寄存器(CPSR/SPSR)MSR条件 程序状态寄存器(CPSR/SPSR)_,操作数,5)加载/存储指令:LDR条件 目的寄存器,LDRB条件目的寄存器,LDRH条件目的寄存器,STR 条件源寄存器,STRB 条件源寄存器,STRH 条件源寄存器,,3

29、8,6)批量数据加载/存储指令:LDM(或STM)条件类型 基址寄存器!,寄存器列表/,7)数据交换指令:SWP条件 目的寄存器,源寄存器1,源寄存器2 SWPB条件 目的寄存器,源寄存器1,源寄存器2,8)移位指令:通用寄存器,LSL(或ASL)操作数通用寄存器,LSR(或ASR)操作数通用寄存器,ROR(或RRX)操作数,9)协处理器指令:CDP 通知ARM协处理器完成特定操作LDC 数据传送STCMCRMRC,10)异常产生指令:SWI条件 24位的立即数 BKPT 16位的立即数,39,2、ARM汇编器的伪指令,伪指令:没有相对应的操作码,为完成汇编程序作各种准备工作。,1)符号定义伪

30、指令 GBLA(GBLL或GBLS)全局变量名GBLA 定义一个全局的数字变量,并初始化为0GBLL 定义一个全局的逻辑变量,并初始化为FGBLS 定义一个全局的字符串变量,并初始化为空 LCLA(LCLL或LCLS)局部变量名 用于定义一个ARM程序中的局部变量,并将其初始化 变量名 SETA(SETL或SETS)表达式 用于给已定义的全局变量或局部变量赋值 名称 RLIST寄存器列表:对一个通用寄存器列表定义名称,40,2)数据定义伪指令一般用于为特定的数据分配存储单元,同时可完成已分配存储单元的初始化 分配存储单元:DCBDCW(DCWU)DCD(DCDU)DCFD(DCFDU)DCQ(

31、DCQU)SPACE定义结构化的内存表:MAP:定义首地址FIELD:定义数据域3)汇编控制伪指令 IF、ELSE、ENDIF WHILE、WEND,41,MACRO、MEND:将一段代码定义为一个整体,称为宏指令 MEXIT:用于从宏定义跳转4)其他常用的伪指令 AREA:用于定义一个代码段或数据段 AREA 段名 属性1,属性2,ALLGN:通过添加填充字节的方式,使当前位置满足一定的对 齐方式 CODE16:通知编译器其后的指令为16位的Thumb指令 CODE32:通知编译器其后的指令为32位的ARM指令 ENTRY:用于指定汇编程序的入口点,42,END:用于通知编译器已经到了源程序

32、的结尾 EQU:用于为程序中的常量、标号等定义一个等效的字符名称 EXPORT:用于在程序中声明一个全局的标号 IMPORT:用于通知编译器要使用的标号在其他的源文件中定义 EXTERN:用于通知编译器要使用的标号在其他源文件中定义,但要在当前源文件中引用 GET:用于将一个源文件包含到当前的源文件中 INCBIN:用于将一个目标文件或数据文件包含到当前的源文件 RN:用于给一个寄存器定义一个别名 ROUT:用于给一个局部变量定义作用范围,43,2.3 三星 S3C2410X处理器详解,S3C2410X在包含ARM920T核的同时,增加了丰富的外围资源,主要片内外围模块包括:1个LCD控制器,

33、支持STN和TFT液晶显示屏;外部存储器管理(SDRAM控制器和芯片选择逻辑);3个通道的UART;4个通道的DMA,支持存储器和I/O口之间的传输,以猝发模式提高传输率;4个具有PWM功能的16位定时/计数器和1个16位内部定时器,支持外部时钟源;,44,8通道的10位ADC,最高速率可达500kB/s,10位分辨率;触摸屏接口;IIS总线接口;2个USB主机接口,1个USB设备接口;2个SPI接口;SD卡接口和MMC卡接口;16位看门狗定时器;117位通用I/O口和24位外部中断源;8通道10位AD控制器;电源管理。,45,S3C2410X及片内外围简介,46,S3C2410X支持大、小端

34、模式,将存储空间分成8组(Bank),每组大小是128MB,共计1GB。,47,2.3.2 特殊功能寄存器,1内存控制器(Memory Controller)内存控制器为访问外部存储空间提供存储器控制信号,共有13个寄存器。,48,2Nand Flash 控制器S3C2410X支持Nand Flash启动,启动代码存储在Nand Flash上。启动时,Nand Flash的前4KB将被装载到内部的固定地址中,利用硬件纠错码ECC对数据的正确性检验,然后开始执行其中的启动代码。一般情况下,该启动代码会把Nand Flash中的内容拷贝到SDRAM中去,拷贝完后,主程序将在SDRAM中执行。操作流

35、程如图所示。,49,自动引导模式流程:复位;如果自动引导模式使能,Nand Flash中的前4KB代码拷贝到内部的小石头区域;小石头映射到nGCS0;CPU开始执行小石头区域中的代码。Nand Flash模式:通过NFCONF寄存器设置Nand Flash配置;把Nand Flash命令写入NFCMD寄存器;把Nand Flash地址写入NFADDR寄存器;读/写数据同时通过NFSTAT寄存器检测Nand Flash状态。读操作前或者程序执行后检查R/nB信号。,50,3时钟和电源管理 S3C2410X的主时钟由外部晶振或者外部时钟提供,选择后可以生成3种时钟信号,分别是CPU使用的FCLK,

36、AHB总线使用的HCLK和APB总线使用的PCLK。时钟管理模块同时拥有两个锁相环,一个称为MPLL,用于FCLK、HCLK和PCLK;另一个称为UPLL,用于USB设备。(1)时钟源选择对时钟的选择是通过OM3:2实现的。OM3:2=00B时,晶体为MPLL CLK和UPLL CLK提供时钟源;OM3:2=01B时,晶体为MPLL CLK提供时钟源,EXTCLK为UPLL CLK提供时钟源;OM3:2=10B时,EXTCLK为MPLL CLK提供时钟源,晶体为UPLL CLK提供时钟源;OM3:2=11B时,EXTCLK为MPLL CLK和UPLL CLK提供时钟。,51,(2)时钟控制逻辑

37、时钟控制逻辑决定了所使用的时钟源,是采用MPLL作为FCLK,还是采用外部时钟。复位后,Fin直接传递给FCLK,即使不想改变默认的PLLCON值,也需要重新写一遍。FCLK由ARM920T核使用,HCLK提供给AHB总线,PCLK提供给了APB总线。S3C2410X支持HCLK、FCLK和PCLK的分频选择,其比率是通过CLKDIV寄存器中的HDIVN和PDIVN控制的,如表所示。,52,(3)电源管理S3C2410X电源管理模块通过4种模式有效地控制功耗:Normal模式:为CPU和所有的外设提供时钟,所有的外设开启时,该模式下的功耗最大。这种模式允许用户通过软件控制外设,可以断开提供给外设的时钟以降低功耗。Slow模式:采用外部时钟生成FCLK的方式,此时电源的功耗取决于外部时钟。Idle模式:断开FCLK与CPU核的连接,外设保持正常,该模式下的任何中断都可唤醒CPU。Power-off模式:断开内部电源,只给内部的唤醒逻辑供电。一般模式下需要两个电源,一个提供给唤醒逻辑,另外一个提供给CPU和内部逻辑,在Power-off模式下,后一个电源关闭。该模式可以通过EINT15:0和RTC唤醒。,53,(4)时钟和电源管理寄存器S3C2410X通过控制寄存器实现对时钟和电源的管理,相关寄存器如表所示。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号