SEQO
VDDP
顺序地址。当下一个MEM周期的地址同上一个周期的地址相关联时,此信号为高。新地址将和旧地址一样或者在当一个地址的基础上加四。
在地址可以预料的周期之前,此信号在phase1有效,并在phase2保持。此信号可以和地位地址线一起应用,表示下一个周期为快速MEM模式(DRAM页模式),或者旁路地址转换系统。电源。
VSSPGND
表1:信号描述
I:INPUTO:OUTPUTP:POWER
11
This file is generated by AlienTools PDF Generator, unregister version
3.0编程模式
????μμóé Foxit Reader ±à?-°?è¨??óD ·-°?2?????1??à1à?£
ARM7支持不同的操作配置。一种为硬件配置,由输入信号控制。其他为软件控制,称为操作模式。3.1硬件配置信号
ARM7提供了三个硬件配置信号,处理器正在运行的时候可以改变,具体如下:3.1.1BigandLittleEndian(bigend位)
ARM7依据BIGNED信号为高或者低,将MEM中的数据当作BigEndian或LittleEndian格式,MEM被看作字节线性存储,序号从0向上排列,字节0到3为第一个存储字,4到7为第二个,以此类推。
在LittleEndian格式,一个字的最小号字节被当作最低字节,最大号字节被当作最高字节。字节0将被连结到数据线D[7:0]。
最低字节在最低地址字通过最低字节的地址寻址图3:LittleEndian格式的地址
在BigEndian格式下,最高字节被存在MEM中的最低地址,最低字节被存在MEM的最高地址。MEM中字节0对应数据线D[31:24],endianism只影响加载和存储指令。参考4.7.3第37页。
12
This file is generated by AlienTools PDF Generator, unregister version
最高字节在最低地址字通过最高字节的地址寻址图4:BigEndian地址格式
3.1.2向下兼容的配置位
其它两个输入PROG32,DATA32用于和早期的ARM处理器兼容(参考第十章),但通常应该置1,这种配置扩展地址空间到32位,编程模式的主要改变如下面所介绍,在32位的环境下支持26位程序。推荐用32位模式编码,以便和将来的ARM处理器兼容。
为了适应32位操作,原始的ARM指令集已被改变,程序员必须注意一些附加的限制条件,这些限制条件在下面的文章里有提示。也可参考ARM应用注意事项“RulesforARMCodeWriters,”“NotesforARMCodeWriters。3.2操作模式选择
ARM7有32位地址和32位数据线。处理器支持字节(8位),字(32位)数据类型,字必须四个字节对齐。指令按字执行,数据操作(比如加法)以字为单位执行,加载和存储操作可以为字或字节传送。
13
This file is generated by AlienTools PDF Generator, unregister version
ARM7支持六种操作模式:
(1)用户模式(usr):正常的程序执行状态(2)FIQ模式(fiq):支持数据传送或通道处理(3)IRQ模式(irq):用于通用的中断处理
(4)管理模式(svc):用于操作系统的保护模式(5)异常模式(abt):数据或者指令预取异常时进入(6)无定义模式(und):当无定义指令被执行时进入(7)
软件控制,外部中断,异常处理都可以改变操作模式。大部分的应用程序在用户模式下执行。其他模式,比如管理模式,在中断、异常服务、或者访问被保护资源时进入。3.3寄存器
ARM7处理器共有37个寄存器,包括31个(32位)通用寄存器,6个状态寄存器。在任意时候,16个通用寄存器(R0-R15)和一个或者两个状态寄存器对处理器来讲是可见的。可见寄存器依据处理器模式和其它寄存器(bankedregisters)将被切换去支持IRQ,FIQ,管理,异常,无定义模式的处理。异常模式,非定义模式。图5显示了寄存器Bank组成,banked的寄存器在图中用阴影显示。
在所有的模式中,16个寄存器(R0-R15)都可以直接访问。除过R15,其他的寄存器都是通用寄存器,可以用来保存数据和地址。R15保存可编程计数器PC的值,当R15被读时,位[1:0]为’0’,位[31:2]保存计数器的值。第十七个寄存器(CPSR-当前程序状态寄存器)也是可以访问的。它包括了条件代码标志位和当前模式位,可以当作是PC的扩展。
R14可以当作子程序连接寄存器,当执行一个分支或者连接指令时,可以保存R15的值。在其它情况下,可以当作通用寄存器用。R14_svc,R14_irq,R14_fiq,R14_abt,R14_und与R14相似,当中断或者异常发生时,或者是中断和异常程序中,分支和分支连接指令被执行时,可以保存R15的返回值。
14
This file is generated by AlienTools PDF Generator, unregister version
通用寄存器和可编程计数器模式
可编程状态寄存器
图5:寄存器组织
FIQ模式有7个Banked寄存器,映射到R8-14(R8_fiq-R14_fiq)。有些FIQ程序不需要存储任何寄存器。用户模式,IRQ模式,管理模式,无定义模式都有两个Banked寄存器,映射到R13和R14。这两个Banked寄存器允许每个模式有自己的堆栈指针和l链接寄存器。管理模式,IRQ模式,异常模式和无定义模式的程序(需要不止两个Banked寄存器)能够在它们自己的堆栈中存储部分或者全部的调用程序的寄存器(R0-R12),这样就可以无限制地用这些寄存器(R0-R12),这些寄存器在调用程序返回之前被恢复。另外,有5个SPSRs寄存器(存储可编程状态寄存器),当异常发生时拷贝CPSR。每一个特权级模式有一个SPSR。
15
This file is generated by AlienTools PDF Generator, unregister version