基于ARM7TDMI的S3C44BOX嵌入式微软处理器技术.ppt

上传人:小飞机 文档编号:6262185 上传时间:2023-10-11 格式:PPT 页数:67 大小:225KB
返回 下载 相关 举报
基于ARM7TDMI的S3C44BOX嵌入式微软处理器技术.ppt_第1页
第1页 / 共67页
基于ARM7TDMI的S3C44BOX嵌入式微软处理器技术.ppt_第2页
第2页 / 共67页
基于ARM7TDMI的S3C44BOX嵌入式微软处理器技术.ppt_第3页
第3页 / 共67页
基于ARM7TDMI的S3C44BOX嵌入式微软处理器技术.ppt_第4页
第4页 / 共67页
基于ARM7TDMI的S3C44BOX嵌入式微软处理器技术.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《基于ARM7TDMI的S3C44BOX嵌入式微软处理器技术.ppt》由会员分享,可在线阅读,更多相关《基于ARM7TDMI的S3C44BOX嵌入式微软处理器技术.ppt(67页珍藏版)》请在三一办公上搜索。

1、第2章 S3C44B0X微处理器组成及编程模式,本章重点:,S3C44B0X微处理器的组成;S3C44B0X系统管理的特点;S3C44B0X引脚信号含义;S3C44B0X特殊功能寄存器;ARM7TDMI核的组成;ARM7TDMI指令系统特点和编程模式。,2.1 S3C44B0X微处理器概述,嵌入式微处理器S3C44B0X中集成了ARM公司的ARM7TDMI核,这个核也称为CPU单元,此外还集成了边界扫描控制器等多个功能模块(也称模块、单元)。S3C44B0X中有2条总线,即系统总线和外设总线。通过系统总线,将CPU单元、电源管理模块(含时钟发生器)、存储器控制器、LCD控制器、中断控制器和2通

2、道ZDMA连接在一起。总线仲裁器对系统总线上的总线请求进行仲裁。通过外设总线,将AD转换器、看门狗定时器、RTC、通用IO控制器(GPIO)、IIC总线控制器、IIS总线控制器、UART、SIO、PWM等连接在一起。系统总线与外设总线通过系统总线桥与仲裁2通道BDMA连接在一起。详见图2.1。,2.2 S3C44B0X微处理器组成,2.2.1 S3C44B0X微处理器组成与系统管理特点 S3C44B0X微处理器组成 S3C44B0X组成框图见图2.1。(P18),在S3C44B0X中提供了如下模块:存储器控制器 Cache存储器与内部SRAM(共8KB)LCD控制器 DMA控制器 UART控制

3、器 多主IIC总线控制器,IIS总线控制器 PWM定时器和内部定时器 看门狗定时器 通用IO端口控制器(GPIO)功耗管理模块与时钟发生器 AD转换器 实时时钟模块 中断控制器 SIO,另外:操作电压 内核2.5V,IO 3.0V到3.6V。操作频率 最高到66MHz。封装 160 LQFP或160 FBGA。,S3C44B0X系统管理特点 支持大端小端格式;存储器寻址空间支持每个bank大小为32MB,全部为256MB;对每个bank,支持可编程的81632位数据总线;在8个banks中,有1个bank起址和bank大小可编程;其余7个banks起址固定,banks大小可编程;在8个bank

4、s中,支持6个banks使用ROM、SRAM类型芯片,支持2个banks使用ROMSRAMDRAM(FPEDOSDRAM)类型芯片;,对全部存储器banks,存取周期可编程;支持外部等待信号,可以扩展总线周期;在节电模式,支持DRAMSDRAM自我刷新方式;对DRAM,支持对称非对称地址方式,即动态存储器芯片行地址和列地址可以等长也可以不等长;支持存储器寻址空间与IO寻址空间统一编址方式。,2.2.2 引脚信号描述 S3C44B0X微处理器封装形式 S3C44B0X微处理器采用2种封装形式,160LQFP和160FBGA形式。160LQFP封装形式见图2.2。(P22),S3C44B0X微处理

5、器各引脚信号描述 S3C44B0X的160个引脚中,有71个引脚可以通过编程的方法,定义为多功能输入输出引脚。这71个引脚被分成A、B、C、D、E、F和G端口。例如,端口A可以定义为输出端口,或定义为地址总线ADDR24ADDR16和ADDR0。在Reset后,默认值是地址总线ADDR24ADDR16和ADDR0,之后可以重新定义端口A的功能,详见第8章IO端口。对这些端口,以下引脚信号的描述仅仅是针对Reset后,没有重新定义的端口默认信号。除这71个引脚外,其余引脚功能是单一的。,S3C44B0X微处理器各引脚信号描述见表2.1。(见参考书P23-25),2.2.3 特殊功能寄存器简介 特

6、殊功能寄存器(Special Function Registers,SFR),有时也称特殊寄存器或专用寄存器。占用存储器地址空间为0 x01C000000 x01FFFFFF,共4MB。这些寄存器的含义和功能将在第4章以后的各章中分别介绍,附录A列出了全部特殊功能寄存器的一个汇总简表。,2.3 ARM7TDMI核,2.3.1 指令流水线、存储器访问和存储器接口 指令流水线 ARM7TDMI核使用了三级流水线结构,在通常情况下,每条指令以取指、译码和执行三级,通过流水线。存储器访问和存储器接口 ARM7TDMI核采用冯诺依曼结构,使用单一的32位数据总线传送指令和数据。只有装入、存储和交换三种指

7、令才能从存储器存取数据。,数据可以是:8位(字节);16位(半字);32位(字)。字必须以4字节边界对齐,半字必须以2字节边界对齐。,2.3.2 ARM7TDMI指令系统特点 S3C44B0X微处理器中含有ARM7TDMI核,使用的指令系统就是ARM7TDMI的指令系统。ARM7TDMI有2种指令集:32位的ARM指令集和16位的Thumb指令集。ARM指令集的主要特点有:所有的指令都是32位定长,便于译码和流水线实现,并且在内存中以4字节边界地址对齐保存;只有 LOAD-STORE类型的指令才可以访问内存;所有的指令都可以条件执行;使用了桶型(barrel)移位器,可以在一个指令周期内完成移

8、位操作和ALU(算术逻辑)操作。,Thumb指令集虽然是一个16位的指令集,但是能够在32位结构的ARM7TDMI处理器上运行。Thumb指令集执行效率比传统的16位结构的处理器更有效,也比32位结构的处理器有更高的代码密度。Thumb指令集是32位ARM指令集中最常用的指令功能上的一个子集。Thumb指令有效果相同的32位ARM指令对应。,Thumb指令使用了32位核的全部优点:32位地址空间;32位寄存器;32位移位器和ALU单元;32位存储器传送器。,2.3.3 ARM7TDMI组成 ARM7TDMI组成 ARM7TDMI组成框图见图2.4。图2.4 ARM7TDMI处理器组成框图,AR

9、M7TDMI从功能上可以分为三部分,一部分是ARM7TDMI主处理器逻辑,在稍后介绍。另一部分是附加在ARM7TDMI主处理器上的用于调试硬件和软件的电路,这部分电路由Embedded ICE逻辑、测试访问端口控制器(Test Access Port controller,TAP)和三条扫描链组成。还有一部分是总线拆分器,将处理器内部的数据总线拆分成外部双向D31:0、单向输入DIN31:0和单向输出DOUT31:0数据总线。,与ARM7TDMI调试相关的标准以及图2.4中相关模块介绍如下:JTAG(Joint Test Action Group)Embedded ICE(Embedded I

10、n_Circuit Emulater)逻辑 TAP controller 扫描链(scan chain),ARM7TDMI主处理器 ARM7TDMI主处理器组成见图2.5,相关信号含义见附录B。(见参考书P29)ARM7TDMI主处理器功能与通用CPU基本相同,由运算器和控制器组成。运算器主要包括32位算术逻辑单元、Barrel移位器、32*8位硬件乘法器,以及31个32位通用寄存器和6个32位状态寄存器;另外还有地址寄存器和地址增量器等。控制器主要由指令译码器和逻辑控制单元组成。此外,图中还有指令流水线、读数据寄存器和Thumb指令控制器、写数据寄存器以及扫描控制单元。,ARM7TDMI处理

11、器信号分组ARM7TDMI处理器信号分组见图2.6。图中各信号含义见附录B。(见参考书P30、358-360)图2.6中按照不同的功能,对ARM7TDMI处理器的信号进行了分组,功能相同的信号分为一组,图中有些信号在后续章节会用到。,2.4 ARM7TDMI编程模式,2.4.1 编程模式与处理器操作状态 编程模式 ARM7TDMI处理器核实现了ARM v4T结构,包含32位ARM指令集和16位Thumb指令集。v4T结构支持对芯片的调试,允许处理器响应调试请求暂停;处理器内含有32*8位硬件乘法器;支持嵌入式ICE硬件提供片上断点和调试点。,处理器操作状态 ARM7TDMI处理器的2种操作状态

12、:ARM状态,在这种状态执行32位的、字边界对齐的ARM指令。Thumb状态,在这种状态执行16位的、半字边界对齐的Thumb指令。在Thumb状态,程序计数器PC使用bit1来选择切换半字。在ARM和Thumb之间转换状态,不影响处理器操作方式或寄存器内容。,转换状态 使用ARM指令集的BX指令可以从ARM状态转换到Thumb状态,使用Thumb指令集的BX指令可以从Thumb状态转换到ARM状态。无论处理器在ARM状态或Thumb状态,发生了异常,进入异常处理程序处理器一定是在ARM状态。如果一个异常在Thumb状态出现,处理器要转换到ARM状态,异常处理完返回时自动转换回Thumb状态。

13、,刚进入异常处理程序后处理器处在ARM状态,如果需要,异常处理程序能够转换到Thumb状态,但是异常处理程序结束前,处理器必须转换到ARM状态,在ARM状态才允许异常处理程序正确的终止。,2.4.2 存储器格式和数据类型 存储器格式 ARM7TDMI处理器允许使用大、小端格式,它能够对存储在存储器中的字以大端或小端格式访问。缺省格式是小端格式。大端或小端格式是指一个字数据中的4个字节数据,必须被放在字边界对齐的存储器地址A开始的连续4个字节地址单元之中的什么位置。在数据以字存放在存储器中,而以字节或半字访问时,对CPU被配置为大端或小端格式要特别注意。,小端格式 在小端格式,处理器寄存器中的3

14、2位二进制数用bit31:0表示,其中bit31为最高位,bit0为最低位,分为4字节,bit31:24为数据的最高字节,bit7:0为数据的最低字节。当寄存器的内容以字格式保存在字边界对齐的存储器地址A中时,存储器4个地址中保存的字节数据与寄存器bit31:0的对应关系见图2.7。(见参考书P32),例如,寄存器R0中保存的16进制数是0 x12345678,最高2位数是0 x12,最低2位数是0 x78。如果以字方式存R0的内容到字边界对齐的存储器地址A中,那么字节地址A中存放的数是0 x78,地址A+1中存放的数是0 x56,地址A+2中存放的数是0 x34,地址A+3中存放的数是0 x

15、12。,大端格式 在大端格式,当寄存器的内容以字格式保存在字边界对齐的存储器地址A中时,存储器4个地址中保存的字节数据与寄存器bit31:0的对应关系见图2.8。(见参考书P32)例如,寄存器R0中保存的16进制数是0 x12345678,最高2位数是0 x12,最低2位数是0 x78。如果以字方式存R0的内容到字边界对齐的存储器地址A中,那么字节地址A中存放的数是0 x12,地址A+1中存放的数是0 x34,地址A+2中存放的数是0 x56,地址A+3中存放的数是0 x78。,数据类型 ARM7TDMI处理器支持三种数据类型:字,32位;半字,16位;字节,8位。所谓的边界对齐必须遵循:字数

16、据必须以4字节为边界对齐存取;半字数据必须以2字节为边界对齐存取;字节数据可以在任意字节地址中存取。存储器系统支持上述三种数据类型的存取。,2.4.3 处理器操作方式 ARM7TDMI处理器有7种操作方式,见表2.2。方式的改变可以在软件控制下改变,也可以由外部中断或者由异常处理带来改变。除了用户方式,其他几种方式都被称为特权方式。特权方式用于为中断或异常(exception)服务,或访问受保护的资源。,表2.2 处理器7种操作方式,2.4.4 寄存器ARM7TDMI共有37个寄存器。其中:31个是32位的通用寄存器,6个是32位的状态寄存器。在同一时间内这37个寄存器不是全部都可以存取的。处

17、理器操作状态(ARM或Thumb)和操作方式(用户、中断等7种)确定哪些寄存器对程序员是可存取的。,在ARM状态下的寄存器组 在ARM状态下,16个通用寄存器和一个或2个状态寄存器在任何时间是可存取的。在特权方式,方式所指定的分组寄存器变成可用的。图2.9给出了每一种方式可用的寄存器。图中寄存器中有符号的称为分组寄存器。(图2.9 见P34),连接寄存器LR(Link Register)寄存器r14用作子程序连接寄存器。当一条分支并且连接指令(BL)被执行时,寄存器r14收到r15的一个拷贝。在其他时间,r14能被看作通用寄存器。对应的分组寄存器r14_svc、r14_irq、r14_fiq、

18、r14_abt和r14_und用法是类似的,当中断或异常发生时,同样用于保存r15的返回值,或用于在中断及异常例程中执行BL指令时保存r15的返回值。,程序计数器PC(Program Counter)寄存器r15作为程序计数器。在ARM状态下,r15的bit1:0是无定义且必须被忽略的,而r15的bit31:2含有程序计数值。在Thumb状态下,r15的bit0是无定义且必须被忽略的,而r15的bit31:1含有程序计数值。,除了上述r14和r15有专门的用途外,r13习惯上用作堆栈指针(SP)。在特权方式,另一个寄存器,即保留程序状态寄存器(SPSR)是可用的。SPSR寄存器含有作为异常结果

19、的条件码标志和方式位,而这个异常引起进入到当前方式。分组寄存器是分别的物理寄存器,在处理器核内。分组寄存器映射为可用寄存器依赖于当前处理器的操作方式。在操作方式改变时,分组寄存器的内容被保护。FIQ方式有7个分组寄存器,映射到r8-r14(r8_fiq-r14_fiq)。,在Thumb状态下的寄存器组 在Thumb状态下的寄存器组如图2.10所示。(见P35)。,在ARM状态下和在Thumb状态下寄存器之间的关系 在Thumb状态下的寄存器与在ARM状态下寄存器的关系,遵照以下规定:Thumb状态下的r0-r7与ARM状态下的r0-r7是相同的;Thumb状态下的CPSR和SPSR与ARM状态

20、下的CPSR和SPSR是相同的;Thumb状态下的SP映射到ARM状态下的r13;Thumb状态下的LR映射到ARM状态下的r14;Thumb状态下的PC映射到ARM状态下的PC(r15)。上述关系用图2.11表示。(见P36)另外,在Thumb状态下,寄存器r0-r7称为低寄存器组,寄存器r8-r15称为高寄存器组。,在Thumb状态下访问高寄存器组 在Thumb状态下,高寄存器组r8-r15不是标准寄存器组的一部分。汇编语言程序员访问它们受到了限制,但是能够使用它们作为快速暂时存储器。程序员可以使用专门的MOV、CMP和ADD指令,其中MOV指令,可以从范围在r0-r7的低寄存器组传送一个

21、值到高寄存器组;或从高寄存器组传送一个值到低寄存器组。,CMP指令允许比较高低两个寄存器组中的寄存器的值。ADD指令允许将高寄存器组中寄存器的值与低寄存器组中寄存器的值相加。MOV、CMP和ADD指令也允许使用的两个寄存器都在高寄存器组中。,2.4.5 程序状态寄存器 ARM7TDMI处理器包含一个当前程序状态寄存器CPSR和5个用于异常处理的保留程序状态寄存器SPSR。这些程序状态寄存器有以下功能:保存最近执行过的ALU操作的信息;控制允许或禁止中断;设置处理器操作方式。程序状态寄存器每一位含义表示在图2.12中。(见参考书P36),条件码标志 N、Z、C和V位是条件码标志,可以由算术和逻辑

22、操作设置这些位,也可以通过MSR和LDM指令设置这些位。ARM7TDMI处理器测试这些标志用于确定是否执行一条指令。在ARM状态下,所有的指令能够有条件地执行。在Thumb状态下,只有分支指令能够有条件地执行。,控制位 程序状态寄存器的最低8位统称控制位。它们是:中断禁止位;T状态位;方式位。当异常出现时,控制位改变。当处理器在特权方式操作时,软件能够操作这些位。,中断禁止位 I和F位是中断禁止位:当I位被置1时,IRQ中断被禁止;当F位被置1时,FIQ中断被禁止;当I位被清0时,IRQ中断被允许;当F位被清0时,FIQ中断被允许。,T位 T位反映了处理器当前所处的操作状态:当T位被置1时,处

23、理器在Thumb状态执行;当T位被清0时,处理器在ARM状态执行。操作状态由外部信号TBIT反映。要注意的是,决不能使用MSR指令去强制改变在CPSR中的T位的状态,如果这样做了,处理器进入不可预知的状态。,方式位M4:0确定处理器的操作方式,如表2.3所示。不是所有方式位的组合都用来定义合法的处理器操作方式,仅仅使用了方式位组合中的一部分,如下表所示。,表2.3 不同方式位对应的不同操作方式,保留位 在CPSR和SPSR中,保留位没有用处,仅仅用于保留。当改变CPSR或SPSR标志位或控制位时,要确认这些保留位没有被改变。同样要确认程序不依赖保留位所含的专门值,因为后续处理器可能将这些位置1

24、或清0。,2.4.6 异常 异常出现在程序正常的流动被暂时停止时。例如,对从一个外部设备来的中断进行服务。对异常处理前,ARM7TDMI处理器保留当前处理器的状态,使得异常处理例程结束时能够返回原来的程序。如果2个或多个异常同时发生,那么以固定的次序处理异常。异常进入和退出 表2.4汇总了异常进入时保存在r14中的PC值和退出异常处理时推荐使用的返回指令。,表2.4 异常进入和退出,进入异常 ARM7TDMI处理器以如下方法处理一个异常:在对应的LR中保存下一条指令的地址。当异常是从ARM状态进入,处理器复制下一条指令的地址到LR,这时地址是PC+4或PC+8,与不同的异常有关。当异常从Thu

25、mb状态进入,处理器写当前的PC值到LR,这时地址是PC+2或PC+4,与不同的异常有关。异常处理不必确定进入异常前的状态。例如由SWI进入异常,MOVS PC,r14_svc总是返回到下一条指令,而不管SWI是在ARM或Thumb状态下被执行。,复制CPSR到应对的SPSR。强制CPSR方式位成为某一个值,这个值取决于不同的异常。强制PC从相关的异常向量处取下一条指令。,离开异常 当异常处理完时,异常处理程序必须:参考表2.4,对应不同类型的异常,直接传送LR到PC或从LR中减去一个偏移量送到PC。复制SPSR到CPSR。清除在进入异常时被设置的中断禁止标志。将SPSR值恢复到CPSR的同时

26、,自动地将T位的值恢复成进入异常前的值。,快速中断请求 快速中断请求(FIQ)异常支持数据传输或通道处理。在ARM状态,FIQ方式有8个分组寄存器,使用它们可以免除保存寄存器的要求。这是上下文切换最小开销的一种方法。一个FIQ是外部产生的,是通过使nFIQ输入低电平实现的。输入通过一个同步器送到内核。无论异常是从ARM状态或Thumb状态进入,FIQ处理程序从中断返回是通过执行:SUBS PC,r14_fiq,#4 指令来实现的。,FIQ异常能够被禁止,方法是在特权方式时设置CPSR的F标志位为1。当F标志位为0时,处理器在每条指令结束检测FIQ同步器输出是否为低电平。,中断请求 中断请求(I

27、RQ)异常是一个通常的中断请求,在nIRQ输入低电平引起。IRQ优先级比FIQ低,并且在进入FIQ被屏蔽。nIRQ同样通过一个同步器传到内核。无论异常从ARM状态或Thumb状态进入,IRQ处理程序从中断返回是通过执行:SUBS PC,r14_irq,#4 指令来实现的。在任意时间可以禁止IRQ,方法是在特权方式时设置CPSR中I标志位为1。,Abort 中止一般介绍 中止处理程序必须:确定中止原因,使请求的数据可用。用LDR Rn,r14_abt,#-8指令,取回引起中止的指令,确定那条指令是否指定了回写基址寄存器,如果是这样,中止处理程序还必须:从这条指令确定对基址寄存器回写的偏移量是多少

28、;当中止处理程序返回时,使用相反的偏移量重装到基址寄存器。,两种类型的中止预取中止发生在指令预取期间;数据中止发生在数据存取期间。预取中止 数据中止,软件中断指令 软件中断指令(SWI)用于进入管理方式,一般用于请求一个特殊的管理功能。SWI处理程序读SWI指令低24位取出SWI功能号,SWI功能号也称为中断类型号。SWI处理程序执行以下指令返回,并不区别处理器的操作状态:MOVS PC,r14_svc 指令的作用是恢复PC和CPSR,返回到SWI指令的下一条指令。,未定义指令 当ARM7TDMI处理器遇到一条指令,这条指令即不是ARM7TDMI处理器的指令,又不是系统内任何协处理器能处理的指

29、令,ARM7TDMI产生未定义指令陷阱。软件能够用这一机制通过仿真未定义的协处理器指令去扩展ARM指令集。从陷阱处理程序返回,不区别处理器的操作状态,执行如下指令:MOVS PC,r14_und 这条指令的作用是恢复CPSR并且返回到未定义指令的下一条指令。,异常向量 表2.5给出了异常向量的地址。表中I和F分别表示CPSR中的IRQ和FIQ中断禁止位先前的值。(表2.5见参考书P41)异常优先级 当多个异常同时发生,固定的优先级系统确定了它们被处理的次序,优先级次序见表2.6。(表2.6见参考书P42),2.4.7 中断延迟 最大中断延迟 最小中断延迟 2.4.8 Reset 当nRESET信号变低,复位(reset)出现,ARM7TDMI放弃正在执行的指令,并且仍然对预取的字或半字指令继续增大在地址总线上的地址。,END,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号