最新嵌入式系统-第二章PPT课件

上传人:无*** 文档编号:225100821 上传时间:2023-08-02 格式:PPT 页数:54 大小:1.10MB
收藏 版权申诉 举报 下载
最新嵌入式系统-第二章PPT课件_第1页
第1页 / 共54页
最新嵌入式系统-第二章PPT课件_第2页
第2页 / 共54页
最新嵌入式系统-第二章PPT课件_第3页
第3页 / 共54页
资源描述:

《最新嵌入式系统-第二章PPT课件》由会员分享,可在线阅读,更多相关《最新嵌入式系统-第二章PPT课件(54页珍藏版)》请在装配图网上搜索。

1、嵌入式系统嵌入式系统-第二章第二章第二章第二章 基于基于ARM920TARM920T核微处理器核微处理器n通用处理器系列通用处理器系列ARM7、ARM9、ARM9E和和ARM10E的特点及主要应用领域的特点及主要应用领域n嵌入式嵌入式ARM920T内核编程模型、内核编程模型、ARM920T的的运行模式、寄存器组织及运行模式、寄存器组织及ARM体系结构的存储体系结构的存储器格式器格式n三星三星S3C2410X处理器结构处理器结构2nD:支持片上:支持片上Debug,实现实时调试,实现实时调试nM:内嵌硬件乘法器:内嵌硬件乘法器(multiplier)解释:解释:硬件乘法器可以在单个指令周期内完成

2、乘法操作,硬件乘法器可以在单个指令周期内完成乘法操作,是区别于通用的微处理器的重要标志是区别于通用的微处理器的重要标志nI:嵌入式:嵌入式ICE,支持片上断点和调试点,支持片上断点和调试点92.1.3 ARM9系列微处理器系列微处理器具有高性能、低功耗,主要特点:具有高性能、低功耗,主要特点:n5级流水线,具有分开的指令和数据存储器,指令执行效率更高,具级流水线,具有分开的指令和数据存储器,指令执行效率更高,具体如下:体如下:(1)取指:)取指:从存储器中取出指令,并将其放入指令流水线。从存储器中取出指令,并将其放入指令流水线。(2)译码:)译码:对指令进行译码。对指令进行译码。(3)执行:)

3、执行:把一个操作数移位,产生把一个操作数移位,产生ALU(算术逻辑单元)算术逻辑单元)的结果。的结果。(4)缓冲)缓冲/数据:数据:如需要则访问数据存储器;否则如需要则访问数据存储器;否则ALU的结果只是简的结果只是简单地缓冲单地缓冲1个时钟周期,以便所有的指令具有同样的流水线流程。个时钟周期,以便所有的指令具有同样的流水线流程。(5)回写:)回写:将指令产生的结果回写到寄存器,包括任何从存储器中将指令产生的结果回写到寄存器,包括任何从存储器中读取的数据。读取的数据。5级流水线图级流水线图10n提供提供1.1MIPS/MHZ的哈佛结构的哈佛结构哈佛结构:哈佛结构:是一种将程序指令存储和数据存储

4、分开的存储器结构。是一种将程序指令存储和数据存储分开的存储器结构。n支持支持32位位ARM指令集和指令集和16位位Thumb指令集。指令集。n支持支持32位的高速位的高速AMBA总线接口总线接口AMBA:将将RISC处理器集成在其他处理器集成在其他IP芯核和外设中,它是有效连接芯核和外设中,它是有效连接IP核的核的“数字胶数字胶”,并且是,并且是ARM复用策略的重要组件。它不是芯片与外复用策略的重要组件。它不是芯片与外设之间的接口,而是设之间的接口,而是ARM内核与芯片上其他元件进行通信的接口。内核与芯片上其他元件进行通信的接口。n全性能的全性能的MMU支持支持WindowsCE、Linux、

5、PalmOS等多种主流嵌入等多种主流嵌入式操作系统。式操作系统。MMU:MemoryManagementUnit,内存管理单元,负责虚拟地址与,内存管理单元,负责虚拟地址与物理地址的转换。达到每个用户进程都拥有自己独立的地址空间的目物理地址的转换。达到每个用户进程都拥有自己独立的地址空间的目标。标。nMPU(MemoryProtectionUnit,内存保护单元)支持实时操作系统,内存保护单元)支持实时操作系统n支持数据支持数据Cache(高速缓冲存储器)高速缓冲存储器)和指令和指令Cache112.2 ARM 920T简介简介ARM920T是ARM920TDMI系列中的一款通用性的微处理器,

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

7、器指令存储器管理单元管理单元高级微处理器高级微处理器总线架构总线架构协处理器:系统协处理器:系统控制处理器控制处理器16K字节字节数据缓存数据缓存数据存储器数据存储器管理单元管理单元写缓冲器写缓冲器13ARM920T处理器的主要特性处理器的主要特性nARM9TDMI内核,内核,ARMv4T架构(架构(ARM版本版本4,支持,支持Thumb)n两套指令集:两套指令集:ARM高性能高性能32位指令集、位指令集、Thumb高代码密高代码密度度16位指令集。位指令集。n5级流水线结构级流水线结构n16K字节数据缓存、指令缓存字节数据缓存、指令缓存n标准的标准的ARMv4存储器管理单元(存储器管理单元(

8、MMU)n8位、位、16位、位、32位的指令总线与数据总线。位的指令总线与数据总线。142.2.1 ARM920T内核编程模型内核编程模型字(字(Word),在),在ARM体系结构中,字的长度为体系结构中,字的长度为32位,而在位,而在8位位/16位处理器体系结构中,字的长度一般为位处理器体系结构中,字的长度一般为16位。位。半字(半字(Half-Word),在),在ARM体系结构中,半字的长度为体系结构中,半字的长度为16位,与位,与8位位/16位处理器体系结构中字的长度一致。位处理器体系结构中字的长度一致。字节(字节(Byte),在),在ARM体系结构和体系结构和8位位/16位处理器体系结

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

10、执行32位的、字对齐的位的、字对齐的ARM指令;指令;Thumb状态状态,此时处理器执行,此时处理器执行16位的、半字对齐的位的、半字对齐的Thumb指令。指令。ARM指令集和指令集和Thumb指令集均有切换处理器状态的指令,在程序的执行指令集均有切换处理器状态的指令,在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于微处理器在开始执行代码时,应该处于

11、ARM状态。状态。当操作数寄存器的状态位(位当操作数寄存器的状态位(位0)为)为1时,可以采用执行时,可以采用执行BX指令(跳转指指令(跳转指令)的方法,使微处理器从令)的方法,使微处理器从ARM状态切换到状态切换到Thumb状态。当操作数寄存状态。当操作数寄存器的状态位为器的状态位为0时,执行时,执行BX指令可以使微处理器从指令可以使微处理器从Thumb状态切换到状态切换到ARM状态。此外,在处理器进行异常处理时,将状态。此外,在处理器进行异常处理时,将PC指针放入异常模式链指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到接寄存器中,并从异常向量地址开始执行程

12、序,也可以使处理器切换到ARM状态。状态。162.2.2 ARM 体系结构的存储器格式体系结构的存储器格式ARM920T体系结构将存储器看做是从零地址开始的字节的线性组体系结构将存储器看做是从零地址开始的字节的线性组合。从合。从0字节到字节到3字节放置第字节放置第1个存储的字数据,从第个存储的字数据,从第4个字节到第个字节到第7个个字节放置第字节放置第2个存储的字数据,依次排列。作为个存储的字数据,依次排列。作为32位的微处理器,位的微处理器,ARM920T体系结构所支持的最大寻址空间为体系结构所支持的最大寻址空间为4GB(232字节)。字节)。ARM920T体系结构可以用两种方法存储字数据,

13、分别称为大端格体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。式和小端格式。大端格式中字数据的高字节存储在低地址中,而字数据的低字节大端格式中字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,如下图所示。则存放在高地址中,如下图所示。17与大端存储格式相反,在小端存储格式中,低地址中存放与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。如的是字数据的低字节,高地址存放的是字数据的高字节。如下图所示下图所示:182.2.3 处理器模式处理器模式ARM920T支持支持7种运行模式,分别为:种运行模式,分别为:用户模式(用

14、户模式(usr),),ARM处理器正常的程序执行状态;处理器正常的程序执行状态;快速中断模式(快速中断模式(fiq),),用于高速数据传输或通道处理;用于高速数据传输或通道处理;外部中断模式(外部中断模式(irq),),用于通用的中断处理;用于通用的中断处理;管理模式(管理模式(svc),),操作系统使用的保护模式;操作系统使用的保护模式;数据访问终止模式(数据访问终止模式(abt),),当数据或指令预取终止时进入该模式,可用当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护;于虚拟存储及存储保护;系统模式(系统模式(sys),),运行具有特权的操作系统任务;运行具有特权的操作系统任务

15、;未定义指令中止模式(未定义指令中止模式(und),),当未定义的指令执行时进入该模式,可用当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。于支持硬件协处理器的软件仿真。ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。理改变。大多数的应用程序运行在用户模式下大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。某些被保护的系统资源是不能被访问的。除用户模式以外,其余的除用户模式以外,其余的6种模式称为种模式称为非用户

16、模式或特权模式非用户模式或特权模式;其中除去用;其中除去用户模式和系统模式以外的户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及访种又称为异常模式,常用于处理中断或异常,以及访问受保护的系统资源等情况。问受保护的系统资源等情况。192.2.4 寄存器组织寄存器组织ARM920T共有共有37个个32位寄存器,其中位寄存器,其中31个为通用寄存器,个为通用寄存器,6个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决于微处理器的工作状态及具体的寄存器是可编程访问的,取决于微处理器的工作状态及具体的

17、运行模式。运行模式。在在ARM状态下,任一时刻可以访问状态下,任一时刻可以访问16个通用寄存器个通用寄存器和和12个状态寄存器。个状态寄存器。1、ARM状态下的寄存器组织(状态下的寄存器组织(R0R15)未分组寄存器未分组寄存器R0R7分组寄存器分组寄存器R8R14程序计数器程序计数器PC(R15)1)未分组寄存器)未分组寄存器R0-R7:在所有运行模式下,指向同一个物理:在所有运行模式下,指向同一个物理寄存器寄存器202)分组寄存器)分组寄存器R8-R14:每一次所访问的物理寄存器与处理器当:每一次所访问的物理寄存器与处理器当前的运行模式有关。前的运行模式有关。R8-R12:两种模式,对应两

18、个不同的物理寄存器两种模式,对应两个不同的物理寄存器R13、R14:7种模式(用户模式与系统模式共用),对应种模式(用户模式与系统模式共用),对应6个不个不同的物理寄存器(区分记号同的物理寄存器(区分记号R13、R14)R14也称为子程序连接寄存器(也称为子程序连接寄存器(SubroutineLinkRegister)或连)或连接寄存器接寄存器LR。当执行。当执行BL子程序调用指令时,子程序调用指令时,R14中得到中得到R15(程(程序计数器序计数器PC)的备份。在其他情况下,)的备份。在其他情况下,R14用做通用寄存器。与用做通用寄存器。与之类似,当发生中断或异常时,对应的分组寄存器之类似,

19、当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和和R14_und用来保存用来保存R15的返回值。的返回值。213)程序计数器)程序计数器PC(R15)寄存器寄存器R15用做程序计数器(用做程序计数器(PC)。在)。在ARM状态下,位状态下,位1:0为为0,位,位31:2用于保存用于保存PC;在;在Thumb状态下,位状态下,位0为为0,位,位31:1用于保存用于保存PC。4)寄存器)寄存器R16用做当前程序状态寄存器(用做当前程序状态寄存器(CurrentProgramStatusRegister,CPSR),),CPSR可在任何运行模式下被

20、访可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。以及其他一些相关的控制和状态位。22用户与系统模式用户与系统模式快速中断快速中断模式模式管理模式管理模式终止模式终止模式中断模式中断模式未定义未定义模式模式232.Thumb状态下的寄存器组织状态下的寄存器组织Thumb状态下的寄存器集是状态下的寄存器集是ARM状态下寄存器集的一个子集,程序状态下寄存器集的一个子集,程序可以直接访问可以直接访问8个通用寄存器(个通用寄存器(R7R0)、程序计数器()、程序计数器(PC)、堆栈)、

21、堆栈指针(指针(SP)、连接寄存器()、连接寄存器(LR)和)和CPSR。同时,在每一种特权模。同时,在每一种特权模式下都有一组式下都有一组SP、LR和和SPSR。如图所示表明。如图所示表明Thumb状态下的寄存状态下的寄存器组织。器组织。Thumb状态下的寄存器组织与状态下的寄存器组织与ARM状态下的寄存器组织的关系:状态下的寄存器组织的关系:Thumb状态下和状态下和ARM状态下的状态下的R0R7是相同的;是相同的;Thumb状态下和状态下和ARM状态下的状态下的CPSR和所有的和所有的SPSR是相同的;是相同的;Thumb状态下的状态下的SP对应于对应于ARM状态下的状态下的R13;Th

22、umb状态下的状态下的LR对应于对应于ARM状态下的状态下的R14;Thumb状态下的程序计数器对应于状态下的程序计数器对应于ARM状态下的状态下的R15。24高位寄存器高位寄存器R8R15并不是标准寄存器集的一部分,但可使用汇编语言并不是标准寄存器集的一部分,但可使用汇编语言程序受限制地访问这些寄存器,将其用做快速的暂存器。如:程序受限制地访问这些寄存器,将其用做快速的暂存器。如:MOV、CMP、ADD指令。指令。252.2.5程序状态寄存器程序状态寄存器ARM920T体系结构中包含一个当前程序状态寄存器(体系结构中包含一个当前程序状态寄存器(CPSR)和)和5个备份的个备份的程序状态寄存器

23、(程序状态寄存器(SPSR)。备份的程序状态寄存器用来进行异常处理,其功能)。备份的程序状态寄存器用来进行异常处理,其功能包括:包括:保存保存ALU中的当前操作信息;中的当前操作信息;控制允许和禁止中断;控制允许和禁止中断;设置处理器的运行模式。设置处理器的运行模式。程序状态寄存器每一位的安排如图所示。程序状态寄存器每一位的安排如图所示。261条件码标志(条件码标志(ConditionCodeFlags)N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。条件码标志各位的具体含义如表所

24、示。变,并且可以决定某条指令是否被执行。条件码标志各位的具体含义如表所示。272控制位控制位CPSR的低的低8位(包括位(包括I、F、T和和M4:0)称为控制位,当发生异常时这些位)称为控制位,当发生异常时这些位可以被改变。如果处理器运行特权模式,这些位也可以由程序修改。可以被改变。如果处理器运行特权模式,这些位也可以由程序修改。中断禁止位中断禁止位I、F:置:置1时,禁止时,禁止IRQ中断和中断和FIQ中断。中断。T标志位标志位:该位反映处理器的运行状态。当该位为:该位反映处理器的运行状态。当该位为1时,程序运行于时,程序运行于Thumb状态,否则运行于状态,否则运行于ARM状态。该信号反映

25、在外部引脚状态。该信号反映在外部引脚TBIT上。在程序中不得修上。在程序中不得修改改CPSR中的中的TBIT位,否则处理器工作状态不能确定。位,否则处理器工作状态不能确定。运行模式位运行模式位M4:0:M0、M1、M2、M3、M4是模式位。这些位决定了处是模式位。这些位决定了处理器的运行模式。具体含义如表理器的运行模式。具体含义如表4.2所示。所示。保留位保留位:CPSR中的其余位为保留位,当改变中的其余位为保留位,当改变CPSR中的条件码标志位或者中的条件码标志位或者控制位时,保留位不要被改变,在程序中也不要使用保留位来存储数据。保留位控制位时,保留位不要被改变,在程序中也不要使用保留位来存

26、储数据。保留位将用于将用于ARM版本的扩展。版本的扩展。282.2.6异常(异常(Exceptions)当正常的程序执行流程发生暂时的停止时,称之为异常。在处理异常之前,当正常的程序执行流程发生暂时的停止时,称之为异常。在处理异常之前,当前处理器的状态必须保留,这样,当异常处理完成之后,当前程序可以继续执当前处理器的状态必须保留,这样,当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,处理器会按固定的优先级对多个异常进行处行。处理器允许多个异常同时发生,处理器会按固定的优先级对多个异常进行处理。理。1、对异常的响应:、对异常的响应:按以下步骤操作按以下步骤操作(1)将下一条

27、指令的地址存入相应连接寄存器)将下一条指令的地址存入相应连接寄存器LR。若异常是从。若异常是从ARM状态进状态进入,入,LR寄存器中保存的是下一条指令的地址(当前寄存器中保存的是下一条指令的地址(当前PC4或或PC8,与异常的,与异常的类型有关);若异常是从类型有关);若异常是从Thumb状态进入,则在状态进入,则在LR寄存器中保存当前寄存器中保存当前PC的偏移的偏移量。这样,异常处理程序就不需要确定异常是从何种状态进入的,程序在处理异量。这样,异常处理程序就不需要确定异常是从何种状态进入的,程序在处理异常返回时能从正确的位置重新开始执行。例如:在软件中断异常常返回时能从正确的位置重新开始执行

28、。例如:在软件中断异常SWI中,指令中,指令MOVPC,R14_svc总是返回到下一条指令,而不管总是返回到下一条指令,而不管SWI是在是在ARM状态执行,还状态执行,还是在是在Thumb状态执行。状态执行。(2)将)将CPSR复制到相应的复制到相应的SPSR中。中。(3)根据异常类型,强制设置)根据异常类型,强制设置CPSR的运行模式位。的运行模式位。(4)强制)强制PC从相应的异常向量地址取下一条指令执行,从而跳转到相应的从相应的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。异常处理程序处。292、从异常返回:、从异常返回:进入异常处理前可以设置中断禁止位,以禁止异常处理时

29、对中断进入异常处理前可以设置中断禁止位,以禁止异常处理时对中断的响应。如果异常发生时,处理器处于的响应。如果异常发生时,处理器处于Thumb状态,则当异常向量地状态,则当异常向量地址加载入址加载入PC时,处理器自动切换到时,处理器自动切换到ARM状态。异常处理完毕之后,执状态。异常处理完毕之后,执行以下操作从异常返回:行以下操作从异常返回:(1)将连接寄存器)将连接寄存器LR的值减去相应的偏移量后送到的值减去相应的偏移量后送到PC中。中。(2)将)将SPSR复制回复制回CPSR中。中。(3)若在进入异常处理时设置了中断禁止位,要在此清除。)若在进入异常处理时设置了中断禁止位,要在此清除。3、各

30、类异常的具体描述、各类异常的具体描述(1)FIQ(快速中断请求)(快速中断请求)(2)IRQ(中断请求)(中断请求)(3)Abort(中止)(中止)(4)SoftwareInterrupt(软件中断)(软件中断)(5)UndefinedInstruction(未定义指令)(未定义指令)304、异常进入、异常进入/退出退出表中总结了进入异常处理时保存在相应表中总结了进入异常处理时保存在相应R14中的中的PC值,及在退出异常值,及在退出异常处理时推荐使用的指令。处理时推荐使用的指令。315、异常向量及异常处理、异常向量及异常处理应用程序中的异常处理:当系统运行时,异常可能会随时发生。应用程序中的异

31、常处理:当系统运行时,异常可能会随时发生。为保证在为保证在ARM处理器发生异常时不至于处于未知状态,在应用程序的处理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处理。采用的方式是在异常向量表中的特定设计中,首先要进行异常处理。采用的方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序。当位置放置一条跳转指令,跳转到异常处理程序。当ARM处理器发生异处理器发生异常时,程序计数器常时,程序计数器PC会被强制设置为对应的异常向量,从而跳转到异会被强制设置为对应的异常向量,从而跳转到异常处理程序。当异常处理完成以后,返回到主程序继续执行。各异常常处理程序。当异常处理

32、完成以后,返回到主程序继续执行。各异常向量地址如表所示。向量地址如表所示。32当多个异常同时发生时,系统根据固定的优先级决定异常的处理顺序。当多个异常同时发生时,系统根据固定的优先级决定异常的处理顺序。异常优先级由高到低的排列次序为:复位、数据中止、异常优先级由高到低的排列次序为:复位、数据中止、FIQ、IRQ、预取指、预取指令中止、未定义指令、令中止、未定义指令、SWI。332.2.7 ARM微处理器的指令集微处理器的指令集加载加载/存储型,指令集仅能处理寄存器中的数据,处理结果存储型,指令集仅能处理寄存器中的数据,处理结果要放回寄存器中。要放回寄存器中。跳转指令跳转指令数据处理指令数据处理

33、指令程序状态寄存器(程序状态寄存器(PSR)处理指令)处理指令加载加载/存储指令存储指令协处理器指令协处理器指令异常产生指令异常产生指令341、ARM指令集指令集1)跳转指令:实现程序流程的跳转)跳转指令:实现程序流程的跳转直接向程序计数器直接向程序计数器PC写入跳转地址值,可在写入跳转地址值,可在4GB地址空间中的任意跳转地址空间中的任意跳转MOVLR,PC;保存将来的返回地址值;保存将来的返回地址值从当前指令向前或向后的从当前指令向前或向后的32MB地址空间的跳转,有地址空间的跳转,有4条指令:条指令:(1)B指令指令:B条件条件目标地址目标地址(2)BL指令:指令:BL条件条件目标地址目

34、标地址(3)BLX指令:指令:BLX目标地址目标地址(4)BX指令:指令:BX条件条件目标地址目标地址2)数据处理指令)数据处理指令(1)MOV指令:加载数据指令:加载数据MOV条件条件S目的寄存器,源操作数目的寄存器,源操作数如:如:MOVR1,R0MOVPC,R14MOVR1,R0,LSL#335(2)MVN指令:取反后加载数据指令:取反后加载数据MVN条件条件S目的寄存器,源操作数目的寄存器,源操作数(3)CMP指令:比较数据指令:比较数据CMP条件条件操作数操作数1,操作数,操作数2(4)CMN指令:取反后比较指令:取反后比较CMN条件条件操作数操作数1,操作数,操作数2(5)TST指

35、令:按位与运算指令:按位与运算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)RS

36、B指令:逆向减法,再存放在目的寄存器指令:逆向减法,再存放在目的寄存器(12)RSC指令:逆向减法,再减去标志位,再存放在目的寄存器指令:逆向减法,再减去标志位,再存放在目的寄存器36(13)AND指令:操作数逻辑与运算指令:操作数逻辑与运算(14)ORR指令:操作数逻辑或运算指令:操作数逻辑或运算(15)EOR指令:操作数逻辑异或运算指令:操作数逻辑异或运算(16)BIC指令:清除操作数指令:清除操作数1的某些位,并把结果放置到目的寄存器的某些位,并把结果放置到目的寄存器4)程序状态寄存器访问指令:)程序状态寄存器访问指令:lMRS条件条件通用寄存器,程序状态寄存器(通用寄存器,程序状态寄存

37、器(CPSR/SPSR)lMSR条件条件程序状态寄存器(程序状态寄存器(CPSR/SPSR)_,操作数,操作数5)加载)加载/存储指令:存储指令:lLDR条件条件目的寄存器,目的寄存器,lLDRB条件条件目的寄存器,目的寄存器,lLDRH条件条件目的寄存器,目的寄存器,lSTR条件条件源寄存器,源寄存器,lSTRB条件条件源寄存器,源寄存器,lSTRH条件条件源寄存器,源寄存器,376)批量数据加载)批量数据加载/存储指令:存储指令:lLDM(或(或STM)条件条件类型类型基址寄存器基址寄存器!,寄存器列表,寄存器列表/7)数据交换指令:)数据交换指令:lSWP条件条件目的寄存器,源寄存器目的

38、寄存器,源寄存器1,源寄存器源寄存器2lSWPB条件条件目的寄存器,源寄存器目的寄存器,源寄存器1,源寄存器源寄存器28)移位指令:)移位指令:l通用寄存器,通用寄存器,LSL(或(或ASL)操作数)操作数l通用寄存器,通用寄存器,LSR(或(或ASR)操作数)操作数l通用寄存器,通用寄存器,ROR(或(或RRX)操作数)操作数9)协处理器指令:)协处理器指令:CDP通知通知ARM协处理器完成特定操作协处理器完成特定操作LDC数据传送数据传送STCMCRMRC10)异常产生指令:)异常产生指令:lSWI条件条件24位的立即数位的立即数lBKPT16位的立即数位的立即数382、ARM汇编器的伪指

39、令伪指令:伪指令:没有相对应的操作码,为完成汇编程序作各种准备工作。没有相对应的操作码,为完成汇编程序作各种准备工作。1)符号定义伪指令)符号定义伪指令lGBLA(GBLL或或GBLS)全局变量名)全局变量名GBLA定义一个全局的数字变量,并初始化为定义一个全局的数字变量,并初始化为0GBLL定义一个全局的逻辑变量,并初始化为定义一个全局的逻辑变量,并初始化为FGBLS定义一个全局的字符串变量,并初始化为空定义一个全局的字符串变量,并初始化为空lLCLA(LCLL或或LCLS)局部变量名)局部变量名用于定义一个用于定义一个ARM程序中的局部变量,并将其初始化程序中的局部变量,并将其初始化l变量

40、名变量名SETA(SETL或或SETS)表达式)表达式用于给已定义的全局变量或局部变量赋值用于给已定义的全局变量或局部变量赋值l名称名称RLIST寄存器列表寄存器列表:对一个通用寄存器列表定义名称:对一个通用寄存器列表定义名称392)数据定义伪指令)数据定义伪指令一般用于为特定的数据分配存储单元,同时可完成已分配存储单一般用于为特定的数据分配存储单元,同时可完成已分配存储单元的初始化元的初始化l分配存储单元:分配存储单元:DCBDCW(DCWU)DCD(DCDU)DCFD(DCFDU)DCQ(DCQU)SPACEl定义结构化的内存表:定义结构化的内存表:MAP:定义首地址:定义首地址FIELD

41、:定义数据域:定义数据域3)汇编控制伪指令)汇编控制伪指令lIF、ELSE、ENDIFlWHILE、WEND40lMACRO、MEND:将一段代码定义为一个整体,称为宏指令:将一段代码定义为一个整体,称为宏指令lMEXIT:用于从宏定义跳转用于从宏定义跳转4)其他常用的伪指令)其他常用的伪指令lAREA:用于定义一个代码段或数据段:用于定义一个代码段或数据段AREA段名段名属性属性1,属性,属性2,lALLGN:通过添加填充字节的方式,使当前位置满足一定的对通过添加填充字节的方式,使当前位置满足一定的对齐方式齐方式lCODE16:通知编译器其后的指令为通知编译器其后的指令为16位的位的Thum

42、b指令指令CODE32:通知编译器其后的指令为:通知编译器其后的指令为32位的位的ARM指令指令lENTRY:用于指定汇编程序的入口点用于指定汇编程序的入口点41lEND:用于通知编译器已经到了源程序的结尾:用于通知编译器已经到了源程序的结尾lEQU:用于为程序中的常量、标号等定义一个等效的字符名称:用于为程序中的常量、标号等定义一个等效的字符名称lEXPORT:用于在程序中声明一个全局的标号:用于在程序中声明一个全局的标号lIMPORT:用于通知编译器要使用的标号在其他的源文件中定义用于通知编译器要使用的标号在其他的源文件中定义lEXTERN:用于通知编译器要使用的标号在其他源文件中定义,但

43、要用于通知编译器要使用的标号在其他源文件中定义,但要在当前源文件中引用在当前源文件中引用lGET:用于将一个源文件包含到当前的源文件中用于将一个源文件包含到当前的源文件中lINCBIN:用于将一个目标文件或数据文件包含到当前的源文件用于将一个目标文件或数据文件包含到当前的源文件lRN:用于给一个寄存器定义一个别名:用于给一个寄存器定义一个别名lROUT:用于给一个局部变量定义作用范围用于给一个局部变量定义作用范围422.3 三星三星 S3C2410X处理器处理器详解详解S3C2410X在包含在包含ARM920T核的同时,增加了丰富的外核的同时,增加了丰富的外围资源,主要片内外围模块包括:围资源

44、,主要片内外围模块包括:1个个LCD控制器,支持控制器,支持STN和和TFT液晶显示屏;液晶显示屏;外部存储器管理(外部存储器管理(SDRAM控制器和芯片选择逻辑);控制器和芯片选择逻辑);3个通道的个通道的UART;4个通道的个通道的DMA,支持存储器和,支持存储器和I/O口之间的传输,以口之间的传输,以猝发模式提高传输率;猝发模式提高传输率;4个具有个具有PWM功能的功能的16位定时位定时/计数器和计数器和1个个16位内部定位内部定时器,支持外部时钟源;时器,支持外部时钟源;43 8通道的通道的10位位ADC,最高速率可达,最高速率可达500kB/s,10位分辨率;位分辨率;触摸屏接口;触

45、摸屏接口;IIS总线接口;总线接口;2个个USB主机接口,主机接口,1个个USB设备接口;设备接口;2个个SPI接口;接口;SD卡接口和卡接口和MMC卡接口;卡接口;16位看门狗定时器;位看门狗定时器;117位通用位通用I/O口和口和24位外部中断源;位外部中断源;8通道通道10位位AD控制器;控制器;电源管理。电源管理。44S3C2410X及片内外围简介及片内外围简介45S3C2410X支持大、小端模式,将存储空间分成支持大、小端模式,将存储空间分成8组(组(Bank),每组大小是),每组大小是128MB,共计,共计1GB。462.3.2 特殊功能寄存器特殊功能寄存器 1内存控制器(内存控制

46、器(MemoryController)内存控制器为访问外部存储空间提供存储器控制信号,共有内存控制器为访问外部存储空间提供存储器控制信号,共有13个寄存器。个寄存器。472NandFlash控制器控制器S3C2410X支持支持NandFlash启动,启动代码存储在启动,启动代码存储在NandFlash上。启动时,上。启动时,NandFlash的前的前4KB将被装载到内部的固定地址中,利用硬件纠错码将被装载到内部的固定地址中,利用硬件纠错码ECC对数对数据的正确性检验,然后开始执行其中的启动代码。一般情况下,该启动代码会把据的正确性检验,然后开始执行其中的启动代码。一般情况下,该启动代码会把Na

47、ndFlash中的内容拷贝到中的内容拷贝到SDRAM中去,拷贝完后,主程序将在中去,拷贝完后,主程序将在SDRAM中执中执行。操作流程如图所示。行。操作流程如图所示。48自动引导模式流程:自动引导模式流程:复位;复位;如果自动引导模式使能,如果自动引导模式使能,NandFlash中的前中的前4KB代码拷贝到内部的小石头区代码拷贝到内部的小石头区域;域;小石头映射到小石头映射到nGCS0;CPU开始执行小石头区域中的代码。开始执行小石头区域中的代码。NandFlash模式:模式:通过通过NFCONF寄存器设置寄存器设置NandFlash配置;配置;把把NandFlash命令写入命令写入NFCMD

48、寄存器;寄存器;把把NandFlash地址写入地址写入NFADDR寄存器;寄存器;读读/写数据同时通过写数据同时通过NFSTAT寄存器检测寄存器检测NandFlash状态。读操作前或者程序状态。读操作前或者程序执行后检查执行后检查R/nB信号。信号。493时钟和电源管理时钟和电源管理S3C2410X的主时钟由外部晶振或者外部时钟提供,选择后可以生成的主时钟由外部晶振或者外部时钟提供,选择后可以生成3种时钟信号,分别是种时钟信号,分别是CPU使用的使用的FCLK,AHB总线使用的总线使用的HCLK和和APB总总线使用的线使用的PCLK。时钟管理模块同时拥有两个锁相环,一个称为。时钟管理模块同时拥

49、有两个锁相环,一个称为MPLL,用于用于FCLK、HCLK和和PCLK;另一个称为;另一个称为UPLL,用于,用于USB设备。设备。(1)时钟源选择)时钟源选择对时钟的选择是通过对时钟的选择是通过OM3:2实现的。实现的。OM3:2=00B时,时,晶体为晶体为MPLLCLK和和UPLLCLK提供时钟源;提供时钟源;OM3:2=01B时,时,晶体为晶体为MPLLCLK提供时钟源,提供时钟源,EXTCLK为为UPLLCLK提供时钟源;提供时钟源;OM3:2=10B时,时,EXTCLK为为MPLLCLK提供时钟源,晶体为提供时钟源,晶体为UPLLCLK提供时钟源;提供时钟源;OM3:2=11B时,时

50、,EXTCLK为为MPLLCLK和和UPLLCLK提供时钟。提供时钟。50(2)时钟控制逻辑)时钟控制逻辑时钟控制逻辑决定了所使用的时钟源,是采用时钟控制逻辑决定了所使用的时钟源,是采用MPLL作为作为FCLK,还,还是采用外部时钟。复位后,是采用外部时钟。复位后,Fin直接传递给直接传递给FCLK,即使不想改变默认的,即使不想改变默认的PLLCON值,也需要重新写一遍。值,也需要重新写一遍。FCLK由由ARM920T核使用,核使用,HCLK提提供给供给AHB总线,总线,PCLK提供给了提供给了APB总线。总线。S3C2410X支持支持HCLK、FCLK和和PCLK的分频选择,其比率是通过的分

51、频选择,其比率是通过CLKDIV寄存器中的寄存器中的HDIVN和和PDIVN控制的,如表所示。控制的,如表所示。51(3)电源管理)电源管理S3C2410X电源管理模块通过电源管理模块通过4种模式有效地控制功耗:种模式有效地控制功耗:Normal模式:模式:为为CPU和所有的外设提供时钟,所有的外设开启时,该模和所有的外设提供时钟,所有的外设开启时,该模式下的功耗最大。这种模式允许用户通过软件控制外设,可以断开提供给外设的式下的功耗最大。这种模式允许用户通过软件控制外设,可以断开提供给外设的时钟以降低功耗。时钟以降低功耗。Slow模式:模式:采用外部时钟生成采用外部时钟生成FCLK的方式,此时

52、电源的功耗取决于外部的方式,此时电源的功耗取决于外部时钟。时钟。Idle模式:模式:断开断开FCLK与与CPU核的连接,外设保持正常,该模式下的任何中核的连接,外设保持正常,该模式下的任何中断都可唤醒断都可唤醒CPU。Power-off模式:模式:断开内部电源,只给内部的唤醒逻辑供电。一般模式下断开内部电源,只给内部的唤醒逻辑供电。一般模式下需要两个电源,一个提供给唤醒逻辑,另外一个提供给需要两个电源,一个提供给唤醒逻辑,另外一个提供给CPU和内部逻辑,在和内部逻辑,在Power-off模式下,后一个电源关闭。该模式可以通过模式下,后一个电源关闭。该模式可以通过EINT15:0和和RTC唤醒。唤醒。52(4)时钟和电源管理寄存器)时钟和电源管理寄存器S3C2410X通过控制寄存器实现对时钟和电源的管理,相关寄存器通过控制寄存器实现对时钟和电源的管理,相关寄存器如表所示。如表所示。53结束语结束语谢谢大家聆听!谢谢大家聆听!54

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!