arm9arm 寄存器器是arm920t吗

ARM9复习题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
ARM9复习题
&&ARM9复习题
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩8页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢《ARM体系结构与编程》复习题 1、ARM920T支持7种运行模式,分别为_用户模式_ ,快速中断模式(FIQ),_普通中断模式(IRQ),数据访问中止模式,_管理模式_,_系统模式_,未定义指令模式 2、ARM处理器支持2种指令集, 32 位的ARM指令集和
位的Thumb集。 3、ARM920T内核支持___ARM__ ,__Thumb__ 指令集,分别为_32___ ,_16___ 位的指令系统。 4、ARM处理器共有 37
个寄存器, 31
个通用寄存器,
个状态寄存器,其中的 (R0-R7) 8 个可以在任何模式下看到。 5、ARM920T体系结构所支持的最大寻址空间 4G B。 6、当ARM处理器发生异常时,其优先级最高的异常是_复位异常_。 7、当处理器发生快速中断FIQ异常时,异常向量地址为 0x0000001C ,当处理器在复位后,异常向量地址为 0x ,且处理器进入 管理模式 。 8、ARM920T中支持字节(8位),_半字(16位)_ ,_字(32位) 3种数据类型。 9、ARM内核有__37__ 个寄存器,__用户和系统___模式使用寄存器最少。 10、ATPCS规定数据栈为_满递减(FD)_类型,并且对数据栈的操作是__8__字节对齐的。 11、局部变量的存储方式一般是_动态__存储,全局变量一般是__静态__存储。 12、ARM920T体系结构支持两种方法存储字数据,即_大端存储模式_ ,_小端存储模式_。 13、在复位后,ARM处理器处于___管理__ 模式__ARM__ 状态。 14、ARM920T体系结构支持两种方法存储字数据,即 大端存储 格式和 小端存储 格式,其中在 小端存储格式 中,字数据的高字节存放在高地址单元中,而字数据的低字节存放在低地址单元中。 15、CPSR中的低8位控制位中,当T=
时,处理器工作在Thumb状态,当T=_0_时,处理器工作在ARM状态。 16、ARM微处理器采用的是RISC(精简指令集)体系结构。 17、在ARM微处理器中,堆栈可分为两种堆栈,即满栈和空栈。 18、伪指令和位操作只在汇编过程中起作用。 19、ARM处理器有哪7种异常。 复位异常 , 未定义指令异常
, 软件中断异 1 常,预取中止异常(取指令存储器中止异常) ,数据中止异常(数据访问存储器中止异常),IRQ(普通中断)异常,FIQ(快速中断)异常。 20、什么是C语言的预处理伪指令?(宏定义,文件包含,条件编译) C语言中以#开头的那部分指令 21、在ARM32位机中C语言常用的基本整型int在内存单元中占
个字节。 依据程序编译器的不同int定义的字节数不同。 常用的单片机编译器,51类单片机的C语言中,int代表2个byte(16位);如果是32位ARM处理器的C语言中,则int代表4个byte(32位) 22、在C语言的库函数中,求字符串长度的函数是什么(strlen()函数)。 23、指令ADD
R0,R1,R1,LSL
#1完成什么操作?(加法操作R1+2R1 --> R0。把R1中的内容扩大3倍后送给R0。) 24、指令MVN
R0,#4执行的结果?(0xFFFFFFFB)
25、指令LDR
R0,[R1,#8]实现的功能?(把基址R1的内容加上位移量8后所指的存储单元的内容送到寄存器R0中) 26、分析下列指令是否正确。 MOV
R0,#0x8FFA0 ×(#0x8FFA0不合法的8位位图)
R2,(R3,#8)
× ([R3, #8])
R1,R2,#8
× (#8立即数不能作为乘法指令的任何操作数)
R0,[R1],R2,LSL #2
R0,R1,R2
×([R2])
27、判断合法立即数的方法。(8位位图,即把一个8位的常数通过循环右移偶数位得到的8位常数) 28、LDR
R0,[R1,#9]的源操作数(变/基址寻址)与目的操作数(寄存器寻址)的寻址方式。 29、ARM处理器的指令集(ARM指令集、Thumb指令集)有哪些6大类?是否包含除法指令? ARM处理器的ARM指令集有:跳转指令,数据处理指令,程序状态寄存器访问指令,加载/存储型指令,协处理器指令,异常产生指令。 30、CPSR中如何修改T,MODE位?在程序中的何处修改?在何种模式下修改? CPSR中的T控制位使用BX指令完成处理器状态的切换(BX指令属分支指令,它会打断流水线状态,实现处理器状态切换)。MRS与MSR配合使用,实现CPSR寄存器的读-修改-写操作。修改I,F,T,MODE位时先将CPSR中的内容通过MRS指令读到通用寄存器中,再将要修改的位所确定的立即数通过MSR指令写入状态寄存器CPSR中,只有在特权模式下才能修改。
通过MRS,MSR两条指令来获取和送回CPSR的值,修改CPSR的位[5:0]的值。异常出现时,可以改变控制位T,在特权模式下修改。 31、在内嵌的SWI和BL中,除了正常的操作数外,还必须增加3个可选的寄存器列表,这三个寄存器列表分别是什么?(LR(子程序链接寄存器),CPSR(当前程 2 序状态寄存器), SPSR(备份程序状态寄存器)) 答:第一个寄存器列表中的寄存器用来存放输入的数据; 第二个寄存器列表中的寄存器用来存放返回的数据; 第三个寄存器列表中的寄存器的内容,提供被调用的子程序来用。
32、当处理器发生异常后,ARM处理器执行的操作。(异常出现后,强制从异常类型对应的固定存储器地址(异常向量)开始执行程序。异常模式分组的R14 和SPSR用于保存状态。) 33、汇编程序与C程序的相互调用规则的寄存器规则。(子程序之间通过寄存器r0-r3来传递参数,当多于4个参数时,使用堆栈来传递参数。在子程序中使用r4-r11来保存局部变量。寄存器r12用来保存堆栈指针IP。寄存器r13用作堆栈指针SP。寄存器r14用作链接寄存器LR。寄存器r15作为程序计数器PC) 34、编写完整程序实现数据块拷贝操作,将源数据区Src中的8个字数(0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08),据拷贝到目的地址Dst中(要求利用块拷贝实现)。
fz,CODE,READONLY
ENTRY START
MOV R0,R0,ASR #2
LDR R1,=Src
LDR R2,=Dst L
LDMIA R1!,{R3-R6} //块拷贝
STMIA R2!,{R3-R6} //块拷贝
SUBS R0,R0,#1
B START Src
DCD 0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8 Dst
DCD 0,0,0,0,0,0,0,0
35、写几条汇编指令,使能FIQ中断。
Enable MRS R0, CPSR
BIC R0, R0, #0x MSR CPSR_c,
R0 MOV PC, LR
使能IRQ中断如下:
3 Enable MRS R0, CPSR BIC R0, R0, #0x MSR CPSR_c,
R0 MOV PC, LR
37、写汇编程序依次读出表DISP_TABLE中的半字数据(16位即2个字节)。(DISP_TABLE中的半字数据为:0xc0, 0Xf9,0xd0,0x34,0x92,0xe8,0x25,0x65)
dubiao,CODE,READONLY
ENTRY START
LDR R0,=DISP_TABLE
MOV R1,#8 L
LDRH R2,[R0],#2
SUBS R1,R1,#1循环次数减一
B START DISP_TABLE
DCW 0xAB,0xF8,0xC0,0x34,0x92,0xD6,0x25,0x65
39、采用汇编程序调用C语言方法完成1*2*3*4*…*n求积
汇编程序如下:
jiecheng,CODE,READONLY
MOV R0,#n是具体的值
C语言程序如下: int jc(int n) {
for(;n>0;n--) {
4 40、采用C语言调用汇编完成1*2*3*4*…*n求积
汇编程序如下:
chengfa,CODE,READONLY
CODE32 IMPORT
main cheng
SUB R0,R2,#1 L
UMULL R2,R3,R0,R2
MLA R3,R1,R0,R3
SUBS R0,R0,#1
C语言程序如下:
extern int cheng(int n); int main() {
//n是具体的值
while(1); }
启动程序如下:
Startup,CODE,READONLY
CODE32 START
MOV R13,#0x
41、LDR伪指令与LDR加载指令的功能和应用有何区别?举例说明? LDR伪指令:用于将一个立即数读取到相应的寄存器中,需要用等号(=)来连接地址值。如:LDR R0,=0xFFF00000 LDR加载指令:用于从内存中加载数据到寄存器中。如:LDR R1,[R0] 42、改错并指出程序功能ARM920T--时钟模式_Linux教程_Linux公社-Linux系统门户网站
你好,游客
ARM920T--时钟模式
来源:Linux社区&
作者:liufei_learning
ARM920T clocking
The ARM920T has two functional clock inputs, BCLK and FCLK. Internally, the ARM920T is clocked by GCLK,which can be seen on the CPCLK output as shown in Figure 5-1.GCLK can be sourced from either BCLK or FCLK depending on the clocking mode, selected using nF bit and iA bit in CP15 register 1 (see Register 1: Control register on page 2-12),and external memory access.The three clocking modes are FastBus, synchronous and asynchronous.
ARM920T有2个时钟输入,分别是BCLK和FCLK。从图5-1中GPCLK的输出可以看出,ARM920T内部是由GCLK时钟模式驱动。CP15寄存器1(参见寄存器1:控制寄存器,2-12页)的nF位和iA位决定时钟模式,即决定了GCLK是由FCLK还是BCLK产生。一共有3种时钟模式,分别为快速总线、同步以及异步模式。
The ARM920T is a static design and both clocks can be stopped indefinitely without loss of state. From Figure 5-1 it can be seen that some of the ARM920T macrocell signals will have timing specified with relation to GCLK, which can be either FCLK or BCLK depending on the clocking mode
ARM920T的设计是固定的,两种时钟都可以被无期限的暂停,而不会导致状态丢失。从图5-1这可以看出,有些ARM92的macrocell信号的timing受到GCLK的影响,而GCLK具体是由FCLK是还是BCLK产生,则是由时钟模式决定。
FASTBUS MODE
快速总线模式
In FastBus mode GCLK is sourced from BCLK. The FCLK input is ignored. This
means that BCLK is used to control the AMBA ASB interface and the internal
ARM920T processor core.
On reset, the ARM920T is put into FastBus mode and operates using BCLK. A typical
use for FastBus mode is to execute startup code while configuring a PLL under software
control to produce FCLK at a higher frequency. When the PLL has stabilized and
locked, you can switch the ARM920T to synchronous or asynchronous clocking using
FCLK for normal operation.
在快速总线模式,GCLK来自于BCLK,FCLK输入被忽略。这意味着BCLK被用来控制AMBA ASB接口和内部的ARM920T处理器核。复位时,ARM920T进入快速总线模式,操作使用BCLK。一般快速总线模式在启动代码时执行,然后由软件配置PLL产生高频的FCLK。在PLL稳定后可以切换ARM920T到同步或异步时钟,使用FCLK进行操作。
GCLK=BCLK,FCLK被忽略
板子reset之后即进入该模式
该模式的典型应用是执行启动代码,同时软件配置PLL,使得FCLK更高
nF=0且iA=0
SYNCHRONOUS MODE
In this mode of operation GCLK is sourced from BCLK or FCLK. There are three
restrictions that apply to BCLK and FCLK:
o FCLK must have a higher frequency than BCLK
o FCLK must be an integer multiple of the BCLK frequency
o FCLK must be HIGH whenever there is a BCLK transition.
在这个操作模式GCLK来自于BCLK或FCLK。但是对于BCLK和FCLK要满足3个条件:
1.&FCLK必须比BCLK有更高的频率
2.&FCLK必须是BCLK频率的整数倍数
3. 无论BCLK怎么转换,FCLK的频率都要高于BCLK
BCLK is used to control the AMBA ASB interface, and FCLK is used to control the
internal ARM920T processor core. When an external memory access is required the
core either continues to clock using FCLK or is switched to BCLK, as shown in
Table 5-1. This is the same as for asynchronous mode.
BCLK被用来控制AMBA ASB总线接口,FCLK用来控制内部的ARM920T处理器核。
当访问外部存储地址时,处理器核心要么继续使用FCLK,要么切换到BCLK。见表1。
外部存储访问操作
写非缓冲区
页搜寻、读缓冲(占满)、读非缓冲
The penalty in switching from FCLK to BCLK and from BCLK to FCLK is
symmetric, from zero to one phase of the clock to which the core is re-synchronizing.
That is, switching from FCLK to BCLK has a penalty of between zero and one BCLK
phase, and switching back from BCLK to FCLK has a penalty of between zero and one
FCLK phase.
从FCLK切换到BCLK与BCLK切换到FCLK的代价是相等的。需要耗费0~1个时钟周期使核重新同步。从FCLK切换到BCLK的代价是0~1个BCLK。从BCLK切换到FCLK的代价是0~1个FCLK。
Figure 5-2 on page 5-5 shows an example zero BCLK phase delay when switching
from FCLK to BCLK in synchronous mode.
&Figure 5-2 Synchronous mode FCLK to BCLK zero phase delay
Figure 5-3 shows an example one BCLK phase delay when switching from FCLK to
BCLK in synchronous mode.
Figure 5-3 Synchronous mode FCLK to BCLK one phase delay
GCLK=BCLK或者GCLK=FCLK
FCLK=n*BCLK(n大于1且为整数)
BCLK用于控制AMBA ASB接口,而FCLK用来控制内部的ARM920T处理器核心。当访问外部存储地址时,处理器核心要么继续使用FCLK,要么切换到BCLK。见表1。
nF=1且iA=0
Asynchronous mode
In this mode of operation GCLK is sourced from BCLK or FCLK. FCLK and BCLK
can be completely asynchronous to one another, with the one restriction that FCLK
must have a higher frequency than BCLK.
BCLK is used to control the AMBA ASB interface, and FCLK is used to control the
internal ARM920T processor core. When an external memory access is required the
core either continues to clock using FCLK or is switched to BCLK. This is the same
as for synchronous mode.The penalty in switching from FCLK to BCLK and from
BCLK to FCLK is symmetric, from zero to one cycle of the clock to which the core is
re-synchronizing. That is, switching from FCLK to BCLK has a penalty of between
zero and one BCLK cycle, and switching back from BCLK to FCLK has a penalty of
between zero and one FCLK cycle.
在这个操作模式GCLK来自于BCLK或FCLK。FCLK和BCLK之间可以完全异步,只有一个要满足的条件是FCLK的频率要高于BCLK。BCLK被用来控制AMBA ASB总线接口,FCLK用来控制内部的ARM920T处理器核。与同步模式时相同,从FCLK切换到BCLK与BCLK切换到FCLK的代价是相等的。需要耗费0~1个时钟周期使核重新同步。从FCLK切换到BCLK的代价是0~1个BCLK。从BCLK切换到FCLK的代价是0~1个FCLK。
Figure 5-4 shows an example zero BCLK cycle delay when switching from FCLK to
BCLK in asynchronous mode.
Figure 5-4 Asynchronous mode FCLK to BCLK zero cycle delay
Figure 5-5 on page 5-7 shows an example one BCLK cycle delay when switching from
FCLK to BCLK in asynchronous mode.
Figure 5-5 Asynchronous mode FCLK to BCLK one cycle delay
GCLK=BCLK或者GCLK=FCLK
BCLK用于控制AMBA ASB接口,而FCLK用来控制内部ARM920T处理器核心。当访问外部存储地址时,处理器核心要么继续使用FCLK,要么切换到BCLK。见表1。
nF=1且iA=1
nF为P15的1号寄存器的第31位
iA为P15的1号寄存器的第30位
相关资讯 & & &
& (03月29日)
& (03月29日)
& (11/09/:59)
& (03月29日)
& (04/22/:32)
& (02/27/:20)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款}

我要回帖

更多关于 arm通用寄存器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信