嵌入式linux系统原理与应用

上传人:xzh****18 文档编号:43506613 上传时间:2018-06-06 格式:PDF 页数:68 大小:372.38KB
返回 下载 相关 举报
嵌入式linux系统原理与应用_第1页
第1页 / 共68页
嵌入式linux系统原理与应用_第2页
第2页 / 共68页
嵌入式linux系统原理与应用_第3页
第3页 / 共68页
嵌入式linux系统原理与应用_第4页
第4页 / 共68页
嵌入式linux系统原理与应用_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《嵌入式linux系统原理与应用》由会员分享,可在线阅读,更多相关《嵌入式linux系统原理与应用(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

3、Computer)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、4数据数据0 数据1 数据2数据0 数据1 数据28哈佛体系结构指令寄存器指令寄存器控制器控制器数据通道数据通道 输入输出输入输出中央处理器中央处理器程序存储器指令程序存储器指令0 指令指令1 指令指令2数据存储器数据存储器数据数据0 数据数据1 数据数据2地址地址指令指令地址地址数据数据915.1.2 嵌入式操作系统的特点?“嵌入计算机系统的专用操作系统”。?嵌入性:物理环境(小型)、电气环境(可 靠)、成本(价廉)等要求。?专用性 :满足对象要求的最小软、硬件配置 等。?性能要求:多任务调度、实时性能?功能要求:接口与通信能力10常见嵌入式操作系统? VxWorksVxWorks ? 市场

5、占有率最高的系统。它支持多种处理器 ,高性能。 ? PSOSystemPSOSystem ? 模块化好,在中低端系统中应用广。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发展与应

6、用专用嵌入式实时操作系统 vs 嵌入式Linux 操作系统专用嵌入式实时操作系统嵌入式Linux操作系统系统购买费非常昂贵商业版本需要一定服务费使用费每件产品需都需缴纳免费技术支持开发商一家支持商业版厂商和Linux社团网络协议栈需要额外购买免费且性能优异软件移植难,因为系统封闭易,因为代码开放产品开发周期长,因为参考代码有限短,应用和参考丰富实时性能好可用RTLinux等模块弥补稳定性好较好,高性能系统待验证12如何选择合适的linux版本?标准的Linux 版本。?小型化的嵌入式版本。?具有实时扩展功能的Linux 版本。?Linux 特殊应用版本。例如有许多针对不同 的如“瘦服务器”或“

7、防火墙”应用的小型化、 实时特性增强的版本。13网络可选择资源标准版本?Debian:http:/ Hat:http:/ Linux:http:/ http:/www.prosa.it/embedded/etlinux/?Linux 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:/ http:/www.cl.ca

8、m.ac.uk/dmi1000/linux- srt/index.html16嵌入式linux构建与应用的关键技术?对linux 的裁减达到小型化的目的;?对不同嵌入式微处理器的linux 内核代码移 植,驱动程序的研究;?专业应用开发: 移植应用程序,开发面向特 定应用的控制软件。17嵌入式嵌入式Linux操作系统实时性操作系统实时性?常用衡量实时性标准?确定性(Determinism):系统的行为表现应该是确 定的,每个系统调用执行的时间是可预测的。?中断延迟时间(Interrupt Latency Time):从接收 到中断信号到操作系统作出响应,并进入中断服务程 序的时间;?上下文切换

9、时间(Context-Switching Time),就是 操作系统将控制权从执行中取回,然后交给另一个任 务所需的时间。18嵌入式嵌入式Linux操作系统实时性操作系统实时性?影响中断处理时间的因素?处理器硬件电路的延迟时间,通常这个时间可 以忽略。?操作系统处理中断并将控制权转移给中断处理 程序所需要的时间。?操作系统的中断禁止时间,这是操作系统为了 保护重要的系统程序代码暂停接受中断需要的 时间。19嵌入式嵌入式Linux操作系统实时性操作系统实时性某任务中断1的服务程序中断2的服务程序中断禁止区中断2的中断延时中断1产生中断2产生中断1的中断延时t1t2t320Linux内核与实时性内

10、核与实时性对比项目Linux 2.4 (s)Linux 2.6(s)内核在无负载时中断延时最大值8.531.0内核在重负载时中断延时最大值113.549.5内核在无负载时中断任务响应延时最大值104412内核在强负载时中断任务响应延时最大值444657821嵌入式嵌入式Linux实时化技术实时化技术非实时化通用内核实时化内核硬件平台非实时任务实时任务RTlinux双内核实时化结构双内核实时化结构22嵌入式嵌入式Linux实时化技术实时化技术非实时进程1非实时进程2原Linux内核实时任务实时内核硬件中断RTLinux任务处理流程任务处理流程23主要内容?嵌入式Linux系统基本概念?Linux

11、嵌入式Linux系统裁减与移植?嵌入式Linux软件开发24从何处开始??需要考虑的问题?是否支持自己的硬件平台?有多少可选软件、文件定制能力如何?是否有完整文档、新版本升级是否方便等等一系列 问题。?可以选择的方法?基于面向特定应用的嵌入式Linux版本?基于通用嵌入式Linux版本?基于某通用Linux系统和Linux源代码库25Linux系统的软件分层使用C库的应用程序使用C库的应用程序C库库直接访问 内核的 应用程序直接访问 内核的 应用程序内核内核内核内核硬件硬件26内核,C库,Shell和实用程序?典型的Linux系统包括3个主要的软件层:Linux内核、C库 和应用程序;?内核主

12、要的功能包括内存管理、进程调度、设备驱动、 文件系统、网络协议栈和模块管理等;?内核之上是C库,这一层负责把符合POSIX标准的API转换 成内核可以识别的形式;?离硬件最远的是应用程序层,细分包含两部分:?系统程序,一般指运行系统所不可缺少的程序;?用户程序,给用户提供各种功能;27嵌入式Linux系统构建流程1.裁减编译内核2.建立root文件系统3.制作系统映像4.安装引导28第1步:裁减和编译内核?获得内核源代码?根据硬件平台获得对应的Linux系统源代码?从一个通用系统,如redhat系统获得源代 码?裁减编译内核的步骤 1. 配置内核 2. 更新编译文件 3. 编译内核29编译内核

13、原则?Linux内核拥有灵活方便的配置功能,菜单分 为,芯片组支持,外设支持,文件支持,网络 等,每类只将需要的内容编译进内核。?根据目标系统的硬件配置选择模块?根据应用目标选择其他功能模块?应当保证内核只支持一种或是两种必要的文件系 统,如ext2和minix;?为支持内存虚拟磁盘启动,需要编译内核支持ram disk和initrd30第1步:裁减编译内核1.以root超级用户登录,进入目录/usr/src/linux。 ?如果目标系统和主机系统不是同一硬件平台需要先建立交叉编译环 境并获得目标系统的内核源代码 2.#make menuconfig ?对内核模块进行配置(也可以在X Wind

14、ow中运行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/src/linux/arch/i386/boot/bzImage文件为内核文件 ?改名为MiniKernel备用31第2步:建立root文件系统?什么是

15、什么是root文件系统?文件系统??一个完整的Linux系统除了内核外,还必须有一个 由C库和系统应用程序构成的root文件系统。?一个root文件系统包括支持完整Linux系统运行的 全部东西。?建立建立root文件系统的步骤文件系统的步骤 1. 在主机中建立目标系统的root文件系统目录结构 2. 从代码库中挑选并裁减出适用的各种文件 3. 将root文件系统目录中的所有内容打包制作成映像32第2步:建立root文件系统?root文件系统的内容文件系统的内容?基本文件系统结构,至少含有目录/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 rootfs进入到rootfs目录中,然后用mkdir 命令分别在rootfs目录下建立以下目录: /etc 放置系统配

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号