嵌入式Linux系统原理与应用.pdf





《嵌入式Linux系统原理与应用.pdf》由会员分享,可在线阅读,更多相关《嵌入式Linux系统原理与应用.pdf(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1嵌入式Linux系统原理与应用2主要内容?嵌入式Linux系统基本概念?嵌入式Linux系统裁减与移植?嵌入式LINUX软件开发3主要内容?嵌入式Linux系统基本概念?Linux嵌入式Linux系统裁减与移植?嵌入式Linux应用415.1.1 嵌入式系统的定义MPUMPU微处理器微处理器电源模块电源模块时钟时钟复位复位FlashFlashRAMRAMROMROMUSBUSBLCDLCDKeyboardKeyboard外围电路外围电路OtherOther外设外设嵌入式系统硬件组成嵌入式系统硬件组成5嵌入式系统设备常见接口?I/O?A/D、D/A?键盘键盘?LCD?存储器接口存储器接口?网络
2、设备接口网络设备接口6CISC和RISC指令集CISC:复杂指令集(Complex Instruction Set Computer)CISC:复杂指令集(Complex Instruction Set Computer)?具有大量的指令和寻址方式具有大量的指令和寻址方式?8/2原则:80%的程序只使用20%的指令8/2原则:80%的程序只使用20%的指令?大多数程序只使用少量的指令就能够运行。大多数程序只使用少量的指令就能够运行。?如Intel X86系列或者兼容的低功耗芯片如Intel X86系列或者兼容的低功耗芯片RISC:精简指令集(Reduced Instruction Set Co
3、mputer)RISC:精简指令集(Reduced Instruction Set Computer)?在通道中只包含最有用的指令在通道中只包含最有用的指令?确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令?使CPU硬件结构设计变得更为简单使CPU硬件结构设计变得更为简单?如PowerPC,MIPS,ARM/XScale如PowerPC,MIPS,ARM/XScale7冯诺依曼体系结构模型指令寄存器指令寄存器控制器控制器数据通道数据通道输入输出输入输出中央处理器中央处理器存储器程序指令0指令1指令2指令3指令4数据存储器程序指令0指令1指令2指令3指令4数据数据0数据1数据2数据0
4、数据1数据28哈佛体系结构指令寄存器指令寄存器控制器控制器数据通道数据通道输入输出输入输出中央处理器中央处理器程序存储器指令程序存储器指令0指令指令1指令指令2数据存储器数据存储器数据数据0数据数据1数据数据2地址地址指令指令地址地址数据数据915.1.2 嵌入式操作系统的特点?“嵌入计算机系统的专用操作系统”。?嵌入性:物理环境(小型)、电气环境(可靠)、成本(价廉)等要求。?专用性:满足对象要求的最小软、硬件配置等。?性能要求:多任务调度、实时性能?功能要求:接口与通信能力10常见嵌入式操作系统?VxWorksVxWorks?市场占有率最高的系统。它支持多种处理器,高性能。?PSOSyst
5、emPSOSystem?模块化好,在中低端系统中应用广。pSOS已属于WindRiver。?QNXQNX?小巧灵活,在航空航天和工业控制中广泛应用?Windows CEWindows CE?多线程、完整优先权、多任务的操作系统。图形界面好,开发工具友好?Linux-derived RTOS Linux-derived RTOS?Montavist Linx,RTlinux;?Other OSOther OS?VTRX,Palm OS,ucosetc1115.1.3 嵌入式Linux发展与应用专用嵌入式实时操作系统 vs 嵌入式Linux 操作系统专用嵌入式实时操作系统嵌入式Linux操作系统系
6、统购买费非常昂贵商业版本需要一定服务费使用费每件产品需都需缴纳免费技术支持开发商一家支持商业版厂商和Linux社团网络协议栈需要额外购买免费且性能优异软件移植难,因为系统封闭易,因为代码开放产品开发周期长,因为参考代码有限短,应用和参考丰富实时性能好可用RTLinux等模块弥补稳定性好较好,高性能系统待验证12如何选择合适的linux版本?标准的Linux 版本。?小型化的嵌入式版本。?具有实时扩展功能的Linux 版本。?Linux 特殊应用版本。例如有许多针对不同的如“瘦服务器”或“防火墙”应用的小型化、实时特性增强的版本。13网络可选择资源标准版本?Debian:http:/ Hat:h
7、ttp:/ Linux:http:/ Router Project:http:/www.linuxrouter.org/?LOAF:http:/loaf.ecks.org/?ucLinux:http:/www.uclinux.org/15网络可选择资源实时扩展版?RTLinux:http:/?RTAI:http:/www.rtai.org/?EL/IX:http:/ 的裁减达到小型化的目的;?对不同嵌入式微处理器的linux 内核代码移植,驱动程序的研究;?专业应用开发:移植应用程序,开发面向特定应用的控制软件。17嵌入式嵌入式Linux操作系统实时性操作系统实时性?常用衡量实时性标准?确定性
8、(Determinism):系统的行为表现应该是确定的,每个系统调用执行的时间是可预测的。?中断延迟时间(Interrupt Latency Time):从接收到中断信号到操作系统作出响应,并进入中断服务程序的时间;?上下文切换时间(Context-Switching Time),就是操作系统将控制权从执行中取回,然后交给另一个任务所需的时间。18嵌入式嵌入式Linux操作系统实时性操作系统实时性?影响中断处理时间的因素?处理器硬件电路的延迟时间,通常这个时间可以忽略。?操作系统处理中断并将控制权转移给中断处理程序所需要的时间。?操作系统的中断禁止时间,这是操作系统为了保护重要的系统程序代码暂
9、停接受中断需要的时间。19嵌入式嵌入式Linux操作系统实时性操作系统实时性某任务中断1的服务程序中断2的服务程序中断禁止区中断2的中断延时中断1产生中断2产生中断1的中断延时t1t2t320Linux内核与实时性内核与实时性对比项目Linux 2.4(s)Linux 2.6(s)内核在无负载时中断延时最大值8.531.0内核在重负载时中断延时最大值113.549.5内核在无负载时中断任务响应延时最大值104412内核在强负载时中断任务响应延时最大值444657821嵌入式嵌入式Linux实时化技术实时化技术 非实时化通用内核实时化内核硬件平台非实时任务实时任务RTlinux双内核实时化结构双
10、内核实时化结构22嵌入式嵌入式Linux实时化技术实时化技术非实时进程1非实时进程2原Linux内核实时任务实时内核硬件中断RTLinux任务处理流程任务处理流程23主要内容?嵌入式Linux系统基本概念?Linux嵌入式Linux系统裁减与移植?嵌入式Linux软件开发24从何处开始??需要考虑的问题?是否支持自己的硬件平台?有多少可选软件、文件定制能力如何?是否有完整文档、新版本升级是否方便等等一系列问题。?可以选择的方法?基于面向特定应用的嵌入式Linux版本?基于通用嵌入式Linux版本?基于某通用Linux系统和Linux源代码库25Linux系统的软件分层使用C库的应用程序使用C库
11、的应用程序C库库直接访问内核的应用程序直接访问内核的应用程序内核内核内核内核硬件硬件26内核,C库,Shell和实用程序?典型的Linux系统包括3个主要的软件层:Linux内核、C库和应用程序;?内核主要的功能包括内存管理、进程调度、设备驱动、文件系统、网络协议栈和模块管理等;?内核之上是C库,这一层负责把符合POSIX标准的API转换成内核可以识别的形式;?离硬件最远的是应用程序层,细分包含两部分:?系统程序,一般指运行系统所不可缺少的程序;?用户程序,给用户提供各种功能;27嵌入式Linux系统构建流程1.裁减编译内核2.建立root文件系统3.制作系统映像4.安装引导28第1步:裁减和
12、编译内核?获得内核源代码?根据硬件平台获得对应的Linux系统源代码?从一个通用系统,如redhat系统获得源代码?裁减编译内核的步骤1.配置内核2.更新编译文件3.编译内核29编译内核原则?Linux内核拥有灵活方便的配置功能,菜单分为,芯片组支持,外设支持,文件支持,网络等,每类只将需要的内容编译进内核。?根据目标系统的硬件配置选择模块?根据应用目标选择其他功能模块?应当保证内核只支持一种或是两种必要的文件系统,如ext2和minix;?为支持内存虚拟磁盘启动,需要编译内核支持ram disk和initrd30第1步:裁减编译内核1.以root超级用户登录,进入目录/usr/src/lin
13、ux。?如果目标系统和主机系统不是同一硬件平台需要先建立交叉编译环境并获得目标系统的内核源代码2.#make menuconfig?对内核模块进行配置(也可以在X Window中运行make xconfig)。3.#make dep?更新配置文件4.#make bzImage?(如果内核不大则执行#make zImage),执行该命令后,将在/usr/src/linux/arch/i386/boot目录下生成内核文件bzImage(或zImage)。?若配置中加入了模块的支持(选项为M),还需要执行#make modules和#make modules_install。5.生成内核?/usr/
14、src/linux/arch/i386/boot/bzImage文件为内核文件?改名为MiniKernel备用31第2步:建立root文件系统?什么是什么是root文件系统?文件系统??一个完整的Linux系统除了内核外,还必须有一个由C库和系统应用程序构成的root文件系统。?一个root文件系统包括支持完整Linux系统运行的全部东西。?建立建立root文件系统的步骤文件系统的步骤1.在主机中建立目标系统的root文件系统目录结构2.从代码库中挑选并裁减出适用的各种文件3.将root文件系统目录中的所有内容打包制作成映像32第2步:建立root文件系统?root文件系统的内容文件系统的内容
15、?基本文件系统结构,至少含有目录/dev、/proc、/bin、/etc、/lib、/usr、/tmp;?最基本的系统应用程序,如sh、ls、cp、mv等;?最低限度的配置文件,如rc、inittab、fstab等;?基本设备,如/dev/mem、/dev/tty*、/dev/console;?基本程序运行所需的C函数库。33第2步:建立root文件系统1.建立目录系统建立目录系统?以root用户登录开发主机,在合适的目录下(如根目录下),用mkdir rootfs命令建立一个工作目录rootfs。?在rootfs/目录下的内容就是今后目标系统根目录(/)下的内容。?在当前目录下执行cd ro
16、otfs进入到rootfs目录中,然后用mkdir命令分别在rootfs目录下建立以下目录:/etc 放置系统配置文件;/sbin放置重要的系统程序;/bin 放置系统基本应用程序;/dev 设备文件的目录;/proc proc文件系统所需目录;/lib 准备存放共享函数库;/mnt准备挂载其他设备的目录节点/usr准备放置用户应用程序。34第2步:建立root文件系统1.建立目录系统建立目录系统?/proc、/mnt和/usr在此情况下都是空的,只需要用mkdir创建它们即可。?/dev:设备文件需要用mknod产生。如果简单起见用cp-dpR 参数开关来复制原系统的设备文件节点也可以,例如
17、cp-dpR/dev/mem/mnt/dev。至少需要console、kmem、mem、null、ram、tty*等文件。?/etc:一般可以包含rc.d/*(系统启动脚本)、fstab(列出要登录的文件系统)、inittab(包含启动过程参数)。35第2步:建立root文件系统1.建立目录系统建立目录系统?/bin和/sbin:这两个目录中包含有一些系统运行不可缺少的程序和大量实用程序,如ls、mv、cat、cp等。系统实用程序可以根据需要选择拷贝,而系统运行不可缺少的一些程序必须拷贝过来,如init、getty、login、mount、bash等。?/lib:必须有函数库装载器,这个装载器
18、或是ld.so(对a.out 库)或是 ld-linux.so(对 ELF 库)。如果有一个模块化的内核,你还得必须考虑需要加载的模块。它们都位于/lib/modules。36第2步:建立root文件系统2.裁减裁减root文件系统文件系统?动态库的裁减?精简系统应用程序?精简嵌入式系统专用程序37第2步:建立root文件系统2.裁减裁减root文件系统文件系统?动态库的裁减?Linux的C库glibc就是系统的动态连接库,相当于Windows系统的系统dll动态连接库。?用软件工具扫描系统所需要的库,然后进行删减。?采用精简版本的C库,目前可以选择的开源动态库有libc5、uclibc、di
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 Linux 系统 原理 应用

限制150内