第一章习题
1.简述嵌入式系统的定义和特点.
定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,应用系统对对象,可能性,成本,体积,功耗有严格要求的专用计算机系统.
特点:1.专用性强.
2.实时性好.
3.可裁剪性好.
4.可靠性高.
5.功耗低.
2.简述嵌入式系统的发展历程.
第一阶段在20世纪70年代前后,是嵌入式系统的萌芽阶段.
第二阶段是以嵌入式微处理器为基础,以简单操作系统为核心的嵌入式系统.
第三阶段是以嵌入式操作系统为标志的嵌入式系统.
第四阶段是基于Internet的嵌入式系统.
3.简述嵌入式系统的组成.
1. 硬件
1. 微处理器
2. 外围电路
3. 外部设备
2. 软件
1. 板级支持包
2. 实时操作系统
3. 应用程序接口
4. 应用程序
4.简述MCU,DSP,和SOC的区别.
MCU:微控制器(单片机),
DSP:数字信号处理器.
SOC:片上系统.
微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提高.
数字信号处理器是面向数字信号处理领域的应用,是通过对通用处理器的系统结构和指令集进行改进而得到的专用芯片,指令执行速度较快.
片上系统与微控制器的主要区别是后者只是芯片级的芯片,而前者是系统级的芯片.
5.简述嵌入式微处理器的特点.
体积小,重量轻,成本低,可靠性高
第二章习题
1.ARM微处理器内核系列主要有哪些?
ARM7 系列;
ARM9 系列;
ARM9E 系列;
ARM10E 系列;
ARM11 系列;
Cortex 系列;
SecurCore 系列;
Inter的Xcale/StrongARM系列;
2.ARM处理器工作模式有哪8种?
用户模式
快速中断模式
外部中断模式
特权模式
数据访问终止模式
未定义指令中止模式
系统模式
监视模式
3.简述RISC和CISC的区别.
指令集区别:RISC一个周期执行一条指令,指令长度固定.而CISC指令长度不固定,执行需要多个周期.
流水线区别:RISC流水线每周期前进一步,而CISC指令执行需要调用微代码的一个微程序.
寄存器区别:RISC使用更多通用寄存器,而CISC用特定目的的专用寄存器.
load/store结构区别:RISC独立的load和store指令完成数据在寄存器和外部存储器之间的传输而CISC处理器能够直接处理存储器中的数据.
4.ARM体系结构支持的数据类型有哪些?有哪些寄存器?如何组织?
数据类型:
1.字节==8位
2.半字==2字节
3.字==4字节
寄存器:有33个通用寄存器和7个状态寄存器.
1.通用寄存器
a.未分组寄存器(R0-R7)
b.分组寄存器(R8-R14)
c.程序寄存器(R15)
2.转态寄存器
5.分析程序状态寄存器各位的功能描述,并说明C,Z,N,V在什么情况下进行置1和清零.
低8位位控制位,27-31为条件标志位,其他为其他标志位.
C:进位或者借位标志位.当运算结果产生了进位时,C=1,否则为0;
当运算时产生了借位时,C=0,否则为1;
Z:结果是否为0的标志位.运算结果为0,则Z=1,否则为0;
N:符号标志位.运算结果为负数时,n=1,运算结果为正数或者零时,N=0;
V:溢出标志位.符号位溢出时,V=1,否则为0.
第三章习题
1.简述GCC编译4个过程中预编译的主要功能.
预编译过程的主要功能是:读取源程序,并对头文件(include),预编译语句(如define等)和一些特殊符号进行分析和处理.如把头文件复制到源文件中,并将输出的内容送到系统的标准输出
#gcc -E test.c
2.简述GCC编译4个过程中编译的主要功能.
编译的主要功能包括两部分,第一部分是检查代码的语法,如果出现语法错误,则给出错误提示代码,并结束编译,只有在代码无语法错误的情况下才能进入第二部分.第二部分是将预编译后的文件转换为汇编语言,并自动生成扩展名为.s的文件.
#gcc -S test.c
3.简述GCC编译4个过程中连接的主要功能.
连接的主要功能是连接目标代码,并生成可执行文件.
#gcc test.c -o test
4.简述GDB主要完成的功能.
1.启动程序,按照程序员自定义的要求运行程序.
2.单步执行,设置断点,可以让被调试的程序在所指定的断点处停住.
3.监视程序中的变量.
4.动态的改变程序的执行环境.
5.简述Makefile的基本结构.
target:dependency
command //(一个Tab的距离)
// 若干规则组成
target:指Make工具最终需要创建的东西,通常是目标文件或者可执行文件,也可以是Make工具执行的动作名称.
dependency:编译目标体要依赖的一个或者多个文件列表.
command:为了从指定的依赖关系中创建出目标体所需执行的命令.
第四章习题
1.简述嵌入式开发环境的搭建过程.
嵌入式交叉开发环境主要包括调试方法,交叉编译环境和目标机运行环境.在进行嵌入式软件开发是,首先根据实际应用选择一种调试方法,然后根据调试方法构建交叉编译环境和目标机运行环境
2.BootLoader的结构分两部分,简述各部分的功能.
stage1 和 stage2 两部分.
stage1:
1.硬件设备初始化.
2.为加载BootLoader程序的stage2准备RAM空间.
3.复制BootLoader程序的stage2到RAM空间.
4.设置好堆栈,堆栈指针的设置目的是为了执行C语言代码做好准备.
5.跳转到stage2的C入口点.
stage2:
1.初始化本阶段要使用到的硬件设备.
2.检测系统内存映射(memory map)
3.将内核映像和根文件系统映像文件从Flash上读取到RAM空间中.
4.为内核设置启动参数.
5.调用内核.
3.ARM常用的BootLoader程序有哪些?
Uboot
Blob
ARMBoot
Redboot
vivi
4.简述Linux系统中开发好的程序如何下载到目标机.
1.在board目录下为目标机新建一个目录.将目标机的源码复制到这个目录中.
2.为目标机准备程序启动文件.
3.为目标机指定编译目标名.
4.为目标机准备头文件
5.添加目标机信息.
6.为目标机生成映像文件.
5.简述Uboot启动流程.
执行arch/arm/cpu/armv7中的start.S文件==>执行arch/arm/lib/crt0.S文件的_main函数==>执行arch/arm/lib/board.c文件中的board_init_r函数==>执行目标机中的board/samsung/origen目录中的origen.c文件
6.简述生成内核映像文件zImage的步骤.
解压源文件并清除原有配置
内核移植: 指定处理器的类型以及使用的交叉编译工具链
内核配置: 根据目标机的硬件电路以及实际应用需要对内核进行裁剪.内核配置主要是处理器的配置,支持的文件系统,需要安装的设备驱动程序.
内核编译: 执行编译命令 make uImage
第六章习题
1.什么是嵌入式数据库?
嵌入式数据库一般是指运行在嵌入式系统上,且不启动服务器端的轻型数据库,它与应用程序紧密集成,被应用程序启动,并伴随应用程序的退出而终止.
2.嵌入式数据库和传统数据库从应用层面比较有什么特点?
嵌入式有一下特点:
1.小内核:可嵌入应用程序和处理能力受限的硬件环境.
2.高性能:比企业级数据库速度快,实时性要求高.
3.低成本:可嵌入手机,车载导航等批量生产系统.
4.可裁剪:能够根据实际需要增加或减少必要或不必要的功能模块.
5.嵌入式:能够嵌入软件系统或者硬件系统,对于终端用户来说是透明的.
3.嵌入式数据库和传统数据库的优化重点有什么不同?
传统数据库由于面向通用的应用,优化重点是高吞吐量,高效的索引机制,详尽的查询优化策略.
而嵌入式数据库是面向特定应用的,并且资源有限,优化重点是实时性,开销大小,系统性能,可靠性,可预知性,和底层控制能力,即针对选用的实时OS和嵌入式硬件平台设计合理的数据模型和物理结构.
4.嵌入式数据库和传统数据库关键技术有什么不同?
传统数据库的系统的备份和恢复,复制和同步主要针对数据库服务器端而嵌入式数据库的备份与恢复,复制和同步通过上传,下载或混合方式来实现服务器和前端设备的数据同步.
数据安全性方面:传统数据库允许多用户并发共享使用数据,因此需要提供多方面的数据控制功能.而嵌入式数据库的安全性则需要考虑存储设备的安全访问问题.
事务处理方面:传统数据库在并发多用户环境下,需要考虑事务操作的原子性,一致性,隔离性,持久性.而嵌入式数据库只需要考虑结合移动计算环境的特征进行事务处理控制.
5.简述SQLite内部词法分析器模块的主要功能.
词法分析器的任务是把接口送来的字符串分割成一个个标识符(token),并把这些标识符传递给语法分析器.