嵌入式系统嵌入式.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《嵌入式系统嵌入式.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统嵌入式.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于嵌入式系统嵌入式关于嵌入式系统嵌入式现在学习的是第1页,共62页一、嵌入式一、嵌入式LinuxLinux的定义的定义l嵌入式嵌入式Linux(Embedded Linux)Linux(Embedded Linux)是指对是指对LinuxLinux经过小型化裁剪后,能够固化在经过小型化裁剪后,能够固化在容量只有几容量只有几K K字节或几字节或几M M字节的存储器芯字节的存储器芯片或单片系统中,应用于特定嵌入式场片或单片系统中,应用于特定嵌入式场合的专用合的专用LinuxLinux操作系统操作系统现在学习的是第2页,共62页嵌入式嵌入式LinuxLinux的优势的优势 lLinuxLinux系
2、统是层次结构且内核完全开放系统是层次结构且内核完全开放l强大的网络支持功能强大的网络支持功能lLinuxLinux具备一整套工具链,容易自行建具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环立嵌入式系统的开发环境和交叉运行环境,并且可以跨越嵌入式系统开发中仿境,并且可以跨越嵌入式系统开发中仿真工具的障碍真工具的障碍lLinuxLinux具有广泛的硬件支持特性具有广泛的硬件支持特性现在学习的是第3页,共62页嵌入式嵌入式LinuxLinux面临的挑战面临的挑战l1 1、扩充、扩充LinuxLinux的实时系统的实时系统l2 2、改变、改变LinuxLinux内核的体系结构内核的体系
3、结构l3、完善、完善Linux的集成开发环境的集成开发环境现在学习的是第4页,共62页1 1、扩充、扩充LinuxLinux的实时系统的实时系统l内核不支持事件优先级和抢占实时特内核不支持事件优先级和抢占实时特性性l对对LinuxLinux实时性的扩展可以从两方面实时性的扩展可以从两方面进行进行:向外扩展(让实时系统支持的范围更广,支持的设备更多)向上扩展(扩充Linux内核,从功能上扩充Linux的实时处理和控制系统)现在学习的是第5页,共62页lRT-LinuxRT-Linux的做法的做法Linux本身的任务以及Linux内核本身作为一个优先级最低的任务实时任务作为优先级最高的任务实时任务
4、以Linux的内核模块(Loadable Kernel Module,LKM)的形式存在现在学习的是第6页,共62页2、改变、改变Linux内核的体系结构内核的体系结构lMonolithic内核体系内核体系lMicroKernel体系体系l执行效率执行效率l内核的体积内核的体积l升级、维护和移植升级、维护和移植现在学习的是第7页,共62页微内核技术微内核技术l缺点:操作系统的服务模块在独立的缺点:操作系统的服务模块在独立的地址空间运行,使得进程间通信和上地址空间运行,使得进程间通信和上下文切换的系统开销大大增加,降低下文切换的系统开销大大增加,降低了系统效率。了系统效率。现在学习的是第8页,共
5、62页3、完善、完善Linux的集成开发环境的集成开发环境lLinux在基于图形界面的特定系统定在基于图形界面的特定系统定制平台的研究上,与制平台的研究上,与Windows操作系操作系统相比还存在差距统相比还存在差距现在学习的是第9页,共62页POSIX实时扩展实时扩展lPOSIX(Portable Operating System Interface)是为标准化类)是为标准化类UNIX操作系统所必须具有的特征和接操作系统所必须具有的特征和接口而制定,其思想就是为了增强为类口而制定,其思想就是为了增强为类UNIX操作系统编写的软件的可移植性操作系统编写的软件的可移植性现在学习的是第10页,共6
6、2页二、嵌入式二、嵌入式linux开发开发l最小的嵌入式最小的嵌入式 Linux 系统仅需要三个基本元素:系统仅需要三个基本元素:引导实用程序 Linux 微内核,由内存管理、进程管理和定时服务构成 初始化过程l硬件驱动程序 一个或多个应用进程,以提供所需功能 现在学习的是第11页,共62页面向嵌入式面向嵌入式Linux Linux 系统的系统的图形用户界面图形用户界面lMicroWindows/NanoXMicroWindows/NanoX开放源码无任何硬件加速能力图形引擎中存在许多低效算法代码质量较差lOpenGUIOpenGUI可移植性稍差lQt/EmbeddedQt/Embedded低
7、的程序效率、大的资源消耗lMiniGUIMiniGUI现在学习的是第12页,共62页嵌入式嵌入式Linux开发开发l了解硬件了解硬件 l针对所用针对所用CPU的编译器的编译器/汇编器汇编器/连接器连接器,相应的相应的库工具库工具,目标文件分析目标文件分析/管理工具管理工具,符号查看器符号查看器 l编程器,下载工具和查错器编程器,下载工具和查错器 l安排内存地址安排内存地址 l编写启动代码和机器相关代码:硬件初始化,装编写启动代码和机器相关代码:硬件初始化,装载内核及安装根文件系统以及开始内核执行载内核及安装根文件系统以及开始内核执行 l驱动程序驱动程序 现在学习的是第13页,共62页嵌入式Li
8、nux的一般开发步骤:精简内核 系统启动 驱动程序开发 界面开发:将X-Window换成MicroWindows 现在学习的是第14页,共62页精简内核精简内核 构造内核的常用命令包括:make config、dep、clean、mrproper、zImage、bzImage、modules、modules_install。使用 make config 去掉多余功能。./Makefile./arch/i386/kernel/Makefile 现在学习的是第15页,共62页系统启动 l系统启动的相关文件如下:系统启动的相关文件如下:./arch/$ARCH/boot/bootsect.s./ar
9、ch/$ARCH/boot/setup.s./init/main.c bootsect.S 及及 setup.S 现在学习的是第16页,共62页驱动程序驱动程序 在Linux系统里,设备驱动程序提供一组入口点,它们由一个结构在设备驱动程序初始化的时候向系统进行登记,以便系统在适当的时候调用。Linux系统里,通过调用register_chrdev 向系统注册字符型设备驱动程序。现在学习的是第17页,共62页添加驱动程序 1.直接修改系统核心的源代码,把设备驱动程序加进核心里 2.把设备驱动程序作为可加载的模块,由系统管理员动态地加载它,使之成为核心的一部分。现在学习的是第18页,共62页驱动程
10、序模块 Linux中,模块可以用C语言编写,用gcc编译成目标文件(不进行链接,作为*.o文件存在)。为此需要在gcc命令行里加上-c的参数。在成功地向系统注册了设备驱动程序后(调用register_chrdev),就可以用mknod命令来把设备映射为一个特别文件。其它程序需要使用这个设备的时候,对此特别文件进行操作。现在学习的是第19页,共62页三、三、linux启动流程启动流程l1 加电或复位加电或复位l2 BIOS的启动的启动l3 Boot Loaderl4 操作系统初始化操作系统初始化现在学习的是第20页,共62页1 加电或复位加电或复位l冷启动过程开始,中央处理器进入复位冷启动过程开
11、始,中央处理器进入复位状态,将内存中的所有数据清零,对内状态,将内存中的所有数据清零,对内存进行校验,如果没错,存进行校验,如果没错,CS寄存器将置寄存器将置入入FFFF,IP寄存器置入寄存器置入0000,这个,这个CS:IP组合指向的是组合指向的是BIOS的入口。系统的入口。系统就是这样进入就是这样进入BIOS启动过程的。启动过程的。现在学习的是第21页,共62页2 BIOS启动启动l上电自检上电自检POST(Power On Self Test)l对系统内的硬件设备进行监测和连接对系统内的硬件设备进行监测和连接l最后,最后,BIOS将从软盘或硬盘上读入将从软盘或硬盘上读入Boot Load
12、er.如果从硬盘启动,如果从硬盘启动,BIOS将读入该盘的零柱面零磁道将读入该盘的零柱面零磁道1扇扇区(区(MBR),这个扇区上就放着这个扇区上就放着Boot Loader.现在学习的是第22页,共62页2 BIOS启动启动l除了启动程序,除了启动程序,BIOS还提供了一组中断以还提供了一组中断以便于对硬件设备的访问。我们知道,当键便于对硬件设备的访问。我们知道,当键盘上的某一键被按下,盘上的某一键被按下,CPU就会产生一个就会产生一个中断并把这个键的信息读入。中断并把这个键的信息读入。l在操作系统没有被装入以前(在操作系统没有被装入以前(Bootsect.S还没有被读入),中断的响应程序由还
13、没有被读入),中断的响应程序由BIOS提供。提供。现在学习的是第23页,共62页3 Boot LoaderlBoot Loader是一段汇编代码,存放是一段汇编代码,存放在在MBR中,它的主要作用就是将系统中,它的主要作用就是将系统启动代码读入内存。启动代码读入内存。现在学习的是第24页,共62页3 Boot Loaderl因为在启动过程中,因为在启动过程中,BIOS会把会把Boot Loader读入内存,并把控制权交给它。读入内存,并把控制权交给它。MBR(硬盘启动)内的代码就是(硬盘启动)内的代码就是Boot Loader或者它的一部分,为了或者它的一部分,为了说明说明Boot loade
14、r的实现,先解释磁的实现,先解释磁盘结构。盘结构。现在学习的是第25页,共62页3 Boot Loaderl一个硬盘在一个硬盘在DOS文件系统下可被分为四个基本分区,可以文件系统下可被分为四个基本分区,可以把一个基本分区定义为一个扩展分区,然后再把这个基本把一个基本分区定义为一个扩展分区,然后再把这个基本分区分为一个或多个逻辑分区。分区分为一个或多个逻辑分区。l整个硬盘的分区表存放在硬盘的第一个扇区(整个硬盘的分区表存放在硬盘的第一个扇区(MBR),每),每个扩展分区也对应一个分区表,它存放在该扩展分区对应的个扩展分区也对应一个分区表,它存放在该扩展分区对应的第一个扇区里。第一个扇区里。l除主
15、引导扇区外,每个基本分区和扩展分区也有自己的引导除主引导扇区外,每个基本分区和扩展分区也有自己的引导扇区,结构与扇区,结构与MBR相同,但逻辑分区的引导扇区不能用于启相同,但逻辑分区的引导扇区不能用于启动。动。现在学习的是第26页,共62页3 Boot Loaderl如果是硬盘启动,如果是硬盘启动,Boot Loader将查将查找主分区表中标记为活动分区的表项,找主分区表中标记为活动分区的表项,把该表项对应的分区的引导扇区读入,把该表项对应的分区的引导扇区读入,然后将控制权交给该扇区内的引导程然后将控制权交给该扇区内的引导程序。序。现在学习的是第27页,共62页3 Boot Loaderl如果
16、计算机上装有不只一个操作系统,如果计算机上装有不只一个操作系统,仅仅仅仅MS-DOS的的Boot Loader无法完无法完成这种工作,需要一个可以多重起动成这种工作,需要一个可以多重起动的工具,下面介绍的工具,下面介绍Linux下最常用的下最常用的LILO.现在学习的是第28页,共62页3 Boot LoaderlLILO实际上是一个在实际上是一个在Linux环境下编写的环境下编写的Boot Loader程序,主程序,主要功能是引导要功能是引导Linux操作系统的启动。操作系统的启动。lLILO的功能实际上是有几个程序共同实现的,它们是:的功能实际上是有几个程序共同实现的,它们是:(1)Map
17、 Installer 这是这是LILO用于管理启动文件的程序。它将用于管理启动文件的程序。它将boot loader写入引导分区,创建纪录文件以映射内核的启动。写入引导分区,创建纪录文件以映射内核的启动。(2)The boot loader 它负责把它负责把Linux内核或其他操作系统内核或其他操作系统 的引导分区读入内存。还提供命令行接口,让用户选择从的引导分区读入内存。还提供命令行接口,让用户选择从哪个操作系统启动和加入启动参数。哪个操作系统启动和加入启动参数。(3)其他文件:主要包括用于存放)其他文件:主要包括用于存放Map Installer记录的记录的map文件和存放文件和存放LIL
18、O配置信息的配置文件。配置信息的配置文件。现在学习的是第29页,共62页4 进入操作系统进入操作系统lBoot Loader 做了这么多工作,一言做了这么多工作,一言以蔽之,只是把操作系统的代码调入以蔽之,只是把操作系统的代码调入内存,所以当它执行完后,自然该把内存,所以当它执行完后,自然该把控制权交给操作系统,由操作系统的控制权交给操作系统,由操作系统的启动程序来完成剩下的工作。启动程序来完成剩下的工作。现在学习的是第30页,共62页4 进入操作系统进入操作系统l把控制权交给把控制权交给Setup.S这段程序这段程序l进入保护模式,同时把控制权交给进入保护模式,同时把控制权交给Head.Sl
19、Head.S调用调用/init/main.C中的中的start_kernel函数函数,启动程序从启动程序从start_kernel()函数继续执行函数继续执行现在学习的是第31页,共62页4 进入操作系统进入操作系统(1)Setup.Sl首先,首先,Setup.S对已经调入内存的操作系统代码进行检对已经调入内存的操作系统代码进行检查,如果没错,它会通过查,如果没错,它会通过BIOS中断获取内存容量,硬盘中断获取内存容量,硬盘等信息(实模式)等信息(实模式)l准备让准备让CPU进入保护模式进入保护模式 a.先屏蔽中断信号先屏蔽中断信号 b.调用指令调用指令lidt和和lgdt c.对对8259中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内