嵌入式操作系统
:
VxWorks
,
Windows CE
、
uC/OS-II
和嵌入式
Linux
嵌入式
GUI
:
X Windows
,
Micro Windows
,
MiniGUI
bootloader
:
U-boot,Blob,ARMBoot
ARM
常用
Bootloader
程序:
U-Boot
,
Blob
,
RedBoot
,
vivi
嵌入式数据库:
mSQL
,
Berkeley DB
,
SQLite
。
动态
/
静态链接库:
.so .a
程序运行过程中 编译过程中
创建
根文件系统
的工具为
BusyBox
宿主机和试验箱通过
串口
来传输数据
配置
minocom
(串口通信工具)时,
一般参数为波特率
115200
,数据位
8
位,
停止位
1
位,奇偶校验位无软硬件控制流为无
对
Flash
存储器烧写
可以通过
编程器、串口和网络接口等不同方式。
最先被写入
Flash
存储器中的软件是
Bootloader
嵌入式
linux
的
内核映像
文件
zImage,
根映像
文件是
root.cramfs
大多数
Bootloader
程序
包括
启动加载和下载操作模式
Linux
驱动程序的编译
方法:
静态编译和动态编译
加载模块化驱动程
序的命令是
insmod
;
卸载
已安装模块化驱动程序的命令是
rmmod
;
查看
已安装的模块化驱动程序的命令是
lsmod
。
嵌入式数据库特点
:可定制性可靠性支体提
SQLilte
特性
:支持
ACID
事务零配置程序体积小
自包含 跨平台 无数据类型
(1)
计算机分为:嵌入式和通用
(2)
硬件:微处理器 外围电路 外部设备
(3)
软件:板级支持包 实时操作系统 应用编程接口 应用程序
(4)
嵌入式处理器可以分为:嵌入式处理器 微控制器 数字信号处理器
简述计算机系统的发展历程
第一阶段大致在
20
世纪
70
年代前后,可以看成是嵌入式系统的萌芽阶段;
第二阶段是以嵌入式微处理器为基础,以简单操作系统为核心的嵌入式系统;
第三阶段是以嵌入式操作系统为标志的嵌入式系统,也是嵌入式应用开始普及的阶段;
第四阶段是以基于
Internet
为标志的嵌入式系统,这是一个正在迅速发展的阶段。
简述
MCU
和
DSP
的区别
MCU
是微控制器,
DSP
是数字信号处理器。
MCU
相当于小型的电脑,
内部集成的
CPU
、
ROM
、
RAM
、
I/O
总线,
所以集成度高是它的特点。
DSP
是专用的信息处理器,
内部的程序是对不同的机器和环境进行特别优化,
所以处理速度是最快的。
make
和
Makefile
之间的关系?
make
是一种命令,是根据
Makefile
文件的规则
决定如何编译和连接程序或其他的动作。
$@
:规则的目标对应的文件名;
$^
:表示所有的依赖列表,以空格分开;
$<
:依赖文件列表中的第一个文件。
$+
:所有的依赖文件
$*
:不包含扩展名的目标文件名称
GCC
编译器的常用参数功能
?
-o
表示编译成一个可执行程序;
-I
表示指定头文件目录;
-L
表示指定库文件目录选项;
-E
表示对源代码进行预编译;
-S
表示编译成汇编代码;
-c
表示把
.c
文件转换为以
.o
为扩展名的目标文件。
#gcc –g test.c –o test
#gdb test
#gcc –o test test.c
编译,生成
test.o
简述嵌入式开发环境的搭建过程
1
、交叉编译工具链的安装;
2
、安装配置
TFTP
服务;
3
、安装配置
NFS
服务;
4
、
C-Kermit
的安装配置;
5
、
minicom
的安装配置;
6
、
windows
下超级终端的配置。
BootLoader
的结构功能
Stage1
:汇编语言,设备初始化;
Stage2
:
C
编写,增强程序的移植性和可读性。
简述生成内核映像文件
zImage
的步骤
1
、
make config
进入命令行;
2
、
make menuconfig
内核裁剪;
3
、
make clean
清理以前已生成的目标文件;
4
、
make dep
编译变量的依赖关系;
5
、
make zImage
生成内核镜像文件
zImage
。
BusyBox
工具的功能
?
BusyBox
工具用来精简基本用户命令和程序,
它将数以百计的常用
UNIX/Linux
命令集成到一个可执行文件中。
简述根文件系统的创建过
程
。
1
、建立基本的目录结构;
2
、交叉编译
BusyBox
;
3
、创建配置文件;
4
、利用
cramfs
工具创建根文件系统映像文件。
简述设备文件、驱动文件、主设备号和次设备号之间的关系
。
驱动程序加载到内核后有一个主设备号。
在
Linux
内核中,主设备号标识设备对应的驱动程序,
告诉
Linux
内核使用哪个驱动程序为该设备
(
也就是
/dev
下的设备文件
)
服务,
而次设备号则用来标识具体且唯一的某个设备。
简述字符设备驱动程序提供的常用入口点及各自的功能
。
open
入口点:对将要进行的
I/O
操作做好必要的准备工作,如清除缓冲区等。如果设备是
独占的,即同一时刻只能有一个程序访问此设备,则
open
子程序必须设置一些标志以表示
设备处于忙状态。
close
入口点:当设备操作结束时,需要调用
close
子程序关闭设备。独占设备必须标记设
备可再次使用。
read
入口点:当从设备上读取数据时,需要调用
read
子程序。
write
入口点:向设备上写数据时,需要调用
write
子程序。
ioctl
入口点:主要用于对设备进行读写之外的其他操作,比如配置设备、进入或退出某种
操作模式等,这些操作一般无法通过
read
或
write
子函数完成操作。
简述信号与槽的作用
。
信号
:
当某个信号对其客户或所有者发生的内部状态发生改变,
信号被一个对象发射。
只有定义过这个信号的类及其派生类能够发射这个信号,
当一个信号被发射时,与其相关联的槽将会被立刻执行。
槽:
槽是普通的
C++
成员函数,可以被正常调用,
它们唯一的特殊性就是很多信号可以与其相关联。
当与其相关联的信号被发射时,这个槽就会被调用。
槽可以有参数,但槽的参数不能有缺省值
嵌入式
GUI
的特点
。
1
、轻型,占用资源少。嵌入式
GUI
要求是轻量型的,这主要是受限于嵌入式硬件资源。
2
、可配置。由于嵌入式设备的可定制性,要求相应的
GUI
系统也是可以定制的,所以嵌入
式
GUI
一般都具有可裁剪性。
3
、高性能。耗用系统资源较少,能在硬件性能受限的情况下、尤其是
CPU
资源较少的情
况下达到相对较快的系统响应速度,同时减少能源消耗。
4
、高可靠性。系统独立,能适用于不同的硬件,在高性能的同时保证高可靠性。
简述
Qt/X11
和
Qtopia Core
的异同点。
答:相同点:都是嵌入式
GUI
,
也就是在嵌入式系统中为特定的硬件设备
或环境而设计的图形用户界面系统。
区别在于
Qt/X11
依赖于
X Window Server
或
Xlib
,
而
Qtopia Core
是直接访问帧缓存。
它们所依赖的底层显示基础是不同的,
从而导致了体系结构上的差异。
常见的嵌入式数据库
有哪些?
区别
是什么?
mSQL
,
Berkeley DB
,
SQLite
。
数据处理方式,程序驱动式,引擎响应式。
逻辑模式的不同,关系 网状模型或两者的结合体。
优化重点不同,
其他数据
由于面向通用的应用,
优化的重点是:
高吞吐量、高效的索引机制、
详尽的查询优化策略。
而
嵌入式数据库
是面向特定应用的,
并且资源有限,
优化的重点是:实时性、开销大小、
系统性能、可靠性、可预知性和底层控制能力。
关键技术不同,嵌入式数据库的很多关键技术与其他数据库不同,
如备份恢复、复制与同步、事务和安全性等。
简述
SQLite
数据库的特点。
无需安装和管理配置,
存储在单一磁盘文件中的一个完整的数据库;
数据库文件可以再不同字节顺序的机器间自由地共享,
支持数据库大小最大为
2TB
;
包括
TCL
绑定,同时通过
Wrapper
支持其他语言的绑定;
独立,没有额外依赖;
支持多种开发语言,支持事件,
不需要配置、安装。
在
SQLite
中有哪些数据类型?
答:
SQLite
支持
NULL
,
INTERGER
,
REAL
,
TEXT
和
BLOB
数据类型。