宁波大学NBU计算机嵌入式系统期末考试题库(二)

2022年嵌入式复习题(简答)

三、简答题

1、 Linux设备树的目的?

设备树是一个描述硬件的数据结构,它提供了一种语言,将硬件配置从Linux内核源码中提取出来。设备树使得目标板和设备变成数据驱动的,它们必须基于传递给内核的数据进行初始化,而不是像以前一样采用硬编码的方式。这种方式可以降低代码重复率,使得单个内核镜像能够支持很多硬件平台。

2、 基本移植内核有哪些步骤,并解释之?

(1)选择参考板
选择参考板的原则如下:

参考板与开发板具有相同的处理器,至少类似的处理器;
参考板和开发板具有相同的外围接口电路,至少基本接口相同;
Linux内核已经支持参考板,至少有非官方的补丁或者BSP 参考
Linux设备驱动工作正常,至少已经驱动基本接口。

(2)编译测试参考板的Linux内核

为了确信Linux对参考板的支持情况,最好验证一下。配置编译Linux内核,在目标板上运行测试一下。

(3)对内核进行裁剪和添加功能

前面使用了exynos的默认配置来配置内核源码,但是这些配置中有些配置可能是多余的,并不适合我们的FS4412开发板。而有些配置又是没有选配的,需要添加。

3、 Exynos4412内核与设备树启动步骤?

U-Boot的bootm命令即可启动内核和设备树。
U-Boot先通过tftp命令将内核uImage镜像和设备树分别下载到内存的0x41000000和0x42000000的位置,然后执行bootm命令启动内核。bootm根据后面的参数给出的地址值去获得加在zImage前面的64字节,验证相应的信息。如果验证通过,则把64字节后的zImage拷贝到指定加载地址处,然后跳转到该地址去执行代码,把CPU的控制权交给了内核。

4、 如何生成可移植的内核与设备树?

1.下载Linux内核文件
2.编译
(1) 清理项目工程
(2) 设置默认配置文件
(3) 编译生成kernrl文件
(4) 编译生成.dtb文件
3.通过TFTp烧写zImage与.dtb文件

5、 根文件系统目录的含义?

根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机/还原/系统修复等动作有关。

6、 U-Boot启动过程

<1> BL0 阶段
BL0是固化在iram中的程序,工作是:关闭看门狗,关闭中断及MMU,时钟设置,检测om决定启动方式,拷贝bl1到iram中。
<2> BL1 阶段(<8k)
BL1 主要工作是:初始化化环境,如中断初始化,设置堆栈等),搬移bl2代码到RAM中
<3> BL2 阶段(<14k)
BL2主要工作是:完成基本硬件初始化(Low_init.s 时钟串口内存flash等),
<4> u-boot.bin 从exynos 4412的启动步骤可知,我们单独运行u-boot是不行的。需使用三星提供的BL1 BL2添加到u-boot.bin的前面,进行打包校验后会生成新的u-boot

7、 ARM 的7 种功能模式是什么?

ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。

8、 在Linux启动时,这个inittab文件起什么作用?

Linux启动时运行init程序,根据操作系统当前正在运行的功能级别启动后面的任务,包括多用户环境,网络等。这个级别在/etc/inittab文件里指定, 从0到6,有不同的功能。这个文件是init 程序寻找的主要文件,init进程中所做的每一步配置工作都由/etc/initab中的内容来决定。

9、 在Linux启动时,这个etc/fstab文件起什么作用?

指定启动时需要自动挂载的文件系统列表。文件中列出了初始化时需挂载的文件系统的类型、挂载点及可选参数。

10 进程控制块的组成,功能?

进程控制块由PCB、有关程序段和该程序段对其进行操作的数据结构集三部分组成。进程名、特征信息、进程状态信息、调度优先权、通信信息、现场保护区、资源需求、分配和控制方面的信息、进程实体信息、族系关系. 每个进程有唯一的PCB 操作系统依据PCB管理进程 操作系统利用PCB实现进程的动态和并发 PCB是进程存在的唯一标志

11、解释下列命令含义?
12、解释下列命令含义?
13、解释下列命令含义?
14、在shell脚本中,什么是位置变量,说明$0,$1的含义?

在Linux命令行中,当一条命令或者脚本执行时,后面可以跟多个参数,这些变量可以用位置变量表示。$0表示该条命令本身, $1代表命令后面紧跟的第一个参数

15、解释Shell脚本文件的语句含义?

shell脚本文件的内容是一连串的shell命令,可以被shell直译其内容后执行;每条语句都是可执行的shell命令。

16、makefile文件的作用是什么?

管理工程文件,通过makefile的编写,对工程下不同目录中的文件的编译、链接的方式、顺序进行描述。在编写makefile后,编译工程只要求输入make命令,提高了编译效率。

17、 解释Makefile文件每条语句的含义?
18、 根据嵌入式系统的特点,写出嵌入式系统的定义。

嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统

19、 ARM核现在有哪几种?

ARM处理器核当前有6个系列产品ARM7, ARM9, ARM9E, ARM10E, SecurCore以及最新的ARM11系列。

20、ARM的寻址方式有哪些?

1.寄存器寻址;
2.立即寻址;
3.寄存器移位寻址;
4.寄存器间接寻址;
5.基址寻址;
6.多寄存器寻址;
7.堆栈寻址;
8.块拷贝寻址;
9.相对寻址。

21、试写抢占式和非抢占式的区别。

执行的过程中对中断处理方式不一样,强占式:某一中断执行后,如果有更高优先级的任务处于就绪状态,将执行更高优先级任务,而非抢占方式不一样,一个任务只有主动放弃cpu的控制欲,其它任务才能获得cpu的控制权。

22、从嵌入式系统底层到上层应用软件,试分析嵌入式计算系统的组成主要分为哪几个部分,

( 1 )硬件层
( 2 )中间层(嵌入式系统初始化,硬件相关的驱动程序)
( 3 )软件层(操作系统。文件系统。 GUI ,网络及通用组件)
( 4 )功能层

23、 专业名词解释(写出以下英文简写对应的中文名称

(1)RTOS 实时操作系统 (2)CISC 复杂指令集( 3)Kernel 内核 (4)Scheduler 调度
(5)non-preemptive 非抢占式

24、嵌入式开发环境主要包括哪些组件?

嵌入式系统开发需要交叉编译和在线调试的开发环境,主要包括
1.宿主机
2.目标机(评估电路板)
3.基于JTAG的ICD仿真器、或调试监控软件、或在线仿真器ICE
4.运行于宿主机的交叉编译器和链接器、以及开发工具链或软件开发环境
5.嵌入式操作系统。

25. 请描述建立一个嵌入式开发平台的步骤。

(1)连接主机和目标板
(2)使用flash工具烧写bootloader
(3)配置并启动主机的bootp服务
(4)配置并启动主机的tftp服务
(5)使用tftp下载内核及根文件系统镜像到目标板,重启目标
(6)配置并启动NFS服务
(7)在目标板使用mount挂载主机的目录
(8)再次使用bootp命令确认bootp服务是否建立,使用tftp命令确认tftp服务建立
(9)将内核镜像和根文件系统cp到tftp根目录
(10)重启目标板,确认嵌入式linux正常启动

26、什么是嵌入式系统?其特点有些什么?

嵌入式系统是“以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。” 特点:

1)是专用的计算机系统,用于特定的任务;
2)资源较少,可以裁减;
3)功耗低,体积小,集成度高,成本低;
4)使用实时操作系统;
5)可靠性要求更高,具有系统测试和可靠性评估体系;
6)运行环境差异大 7)大部分程序固化在ROM中;
8)较长的生命周期;
9)嵌入式微处理器通常包含专用调试电路

27、嵌入式系统的BooTLoader的功能是什么?

BootLoader是在嵌入式系统复位启动时,操作系统内核运行前,执行的一段程序。通过BootLoader,初始化硬件设备,建立内存和I/O空间映射图,为最终加载操作系统内核调整好适当的系统软硬件环境。

BootLoader的stage1通常包括以下工作
1.硬件设备初始化
2.加载Bootloader的stage2准备ARM空间
3.拷贝Bootloader的stage2到RAM空间中
4设置堆栈
5跳转到stage2的C入口点

BootLoader的stage2通常包括以下工作
1初始化本阶段要使用到的硬件设备
2检测系统内存映射
3将内核映像和根文件系统映像从flash设备上复制到RAM空间中
4设置内核启动参数
5调用启动内核

28、目前嵌入式操作系统有哪些?

1)μC/OS-II嵌入式操作系统内核;
2)VxWorks嵌入式实时操作系统;
3)WinCE操作系统;
4)Linux操作系统;
5)Symbian操作系统

29、构造嵌入式开发环境有哪几种形式?

1)交叉开发环境; 2)软件模拟环境; 3)评估电路板。

30、嵌入式系统开发的基本流程?

系统定义,可行性研究,需求分析,系统总体设计,硬件设计制作,软件设计实现,软硬件集成,功能性能测试。

31、有时要使用Thumb技术的原因

Thumb指令集不完整,它是ARM指令集的子集。但Thumb指令具有更高的代码密度,即占用存储空间小,仅为ARM代码规格的65%,但其性能却下降的很少。所以,Thumb指令集使ARM处理器能应用到有限的存储带宽并且代码密度要求很高的嵌入式系统中去。

32、ARM处理器的工作模式有哪几种?

用户模式、快速中断模式、外部中断模式、特权模式、数据访问中止模式、未定义指令中止模式、系统模式、监控模式

33、寄存器R13,R14,R15的专用功能各是什么?

R13作用通常是堆栈指针,SP;用于保存待使用的寄存器的内容
R14用作子程序链接寄存器,LR;当使用BL指令调用子程序时,返回地址将自动存入R14中;发生异常时,将R14对应的异常模式版本设置为异常返回地址
R15的功能是程序计数器,PC。它指向正在“取指”的指

34、寄存器CPSR,SPSR的功能各是什么?

CPSR:当前程序状态寄存器,在任何模式下可以被访问。包含条件标志位、中断禁止位、处理器模式标志以及其他的一些控制和状态位
SPSR:程序状态保护寄存器(备份),每种模式下都有一个状态寄存器SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。

35、ARM的异常有哪几种,各进入何种工作模式?他们退出各采用什么指令?

七种异常:

复位异常:特权模式,不需要返回 未定义指令异常:未定义指令中止模式,退出指令为MOV PC,LR
软中断异常(SWI):特权模式,退出指令为MOV PC,LR 预取异常:数据访问中止模式,退出指令为MOV PC,LR,SUB#4
数据异常:数据访问中止模式,退出指令为MOV PC,LR,SUB#8 外部中断异常(IRQ):外部中断请求模式,退出指令为MOV
PC,LR,SUB#4 快速中断异常(FIQ):快速中断请求模式,退出指令为MOV PC,LR,SUB#4

36、什么是小端和大端存储器组织?

(1)小端存储系统中字的地址对应该字最低有效字节所对应地址;半字的地址对应该半字最低有效字节所对应地址
(2)大端存储系统中字的地址对应该字最高有效字节所对应地址;半字的地址对应该半字最高有效字节所对应地址

37、什么是数据的边界对齐?

默认情况下,ADS编译器使用的是数据类型的自然边界对其方式。数据的自然对其方式是指:如果该数据类型是n个字节的,那么该数据类型就按n字节对齐。

38、ARM核现在有哪几种?

ARM7、ARM9、 ARM9E、ARM1OE,、SecurCore、 StrongARM、 Xscale

39、ARM的寻址方式有哪些?各写一条说明。

(1) 立即寻址: ADD R6,R6, #128 ; R6=R6+128
(2)寄存器寻址: ADD R2,R3,R5 ; R2=R3+R5
(3)寄存器移位寻址: ADD RO,R1, R2. LSL#3 ; R0=R1+8*R2
(4)寄存器间接寻址: LDR R6,[R7] ; R6=[R7]
(5)变址寻址: LDR R2,[R3, #128] ; R2= [R3+128] LDR
R2, [R3, #4]! ;R2=[R3+4], R3=R3+4 LDR R2, [R3],#4 ;R2=[R3],
R3=R3+4
(6)多寄存器寻址: LDMIA R2,{R3, R5,R7} ; R3=[R2], R5=[R2+4], R7=[R2+8]
(7)堆栈寻址: STMFD SP! {R1-R7, LR} LDMFD SP! {R1-R7, LR}
(8)块拷贝寻址: LDMIA R0! {R2- -R9} STMIA R1,{R2-R9}
(9)相对寻址: BEQ LOOP; 条件跳转到LOOP标号处

40、在ARM的立即寻址方式下其立即数如何在指令编码中表示?

在ARM数据处理指令中,当参与数为立即数型时,每个立即数都是采用一个8位的常数循环右移偶数位而间接得到。其中循环右移的位数由一个4位二进制的两倍表示,如果立即数记作,8位常数记作immed_8,4位的循环右移值记.作rotate_ imm,有效的立即数是由一个8位的立即数循环右移偶数位得到。因此有效立即数immediate可以表示成: = immed_8循环右移(2* rotate_ imm)

41、指令ADR,ADRL、LDR、NOP是如何处理地址值读入到寄存器中的?

ADR是将基于PC或者寄存器的地址值读入寄存器,通常被替换成一条ADD指令或SUB指令来实现功能。
ADRL可以读取更大范围内的地址,而且被编译器替换成2条数据处理指令。
LDR将一个32位的立即数或者一个地址值读取到寄存器中,大范围的地址读取。
NOP在汇编时将被替换成ARM中的空操作。

42、指令LDR R1,=0xFFF是如何将立即数0xfff读入到R1的?

由于需要读取的寄存器的地址值超过了MOV及MVN指令可操作的范围,所以编译时其将该常数放在数据缓冲区,同时用一条基于PC的LDR指令读取该常数。

43、如何在c语言程序中内嵌汇编?

P106-P110

44、嵌入式Linux操作系统的特点。

Base:

1.Linux系统是层次结构且内核完全开放。
2.强大的网络支持功能。
3.Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境。
4.Linux具有广泛的硬件支持特性。

Details:

第一,Linux系统是层次结构且内核完全开放。Linux是由很多体积小且性能高的微内核系统组成。在内核代码完全开放的前提下,不同领域和不同层次的用户可以根据自己的应用需要方便地对内核进行改造,低成本地设计和开发出满足自己需要的嵌入式系统。

第二,强大的网络支持功能。Linux诞生于因特网时代并具有Unix的特性,保证了它支持所有标准因特网协议,并且可以利用Linux的网络协议栈将其开发成为嵌入式的TCP/IP网络协议栈。此外,Linux还支持ext2、fat16、fat32、romfs等文件系统,为开发嵌入式系统应用打下了很好的基础。

第三,Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。Linux也符合IEEEPOSIX.1标准,使应用程序具有较好的可移植性。
  传统的嵌入式开发的程序调试和调试工具是用在线仿真器(ICE)实现的。它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,完成监视和调试程序;但一般价格比较昂贵,只适合做非常底层的调试。使用嵌入式Linux,一旦软硬件能够支持正常的串口功能,即使不用仿真器,也可以很好地进行开发和调试工作,从而节省一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链(toolchain)。它利用GNU的gcc做编译器,用gdb、kgdb、xgdb做调试工具,能够很方便地实现从操作系统到应用软件各个级别的调试。

第四,Linux具有广泛的硬件支持特性。无论是RISC还是CISC、32位还是64位等各种处理器,Linux都能运行。Linux通常使用的微处理器是IntelX86芯片家族,但它同样能运行于Motorola公司的68K系列CPU和IBM、Apple、Motorola公司的PowerPCCPU以及Intel公司的StrongARMCPU等处理器。Linux支持各种主流硬件设备和最新硬件技术,甚至可以在没有存储管理单元(MMU)的处理器上运行。这意味着嵌入式Linux将具有更广泛的应用前景。

45、简述Linux启动过程。

Base:

Linux系统的启动过程可以分为5个阶段:
1、内核的引导。
2、运行 init。
3、系统初始化。
4、建立终端 。
5、用户登录系统。

Details:

内核引导
当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。操作系统接管硬件以后,首先读入/boot 目录下的内核文件。
运行init init
进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。init 程序首先是需要读取配置文件 /etc/inittab。 系统初始化 在init的配置文件中有这么一行:si::sysinit:/etc/rc.d/rc.sysinit,它调用执行了/etc/rc.d/rc.sysinit,而rc.sysinit是一个bashshell的脚本,它主要是完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要首先运行的重要脚本。它主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务。
建立终端
rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。init接下来会打开6个终端,以便用户登录系统。
用户登录系统
一般来说,用户的登录方式有三种: 命令行登录 、ssh登录 、图形界面登录.

46、简述网络文件系统 NFS,并说明其作用。

(1)网络文件系统是应用层的一种应用服务,它主要应用于Linux和Linux系统、Linux和Unix系统之间的文件或目录的共享。
(2)对于用户而言可以通过 NFS方便的访问远地的文件系统,使之成为本地文件系统的一部分。
(3)采用NFS之后省去了登录的过程,方便了用户访问系统资源。

47、嵌入式系统的组成,能画出嵌入式系统的组成框架。

嵌入式系统由软件系统和硬件系统两部分组成。

48、 下列ARM条件码的含义是什么?(1) EQ(2) NE(3) GE(4) LT(5) MI

(1) EQ 相等
(2) NE 不相等
(3) GE 带符号数大于或等于
(4) LT 带符号数小于
(5) MI 负数

49、简述BLX、SWI、STM、LDM、MOV、MVN的含义。

BLX 带链接和状态切换的跳转指令
SWI 软件中断指令
STM 批量内存字写入指令
LDM 加载多个寄存器指令
MOV 数据传送指令
MVN 数据取反传送指令

50、Gcc编译时使用静态库与动态库的区别?

静态库在执行程序之前就已经加入到执行代码中,成为执行程序的一部分来执行,后缀为".a";动态库是在执行程序启动时加载到执行代码中,后缀名".so"。静态库生成的文件可执行文件占用内存大、部署文件容易、执行效率好;动态库程序的升级更容易。

  • 1
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、 ARM微处理器有 7种工作模式,它们分为两类 非特权模式 、 特权模式 。其中用户模式属于 非特权模式 2、 ARM支持两个指令集, ARM核因运行的指令集不同,分别有两个状态 ARM 、 Thumb ,状态寄存器CPSR的 T 位反映了处理器运行不同指令的当前状态 3、 ARM核有多个寄存器,其中大部分用于通用寄存器,有小部分作为专用寄存器, R15 寄存器用于存储PC,R13通常用来存储 SP 4、 ARM处理器有两种总线架构,数据和指令使用同一接口的是 冯诺依曼 ,数据和指令分开使用不同接口的是 哈佛结构 1. 下列不是嵌入式系统特点的是: A. 系统内核小 B. 专用性强 C. 系统精简 D. 实时性要求不高 2. 关于ARM汇编和C语言混合编程下列错误的是: A.C语言中可以直接嵌入某些汇编指令 B. C语言中可以调用汇编的子程序 C. 汇编程序中可以调用C语言的函数 D. C语言嵌入的汇编指令时,不可以使用C的变量 3. 关于ATPCS规则,说法错误的是: A. 只能使用R0-R3来传递参数 B. R13为堆栈指针SP,需要保护 C. R14为连接寄存器,用于存放程序返回地址 D. 单字的返回值存放在R0 4. 关于交叉编译描述正确的是: A. 编译器运行在目标机,生成的可执行文件在宿主机上运行 B.编译器运行在宿主机,生成的可执行文件在宿主机上运行 C.编译器运行在目标机,生成的可执行文件在目标机上运行 D.编译器运行在宿主机,生成的可执行文件在目标机上运行 5. 建立嵌入式Linux开发环境中,使用Bootp协议的直接目的是: A. 分配宿主机的IP地址 B. 分配目标机的IP地址 C. 用于宿主机和目标机之间通讯 D. 用于监控目标机的运行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值