嵌入式系统知识点总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.什么是嵌入式系统?
嵌入式系统是以应用为中心,以计算机技术为基础,采用可裁剪软硬件,适用于对功能、功耗、体积、大小可靠性等有严格要求的专用计算机系统。

2.嵌入式计算机系统同通用型计算机系统的区别?
1)嵌入式系统通常是面向特定应用,而通用pc机则需要支持大量的、需求多样的应用程序
2)嵌入式系统的软硬件必修高效的设计,量体裁衣、去除冗余,而通用pc对软硬件要求没有嵌入式系统那么高。

3)嵌入式系统为了提高速度和可靠性,一般将软件固化在芯片或者单片机中,而通用pc一般将软件放入存储器中。

4)嵌入式系统不具备自主开发能力,通用pc拥有强大的开发能力。

5)嵌入式系统是面向特定应用的,它的升级换代也与具体产品同步的进行。

3.嵌入式系统组成?
嵌入式处理器、嵌入式外围设备、嵌入式应用软件、嵌入式操作系统。

4.ARM是什么?
Arm(advanced RISC Machine)的三层含义:
1)一个公司名称。

2)一种技术名称
3)是一种微处理器的通称。

5.嵌入式处理器有哪些?
MIPS、Power PC、SH处理器、ARM
6.ARM处理器的特点有哪些?
1)体积小、低功耗、成本低、性能高
2)大量使用寄存器
3)支持Thumb (16位)和ARM(32位)双指令集
4)指令长度是固定的
5)寻址方式灵活简单
7.嵌入式处理器选择时考虑的主要因素?
1)处理性能(如时钟频率、寄存器大小等)
2)技术指标(外围设备、支持芯片等)
3)功耗(特别是手持设备等消费类电子产品)
4)软件支持工具
5)是否内置调试工具
6)供应商是否提供评估板
8.ARM-XScale-PXA270三者之间的区别于联系?
ARM是一种微处理器的通称;XScale处理器是基于ARMv5TE体系结构的解决方案,是一款高性能、高性价比、低功耗的处理器;PXA270则是采用Xscale内核(微结构体系框架),集成了许多常用的外围接口,是一款高性能、低功耗、功能强大的嵌入式应用处理器
产品。

9.什么是Atom?
它是将新功能嫁接到旧架构上设计而成,它是Pentium 之后的第一款定序(in-order) x86 架构。

10.什么是芯片组(Chipset)技术?
用少量几片VLSI芯片的组合称为“控制芯片组”,简称“芯片组”。

芯片组由南桥和北桥构成。

北桥的主要功能是与CPU联系、控制内存、高速显示各种加速器等,南桥的主要功能是管理i/o设备,包括usb、IDE、以及网卡等。

11.常见嵌入式OS?
嵌入式Linux,Windows CE,Symbian,VxWorks,QNX,Palm,等。

12.嵌入式Linux操作系统的特点?
1)广泛的硬件支持
2)内核高效稳定
3)开放源码,软件丰富
4)优秀的开发工具
以gcc做编译器,以gdb, kgdb, xgdb调试
5)完善的网络通信和文件管理机制
13.vi使用的三种模式?
1)命令模式
2)插入模式
3)末行模式
14.gcc与arm-linux-gcc的差别?
Gcc是运行在宿主机上的编译工具,而后者是运行在目标机上的编译工具。

15.什么是make、makefile?
GNU make是一种常用的编译工具,用于自动完成应用程序的维护和编译工作。

Makefile则是按照某种脚本语法编写的文本文件,而GNU make 能够对Makefile 中指令进行解释并执行编译操作。

Makefile 文件定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。

16.Makefile的构成?
主要由目标、依赖关系和指令构成。

17.“GNUmakefile”、“makefile”和“Makefile”三者的区别?
GNU make 找寻默认的Makefile 的规则是在当前目录下依次找三个文件——“GNUmakefile”、“makefile”和“Makefile”。

其按顺序找这三个文件,一旦找到,就开始读取这个文件并执行。

18.智能手机系统软件的开发流程?
1)选择适当的处理器安装在开发板上。

2)将嵌入式内核和文件系统等移植到开发板上。

3)将开发板装配成手机
4)远程调试手机的各个软件。

19.嵌入式Linux开发的主要步骤?——重点
1)选择开发平台
2)建立嵌入式Linux开发环境
3)系统软件开发
建立引导装载程序Bootloader
ARM-Linux内核
嵌入式文件系统
嵌入式设备驱动
嵌入式GUI
4)搭建远程调试环境
20.XScale微架构处理器的主要特征?
1)采用了7级超级流水线、动态跳转预测和转移目标缓冲器BTB技术(Branch Target Buffer)2)采用了32KB的指令cache和数据cache
3)2KB微小型数据cache和微小型指令cache
4)指令存储器管理单元I-MMU和数据存储器管理单元D-MMU
5)动态电源管理技术
21.Xscale超级流水线的组成?
拥有7级超级流水线,主要由主流水线、MAC流水线和内存访问流水线组成。

22.XScale电源管理的五种模式?
运行模式、快速模式、空闲模式、33MHz空闲模式、睡眠模式。

23.什么是GPIO?
它是PXA255中用来生成和捕捉外设的输出或者输入信号管脚。

24.什么是中断控制器?
它用于管理处理器内所有可用的中断源,它决定IRQ和FIQ中断的发生和屏蔽。

25.中断的类型与优先级?
分为IRQ(普通中断)和FIQ(快中断),其中快中断优先级高于普通中断的优先级。

26.DMA控制器通道的个数?
16个
27.两种主要的Flash技术
NOR、NAND
28.什么是交叉编译?
交叉编译就是在一个架构下编译另一个架构的目标文件。

29.JTag口功能?
烧写bootloader
30.使用minicom实现串口通信的配置方法?
1)在终端中输入minicom -s进入到配置页面
2)选择serial port setup进行串口设置,在serial device上输入/dev/ttyS0;设置波特率为115200 ,parity bit 为no,data bit设为8,stop bits设置为1.按回车结束设置。

31.tftp协议的作用?
主要用于提供下载镜像。

包括内核与文件系统的下载。

32.什么是Boot Loader?其安装地址在哪里?
它是操作系统内核运行前的一段小程序,进行初始化硬件设置、创建内核需要的信息等工作,最后调用内核。

其安装在flash的零地址处。

33.Bootloader的操作模式?
包括启动加载模式和下载模式。

前者是开发板默认的启动方式,后者必修在启动开发板后2秒内敲任意键进入到下载模式。

34.Boot Loader与主机之间的通信设备及协议
通信设备主要包括串口和以太网口,前者的协议是zmodem,后者使用的协议是tftp协议。

35.常见的Bootloader有哪些?BootLoader的主要功能是什么?
U—boot 、grub 、arm-boot、vivi等。

主要功能包括初始化硬件、启动Linux、下载映像、Flash存储器管理
36.Bootloader两个阶段的任务主要有哪些?
阶段1介绍
1)硬件设备初始化。

2)为加载阶段2准备RAM空间
3)拷贝阶段2到RAM中
4)设置堆栈指针sp
5)跳转到阶段2的C入口点
阶段2介绍
1)初始化本阶段要使用到的硬件设备
2)检测系统的内存映射
3)加载内核映像和根文件系统映像
4)设置内核的启动参数
5)调用内核
37.嵌入式Linux移植向flash写了多少内容,各写在什么地址。

答:总共向FLASH写了三次。

第一次是bootloader,通过jflashmm烧写,地址是0x0000;
第二次是内核,地址是0xc0000;
第三次是文件系统,地址是0x1c0000。

38.区别make config、make menuconfig、make xconfig?
#make config(基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
三者都是内核配置命令,只是其运行环境不同。

基于字符界面:make config;基于Ncurses 图形界面:make menuconfig;基于xWindows图形界面:make xconfig
39.区别make, make zImage,make bzImage?
三者都实现内核的完全编译;其中命令make zImage和命令make bzImage生成的内核都是使用gzip压缩的,只要使用一个就够了,它们的区别在于使用make bzImage可以生成大一点的内核,比如在编译2.4.0版本的内核时如果使用make zImage命令,那么就会出现system too big的错误提示。

make:构核。

通过各目录的Makefile 文件进行,会在各个目录下产生一大堆目标文
件,如核心代码没有错误,将产生文件vmlinux,这就是所构的核心。

并产生映像文件system.map 通过各目录的makefile 文件进行。

make zImage:在make 的基础上产生压缩的核心映像文件./arch/$(ARCH)/boot/zImage
以及./arch/$(ARCH)/boot/compressed 目录下产生一些临时文件。

make bzImage :在make 的基础上产生压缩比例更大的的核心映像文
件./arch/$(ARCH)/boot/bzImage 以及./arch/$(ARCH)/boot/compressed 目录下产生一些临时文件。

在核心太大时进行。

40.MMU的作用?
一是地址映射,而是对地址的保护和限制。

41.MMU地址映射的方式?
包括单层的段映射和页面映射。

42.冯·诺依曼结构 Vs “哈佛结构”?
前者的指令存储器与数据存储器一体化设计,指令地址与数据地址统一编码。

高速运算时,储存传输通道有瓶颈;后者指令存储器与数据存储器分开设计,存储地址独立编址、独立访问,四总线制提高吞吐率,取指与执行能并发。

43.中断过程包括哪些?中断源有哪些?
过程包括中断响应、中断处理与中断返回。

中断源有irq和fiq。

44.系统调用的实现方式?
通过swi指令调用。

45.启动和初始化过程?
1)使用bootloader将内核映像载入
2)内核数据结构初始化
3)外设处理化
46.start_kernel() 作用?
调用了一系列初始化函数,以完成kernel本身的设置。

47.init() 作用?init进程?
init()函数作为内核线程,首先锁定内核,然后调用do_basic_setup()完成外设及其驱动程序的加载和初始化。

Init进程是系统所有进程的起点,内核在完成核内引导后,即在本线程空间中加载init 程序。

48.ARM-Linux进程的状态、调度函数和调度时机?
五种状态:TASK_RUNNING、TASK_INTERRUPIBLE、TASK_UNINTERRUPTIBLE、TASK_ZOMBIE、TASK_STOPPED。

调度函数是schedule()。

调度的时机有两种:在内核应用中直接调用schedule ()和被动调用schedule()
49.模块机制的优缺点?
优点:减小了内核大小实现按需加载
缺点:增加了模块的代价,影响系统的内存和性能。

50.
51.文件系统组织结构
树形结构。

52.文件类型
普通文件
目录文件
链接文件
设备文件
53.Linux文件系统与Windows文件系统区别?
在Windows下,目录属于分区,在Linux下,分区属于目录结构。

54.ext2文件系统是否可以做嵌入式文件系统?
不可以 ext2是为像IDE那样的块设备设计的,嵌入式设备的自身特点决定很少使用大容量的IDE硬盘等常见的PC存储器。

55.常用嵌入式文件系统?
NAND Flash-》YAFFS 串行,顺序读取,适合大容量,分块分页,存取速度慢,无法按字节存取
NOR Flash-》JFFS2 并行,随机读取,写入和擦除速度较慢,适合存取程序
RAM -》 RAMFS
Network –》NFS
YAFFS主要针对NAND FLASH设计,和JFFS相比,它减少了一些功能,所以速度更快,而且对内存的占用比较小。

56.NFS组成结构?
一台NFS服务器,至少一台客户机,客户机远程的访问服务器上的数据。

57.嵌入式文件系统构造
1.下载并编译busybox
2. 使用命令makemenuconfig配置文件系统
3. 使用make命令编译文件系统
4. 使用make install安装busybox后产生目录_install,其中包含配置好的文件系统。

5.在etc目录下创建rc rcS motd文件
6.运行mkjffs2命令制作JFFS2文件镜像(./mkjffs2 )
7.将制作好的文件镜像拷贝到/tftp目录下
8.利用tftp协议下载文件镜像并烧写在flash中
58.linux设备驱动程序功能?
设备初始化和释放
内核和设备文件传输数据
应用程序和设备文件传输数据
检测和处理设备出现的错误
59.驱动程序的结构
驱动程序的注册与注销,设备的打开和释放,设备的读写操作,设备的控制操作,设备的中断和轮询处理。

60.下载方法
通过串口或网口下载
61.如何挂载目标模块
通过命令insmod 命令挂载
62.Linux设备的分类
字符设备
块设备
网络设备
63.Linux设备文件
Linux抽象了对硬件的处理,所有的硬件设备都可以作为普通文件一样来看待
可以使用和操作文件相同的、标准的系统调用接口来完成打开、关闭、读写和I/O控制操作对用户来说,设备文件与普通文件并无区别
64.主设备号
标识该设备的种类,也标识了该设备所使用的驱动程序
次设备号
标识使用同一设备驱动程序的不同硬件设备
65.mknod
Mknod命令创建制定类型的设备文件,同时为其分配相应的主设备号和此设备号。

66.嵌入式系统的调试
调试程序和被调试程序运行在不同的机器上(交叉调试)
67.远程调试
调试器运行于通用桌面操作系统的应用程序,被调试的程序则运行于基于特定硬件平台的嵌入式操作系统(目标操作系统)
68.插桩方案(stub)
在目标操作系统和调试器内分别加入某些功能模块使二者互通信息来进行调试
69.GDB
GNU C自带的调试工具
70.GDB用法
本地调试和远程调试
在编译时,必须要把调试信息加到可执行文件中(先编译后调试)
使用编译器( cc/gcc/g++)的 -g 参数(-g参数打开调试信息)。

相关文档
最新文档