Chinaunix首页 | 论坛 | 博客
  • 博客访问: 288131
  • 博文数量: 68
  • 博客积分: 3061
  • 博客等级: 中校
  • 技术积分: 652
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-27 11:39
文章分类

全部博文(68)

文章存档

2018年(1)

2017年(2)

2016年(1)

2014年(2)

2012年(6)

2011年(14)

2010年(38)

2008年(4)

我的朋友

分类: LINUX

2010-09-09 15:30:03

    一、选择题
    1. ARM 属于( A )
    [A] RISC 架构  [B] CISC架构
    2. ARM 指令集是( C )位宽,Thumb 指令集是( B )位宽的。
    [A] 8位  [B] 16 位    [C] 32位   [D] 64位
    3. ARM 指令集是( H )字节对齐,Thumb 指令集是( F )字节对齐的
    [E] 1     [F] 2        [G] 3      [H] 4
    4. 复位后,ARM处理器处于( B )模式,( D ) 状态
    [A] User  [B] SVC    [C] System   [D] ARM   [E] Thumb 
    5. ARM处理器总共( E )个寄存器,System模式下使用( A )个寄存器,SVC模式下使用( B )个寄存器。
    [A] 17个  [B] 18个    [C] 32个   [D] 36个 [E] 37个 
    6. ARM处理器中优先级别最高的异常为( E ),(   AC )异常可以用来相应中断
       [A] FIQ  [B] SWI    [C] IRQ   [D] SVC [E] RESET
    7. ARM数据处理指令中有效的立即数是( ACEGH ) 
    [A] 0X00AB0000  [B] 0X0000FFFF    [C ] 0XF000000F   [D ] 0X08000012
    [E] 0X00001F80     [F] 0XFFFFFFFF    [G] 0             [H] 0XFF000000
    8. ATPCS规定中,推荐子函数参数最大为( D ) 个
       [A] 1  [B] 2    [C ] 3 [D ] 4
    9. ATPCS规定中,栈是( B )
       [A] 满加  [B] 满减    [C ] 空加 [D ] 空减
    10. 在用ARM汇编编程是,其寄存器有多个别名,通常PC是指( D ),LR 是指( C   ),SP是指( B )
        [A] R12  [B] R13    [C ] R14 [D ] R15
    11. CPSR寄存器中反映处理器状态的位是( D )
        [A] J位  [B] I位    [C ] F位 [D ] T位
    12. 下面属于ARM 子程序调用指令的是( C )
    [A] B  [B] BX   [C ] BL [D ] MOV
    13. ARM7属于( A )结构,ARM9属于( B )结构。
    [A] 冯.诺依曼 [B] 哈佛
    14. ARM7是( B )级流水线,ARM9是( C )级流水线。
        [A] 1 [B] 3   [C ] 5 [D ] 7 
    15. ARM中可以访问状态寄存器的指令是( D ),能够访问内存的指令是( B )
        [A] MOV [B] LDR   [C ] MCR [D ] MRS
    16. 异步串口中数据位可以是( ABCD )
       [A] 5 [B] 6   [C ] 7 [D ] 8
    17. I2C协议中有几根线( B )
    [A] 1  [B] 2    [C ] 3 [D ] 4
    18. I2C协议中设备地址模式有( AC )
        [A] 7位地址模式  [B] 8位地址模式    [C ] 10位地址模式 [D ] 4地址模式
    19. S3C2410采用的是( D )核心
       [A] ARM7TDMI  [B] ARM9TDMI    [C ] ARM926EJ-S [D ] ARM920T
    20. 在串行异步通讯中,发送端串口的TxD要和接收端串口的( B )相连接
       [A] TxD  [B] RxD    [C ] nCTS [D ] nRTS
    21. 在嵌入式系统设计中可以通过( B )来测量电池电压,可以用(C)来驱动喇叭发声
       [A] DAC  [B] ADC [C ] PWM [D ] Timer   [E] RTC
    22. MMU的作用有( AB )
    [A] 内存保护  [B] 地址转换 [C ] 加快存取速度 [D ] 安全保密 [E] 内存分配
    23. 以下属于DMA特点的有( BC )
    [A] 占用CPU  [B] 占用总线 [C ] 不占用CPU [D ] 不占用总线
    24. 下面的设备中属于闪存的设备有( AD )
    [A] K9F1208U0M [B] MAX3232 [C ] HY57V561620 [D ] Am29LV160D
    25. I2C传输是( B )方式传输
    [A] 单工  [B] 半双工 [C ] 全双工
    二、简答题
    1. 简述ARM发生异常时,ARM核心会自动做哪些事情?从异常返回时,我们要做哪些事情?
    当异常产生时, ARM core:
    拷贝 CPSR 到 SPSR_
    设置适当的 CPSR 位: 
    改变处理器状态进入 ARM 状态
    改变处理器模式进入相应的异常模式
    设置中断禁止位禁止相应中断 (如果需要)
    保存返回地址到 LR_
    设置 PC 为相应的异常向量

    返回时, 异常处理需要:
    从 SPSR_恢复CPSR
    从LR_恢复PC 
    Note:这些操作只能在 ARM 态执行.
    2. 用ARM汇编指令写出实现64位加法和64位减法的代码段,使用的寄存器请自行分配。
    假定低32位数存放在r0和r1里面,高32位数存放在r2和r3里面。
    加法:
    ADDS r0, r0, r1    //加S是因为要让这个操作影响标志位
    ADC r2, r2, r3    //ADC是带进位的加法,如果上一条指令产生进位则一起加进来
    减法:
    SUBS r0, r0, r1    //加S是因为要让这个操作影响标志位
    SBC   r2, r2, r3    // SBC是带进位的减法指令
    3. 请列举ARM处理器的模式和异常,并说明各个发生异常时ARM处理器所处的模式
    异常:         
    Reset        
    Data Abort
    FIQ
    IRQ
    Prefetch Abort
    SWI
    Undefined instruction
    处理器模式
     User : 非特权模式,大部分任务执行在这种模式
     FIQ :   当一个高优先级(fast) 中断产生时将会进入这种模式
     IRQ :   当一个低优先级(normal) 中断产生时将会进入这种模式
     Supervisor :当复位或软中断指令执行时将会进入这种模式
     Abort : 当存取异常时将会进入这种模式
     Undef : 当执行未定义指令时会进入这种模式
     System : 使用和User模式相同寄存器集的特权模式
    4. FIQ的什么特点使得它处理的速度比IRQ快?
    1)FIQ优先级比IRQ高,不会被中断
    2)FIQ有自己的专属寄存器:r8~r12,不用对通用寄存器入栈保护,可以加快速度
    3)FIQ位于异常向量表的末尾0x1c,故无需跳转,可以在这里直接放置异常处理函数
    5. 什么指令可以放在中断向量表?
    跳转指令,给PC赋值的指令
    B,LDR,MOV
    6. ARM处理器 中断向量表位于存储器的什么位置?
    默认:0x0
    也可以配置成:0Xffff0000
    7. 下列 ARM 指令将做什么?
    a) LDRH r0,[r1,#6] 
    b) LDR r0, =0x999
    a:将r1寄存器的值加上6,然后把以这个值为地址的内存单元里的值取半字(低16位)赋给r0
    b:将立即数0x999赋给r0,注意这是一个伪指令
    8. SWP 指令的优势是什么?用来实现什么功能?
    功能:在寄存器和存储器之间,由一次存储器读和一次存储器写组成的原子操作。完成一个字节或字的交换。
    可以用来实现信号量
    9. S3C2410 支持几种引导方式(或者说是内存映射方式)?简述Nand引导方式S3C2410硬件做的事情。
    1)nor flash启动方式。
    2)nand flash启动方式。
       从Nand flash 启动时,S3C2410首先会执行固化在片上ROM中的一段小程序,这段程序负责将nand flash前2K的代码搬移到片上RAM,然后将PC指针指向0x0地址(注意这个时候片上RAM被映射到0x0的起始地址)
    10. 简述 static和volatile 关键字的含义和作用。
    c语言中static关键字有两个作用,一是文件作用域,二是函数作用域。
    文件作用域关键字static的作用是,以static申明的全局变量、函数不得被其他文件所引用
    static另外一个用途是函数内部静态变量,只会被初始化一次,而且变量存储在全局数据段中而不是函数栈中,所以其生命期会一直持续到程序退出
    一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份

阅读(1200) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~