笔试2——嵌入式小知识

1. 代码中使用const定义的变量,存放在下面哪个段中?()

正确答案: D 你的答案: C (错误)
text
data
COMMON
rodata

[解析]
bss段:
bss段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。

bss是英文Block Started by Symbol的简称。

bss段属于静态内存分配。

data段:
数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。

数据段属于静态内存分配。

text段:
代码段(code segment/text segment)通常是指用来存放程序执行代码的一块内存区域。

这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读(某些架构也允许代码段为可写,即允许修改程序)。

在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。

堆(heap):
堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。

当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);

当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减)。

栈(stack):
栈又称堆栈,是用户存放程序临时创建的局部变量,

也就是说我们函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味着在数据段中存放变量)。

除此以外,在函数被调用时,其参数也会被压入发起调用的进程栈中,并且待到调用结束后,函数的返回值也会被存放回栈中。

由于栈的先进先出(FIFO)特点,所以栈特别方便用来保存/恢复调用现场。

从这个意义上讲,我们可以把堆栈看成一个寄存、交换临时数据的内存区。

2.下面关于嵌入式系统存储器的叙述中,错误的是()。

正确答案: C 你的答案: D (错误)
目前嵌入式处理器内部的Cache采用SRAM
嵌入式系统使用的存储器按照其存取特性可分为随机存取存储器(RAM)和只读存储器(ROM)
铁电存储器(FRAM)和磁性存储器(MRAM)是两种新型的半导体存储器
通过对DRAM的存储控制技术进行改进,出现了DDR2 SDRAM、DDR3 SDRAM等新型的存储器产品

3. ARM寄存器组中除了以下哪组寄存器以外所有处理器模式下都可以访问( )

正确答案: A 你的答案: B (错误)
SPSR
R0-R7
CPSR
R8-R9

[解析]
ARM 处理器一般共有 37 个寄存器,其中包括:
(1) 31 个通用寄存器,包括 PC(程序计数器)在内,都是 32 位的寄存器。

(2) 6 个状态寄存器,都是 32 位的寄存器。
在每一种处理器模式中有一组相应的寄存器。在任意一种处理器模式下,可见的寄存器包括 15 个通用寄存器(R0~R14)、一个或者二个状态寄存器以及程序计数器(PC)。在所有的寄存器中,有些是各模式共用同一个物理寄存器,有些寄存器是各个模式自己拥有独立的物理寄存器。

在这里插入图片描述

其中 r0~r3 主要用于子程序间传递参数, r4~r11 主要用于保存局部变量,但在 Thumb 程序中,通常只能使用 r4~r7 来保存局部变量; r12 用作子程序间scratch 寄存器,即 ip 寄存器; r13 通常用做栈指针,即 sp; r14 寄存器又被称为连接寄存器(lr),用于保存子程序以及中断的返回地址; r15 用作程序计数器(pc),由于 ARM 采用了流水线机制,当正确读取了 PC 的值后,该值为当前指令地址加 8 个字节,即 PC 指向当前指令的下两条指令地址。

  CPSR和SPSR都是程序状态寄存器,其中SPSR是用来保存中断前的CPSR中的值,以便在中断返回之后恢复处理器程序状态。

4.下面是与ARM处理器存储器相关的叙述,其中错误的是( )。

正确答案: A 你的答案: A (正确)
ARM处理器片内数据存储器通常使用的是SDRAM
ARM处理器片内程序存储器通常使用的是Flash ROM
通过ARM处理器片内的外部存储控制器可以对处理器片外扩展的Flash ROM进行管理与控制
通过ARM处理器片内的外部存储控制器可以对处理器片外扩展的SRAM或DRAM(如SDRAM等)进行管理与控制

[解析]
ARM处理器片内数据存储器通常使用的是SRAM,而不是SDRAM.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值