S3C2410,ARM920T,试题总结

一、填空题

1.    常见的ARM处理器内核有【ARM7】、【ARM9】和【ARM11】等。

2.    ARM处理器有两种状态,分别是【ARM】状态 和【Thumb】状态。

3.    按总线所传送的信息类型,总线分为【数据总线】、【地址总线】和【控制总线】。

4.    ADS 是一套用来开发ARM 处理器应用系统的开发工具包,用户可以用ADS 编辑、编译和调试C、C++以及汇编程序。目前的版本为【ADSv1.2】。

5.    与逻辑运算规则:0 • 0=【0】;0 • 1=【0】; 1 • 0=【0】; 1 • 1=【1】

6.    或逻辑运算规则: 0 + 0=【0】;0 +1=【1】; 1 + 0=【1】; 1 + 1=【1】

将2进制转换为16进制:(10011100101101001000) B =【(9CB48) H】。

7.ARM 属于【RISC】架构。

8.ARM 指令集是【32】位宽,Thumb 指令集是【16】位宽。

9.ARM体系结构版本中V【4】版架构是目前应用最广的ARM体系架构,ARM7、【ARM9】都采用该架构。

10.ARM微处理器共有【37】个【32】位寄存器,其中【31】个为通用寄存器,【6】个为状态寄存器。

11.常用的嵌入式操作系统有【嵌入式Linux】、【VxWords】等。

12.ARM嵌入式系统主要由【嵌入式硬件】、【嵌入式软件】和【开发工具】构成。

13.复位后,ARM处理器处于【SVC】工作模式,【ARM】状态。

14.S3C2410采用的核心处理器是【ARM920T】。

15.S3C2410 支持两种引导方式,分别是【Nor-Flash】启动方式、【Nand-Flash】启动方式。

16.GPIO的中文全称是【通用输入输出端口】。

17.ARM处理器有两种状态,分别是【ARM】和【Thumb】。

18.计算机结构分为【哈佛体系】结构和【冯.诺依曼体系】结构。

19.ARM处理器支持的数据类型中,字节为【8】位、半字为【16】位、字为【32】位。

20.将2进制转换为16进制:(11011010101101101110) B = (DAB6E)H

21.ARM状态下,SP寄存器指的是【R13】、LR寄存器指的是【R14】、PC寄存器指的是【R15】。

22.一个嵌入式系统由3部分组成,分别是【嵌入式硬件】、【嵌入式软件】和【开发工具

二、选择题:

1.相对于ARM指令集,Thumb指令集的特点是【D】。

A、指令执行速度快

B、16位指令集,可以得到密度更高的代码,对于需要严格控制成本的设计非常有意义

C、Thumb模式有自己独立的寄存器

D、16位指令集,代码密度高,加密性能好

2.在ARM寄存器结构中,栈指针使用【B】寄存器。

A、R0              B、R13          C、R14          D、R15

3.在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应采用何种方法?【B】

A、直接修改CPU状态寄存器(CPSR)对应的模式

B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态

C、使用软件中断指令(SWI)

D、让处理器执行未定义指令

4.嵌入式系统加电或复位后,所有的 CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。例如:对于S3C2410来说,Boot Loader会映射到【B】地址处。                                      

A  0x0c000000   B  0x00000000  C 0x00000018   D  0x40000018

5.32位体系结构的ARM处理器有【B】种不同的处理器工作模式,和【B】个主要用来标识CPU工作状态和程序运行状态的状态寄存器。

A、7、7                         B、7、6                       C、6、6                      D、6、7

6.CPSR中的低8位称为控制位,下列不属于控制位的是【A】。

A、N                    B、I                     C、F                    D、T

7.ARM7属于【A】结构,ARM9属于【B】结构。

A、 冯.诺依曼              B、 哈佛

8.ARM7是【C】级流水线,ARM9是【D】级流水线。

A、1               B、2                  C、3                  D、5

9.ARM中可以访问状态寄存器的指令是【D】,能够访问内存的指令是【C】。

A、MOV          B、ADD           C、LDR           D、MRS

10.在下列ARM处理器的各种模式中,只有【A】模式不可以自由地改变处理器的工作模式。

A、用户模式(User)

B、系统模式(System)

C、终止模式(Abort)

D、中断模式(IRQ)

11.在ARM的汇编程序中,ADR、ADRL、【C】、【D】等被称为伪指令。

A、AREA     B、SETA    C、LDR     D、NOP

12.下列条件码中表示不相等的是【B】。

A、EQ                    B、NE                  C、CS                  D、CC

13.CPSR中的低8位称为控制位,其中I位等于1表示【A】。

A、禁止IRQ中断   B、禁止FIQ中断    C、允许IRQ中断   D、允许FIQ中断

14.ARM微处理器支持7种工作模式。其中,除【A】之外的其余6种称为特权模式,在这6种之中,除【D】之外的其余5种又称为异常模式。

A、用户模式    B、管理模式    C、中止模式    D、系统模式

15. ATPCS规定中,栈是【B】。

   A、满递增    B、满递减    C、空递增    D、空递减

16. 在用ARM汇编编程是,其寄存器有多个别名,通常PC是指R15,LR 是指【C】,SP是指【B】

A、R12                  B、R13              C、R14              D、R15

17.下列条件码中表示无符号数小于的是【D】。

A、HI                     B、LS                   C、CS                  D、CC

18.下列ARM指令中,可用于满递增堆栈操作的是【D】。

A、STMDA             B、STMIA            C、STMDB           D、STMIB

19.下列32位数中,不可作为立即数的是【A】。

A、0x81000007       B、0x04800000     C、0x00000012     D、0x8000007

20.ATPCS规定数据栈是【A】类型。

A、满递减              B、满递增            C、空递减            D、空递增

21.ARM伪指令中,可用于大范围地址读取的是【C】。

A、ADR                  B、ADRL              C、LDR                D、NOP

22.同CISC相比,下面哪一项不属于RISC处理器的特征。【D】

A、采用固定长度的指令格式,指令规整、简单、基本寻址方式有2~3种。

B、减少指令数和寻址方式,使控制部件简化,加快执行速度。

C、数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率,同时简化处理器的设计。

D、RISC处理器都采用哈佛结构

23.以下叙述中,不符合RISC指令系统特点的是【B】。

A、 指令长度固定,指令种类少

B、 寻址方式种类丰富,指令功能尽量增强

C、 设置大量通用寄存器,访问存储器指令简单

D、 选取使用频率较高的一些简单指令

24.下面关于ARM处理器的体系结构描述哪一个是错误的。【B】

A、三地址指令格式

B、所有的指令都是多周期执行

C、指令长度固定

D、Load-Store结构

25.在ARM寄存器结构中,栈指针使用【B】寄存器,

A、R0            B、R13          C、R14          D、R15

三、问答题:

1.ARM7TDMI采用了几级流水线工作方式,简要说明。

答:三级 

1、 取指令  2、译码  3、执行

2.ARM9采用了几级流水线工作方式,简要说明。

答:五级流水线工作方式,1.取指2.指令译码3.执行4.数据存储访问5.写寄存器

3.分别画出采用大端格式及小端格式存放01020304H的存储器示意图

答:高 01                                     04

        02                                                                   03

              03                                                                   02

           04                                                                01

小端模式                                                        大端模式

4.写出基于ARM920T核的处理器的异常优先级由高到低的排列次序

答:复位、数据中止、FIQIRQ、预取指令异常、软中断、未定义指令

5.简述ARM处理器从异常返回的步骤

答:ARM处理器从异常返回需要处理三件事情:通用寄存器的恢复、状态寄存器的恢复、PC指针的恢复

6.哈佛体系结构和冯诺依曼体系结构有何不同。

答:哈佛体系结构的两套地址总线和数据总线是分开的,冯诺依曼体系结构是复用的。

7.用ARM汇编指令写出实现64位加法和64位减法的代码段,使用的寄存器请自行分配。

假定低32位数存放在r0和r1里面,高32位数存放在r2和r3里面。

答:ADDS R4R0.R1

ADC R5R2.R3

减法:SUBS R4R0R1

      SBC R5R2.R3

8.写出四个s3c2410的中断异常处理模块中的主要寄存器,并简要说明其作用。

答:158页图7-8 ,倒数第一行

9.ARM920T体系结构支持哪两种方法存储字数据?

答:大端模式和小端模式,大端模式高地址存的是数据的低位,低地址存存的是数据的高位。小端模式高地址存的是数据的高位, 低地址存的是数据的地位,

四、程序分析题:

1.指出下面各条指令的寻址方式。

SUB   R0,R1,R2       ;寻址方式为: 寄存器寻址  

SUBS      R0,R0,#1       ;寻址方式为: 立即数寻址  

MOV  R0,R2,LSL #3   ;寻址方式为: 寄存器移位寻址   

SWP       R1,R1,[R2]     ;寻址方式为:   寄存器间接寻址

LDR       R2,[R3,#0x0C]  ;寻址方式为: 基址价偏移量寻址     

2.分别写出语句a)与b)中LDR的作用

a)  LDRr0,[r1,#6]         真正的ARM指令,取出以r1+6为地址里面的存储内容送到r0里。

b)  LDRr0,=0x999   伪指令,把0x999这个常数送到r0里。

  3.假设R0的内容为0x104,寄存器R1、R2的内容分别为0x01与0x10,存储器所有单元初始内容为0。连续执行下述指令后,说明存储器及寄存器的内容如何变化?

STMIB  R0!,{R1,R2}         //寄存器R0的内容为0x10c, 存储器0x108的内容为0x01, 存储器0x10 c的内容为0x10,寄存器R1、R2的内容分别为0x01与0x10。

LDMIA  R0!,{R1,R2}        

答:寄存器R0的内容为0x114,寄存器R1的内容为0x10,寄存器R2的内容为0,存储器0x10c的内容为0 x10,存储器0x108的内容为0x01,存储器其余各处的内容都为0

4.分析下面的程序,正确填写下面的空格。

; 功能:通过累加可以计算出10的整数倍   

                AREA  Example1, CODE  ,READONLY  ; 此语句是声明代码段Example1

                     ENTRY                                      ;此语句功能是 标识程序入口         

                     CODE32                                   ; 声明32位ARM指令

START       MOV             R0,#0                        ;R0 =  0  

                     MOV             R1,#10              ; R1 =  10  

LOOP            BL          ADD_SUB                        ; 调用子程序    ADD_SUB  

                     B        LOOP                              ;跳转到LOOP

ADD_SUB

                     ADDS     R0,R0,R1                            ;此语句作用是完成    R0+R1再赋给R0,并且会影响CPSR中的C标志位       

                     MOV             PC,   LR            ; 子程序返回

                     END                                          ;此语句作用是声明 整个程序结束     

五、编程题

1.       用汇编语言调用C语言实现n个数相加,n为C函数的参数,由汇编语言传递,结果存放在R5寄存器中。

答:C程序:

int    allsum(int n)

{

       int i;

       int    nsum= 0;

       for(i=1;i<=n;i++)

{

              nsum += i;

       }

       return      nsum;

}

 

汇编程序:

       AREA scaller, CODE,READONLY

       IMPORT allsum            //导入allsum

       ENTRY                        //入口点

 

       MOV      R0,#20          

       BL          allsum            //“B”子函数调用命令“L”返回主函数

       MOV      R5,R0           

HALT  B  HALT         //死循环

       END

2.利用S3C2410X的GPF4、GPF5、GPF6、GPF7四个I/O管脚控制4个LED发光二极管,编程使其实现所有LED全亮,间隔一段时间,所有LED全灭。

电路原理图如下:

 

 

 

 

 

 

 

 

 

 

 

 


附F组端口寄存器定义:

GPFCON寄存器(端口F配置寄存器)

GPFCON

描述

GPF7

[15:14]

00=Input  01=Output  10=EINT7  11=Reserved

GPF6

[13:12]

00=Input  01=Output  10=EINT6  11=Reserved

GPF5

[11:10]

00=Input  01=Output  10=EINT5  11=Reserved

GPF4

[9:8]

00=Input  01=Output  10=EINT4  11=Reserved

GPF3

[7:6]

00=Input  01=Output  10=EINT3  11=Reserved

GPF2

[5:4]

00=Input  01=Output  10=EINT2  11=Reserved

GPF1

[3:2]

00=Input  01=Output  10=EINT1  11=Reserved

GPF0

[1:0]

00=Input  01=Output  10=EINT0  11=Reserved

GPFDAT寄存器(端口F数据寄存器)

GPFDAT

描述

GPF[7:0]

[7:0]

当端口被配置成输入时,外部数据可以从对应的端口读出;当端口被配置成输出时,写入该寄存器的数据会被送到对应的引脚上;当端口被配置成功能脚时,此寄存器未定义

答:

void main()

{

       rGPFCON= 0x5500;                   //端口初始化  输出端口

   rGPFUP  = 0xff;                    //不启用上拉功能

       inti;

   rGPFDAT=0;                 //所有LED全亮

   for(i=0;i<100000;i++);

   rGPFDAT=0xF0;              //所有LED全灭

   for(i=0;i<100000;i++);

}

3.用汇编语言编写程序读取存储器0x40003100地址上的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址。

答:

COUNT  EQU       0x40003100                  ; 定义一个变量,地址为0x40003100      

 

                     AREA     Example2,CODE,READONLY      ; 声明代码段Example2

                     ENTRY                                      ; 标识程序入口

                     CODE32                                    ; 声明32位ARM指令

START    LDR       R1,=COUNT                ;R1 <= COUNT

                     MOV      R0,#0                           ; R0 <= 0

                     STR        R0,[R1]                     ;[R1] <= R0,即设置COUNT为0

 

       LOOP     LDR       R1,=COUNT 

                     LDR       R0,[R1]                        ; R0 <= [R1]

                     ADD       R0,R0,#1                   ; R0<= R0 + 1

                     CMP       R0,#10                         ; R0与10比较,影响条件码标志

                     MOVHS  R0,#0                           ; 若R0大于等于10,则此指令执行,R0 <= 0

                     STR        R0,[R1]                        ; [R1] <= R0,即保存COUNT

 

                  B  LOOP                    

                     END       

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值