最新嵌入式操作系统ppt课件PPT课件.ppt
《最新嵌入式操作系统ppt课件PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新嵌入式操作系统ppt课件PPT课件.ppt(131页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式操作系统嵌入式操作系统ppt课件课件上周一上周一lSkyEye介绍lSkyEye简介lSkyEye的安装和使用luClinux简介xlanchen2007.6.42Embedded Operating Systems1、建立目标板、建立目标板Linux的基本步骤的基本步骤建立目标板Linux系统有4个重要的步骤:(1)决定系统组件lLinux具有大量可选软件,应当为目标系统列出必须的功能清单(2)配置并建立内核l选择合适的Linux内核版本与适当的配置l建立内核(3)建立根文件系统(4)设置引导软件与配置xlanchen2007.6.49Embedded Operating System
2、s2、开发嵌入式、开发嵌入式Linux系统最常用系统最常用的主机类型的主机类型l开发嵌入式Linux系统最常用的主机类型(1)Linux工作站l通常就是一台安装了某个标准的Linux发行套件的PC机,如Debian、Mandrake、Red Hat等。l需约2、3G或更多的磁盘空间进行嵌入式Linux开发l建议具有128或以上的RAM及交换空间(2)Unix工作站l由于Linux与Unix非常相似,对Linux适用的通常对Unix也适用xlanchen2007.6.410Embedded Operating Systems(3)Windows工作站l许多开发者比较习惯Windows平台,并希望
3、在Windows平台上开发嵌入式Linux系统lCygwin:可在Windows平台上建立跨平台开发工具链lVMWare:可在虚拟环境中执行Linux,并在Linux上进行嵌入式Linux的开发xlanchen2007.6.411Embedded Operating Systems3、主机、主机/目标机的开发体系结构目标机的开发体系结构l在嵌入式Linux系统开发中,存在3种主机/目标机开发体系结构(1)连接式(2)使用可移动存储设备(3)独立开发式xlanchen2007.6.412Embedded Operating Systems(1)连接式)连接式(thelinkedsetup)l目标
4、板和主机通过一个物理线路(如串行线或者以太网连接)永久的连接在一起l好处:目标代码的传送无需物理存储设备参与,只需要上述连接就足够了l在这种方式中,主机包含了跨平台开发环境,而目标板则包含了适当的引导加载程序、可用的内核以及最起码的根文件系统xlanchen2007.6.413Embedded Operating Systemsl另一种做法是,以远程组件来简化目标板的开发工作,例如l通过TFTP下载内核l此外,根文件系统还可以通过NFS安装,而不必在目标板中使用存储介质l还可以使用连接进行调试l通常使用以太网连接进行下载功能,而使用RS232串口连接进行调试TFPT:Trivial File
5、Transfer Protocol小型文件传输协议比FTP简单 NFS:Network File System网络文件系统允许访问远程计算机上的文件*内核*根文件系统下载/NFSxlanchen2007.6.414Embedded Operating Systems(2)使用可移动存储设备)使用可移动存储设备,theremovablestoragesetupl主机和目标板之间没有实际的连接。先由主机将数据写入存储设备,然后将存储设备转接到目标板,并使用该存储设备引导目标板l同样的,在主机上包含了跨平台开发环境。而目标板则只包含了最起码的引导加载程序。其余的组件被存放在可移动存储设备上。xlan
6、chen2007.6.415Embedded Operating Systemsxlanchen2007.6.416Embedded Operating Systemsl一种通常的操作方式使用易插拔的flash芯片:l先在主机上使用flash编程器将数据写入芯片,l然后再将该芯片插入目标板上的插座中xlanchen2007.6.417Embedded Operating Systems(3)独立开发系统)独立开发系统l在这种设置中,目标板是个独立的开发系统,它包含了引导、操作以及开发额外软件所必须的任何软件。l不需要跨平台开发环境,不必在主机和目标板之间传送任何数据l适合以PC为主的高级嵌入式
7、系统的开发xlanchen2007.6.418Embedded Operating Systems4、主机、主机/目标板的调试方式目标板的调试方式l用来连接目标板与主机进行调试的接口基本上有3种类型:(1)串行线、(2)网络接口、(3)特殊的调试硬件lBDMlJTAGxlanchen2007.6.419Embedded Operating Systems(1)使用串行线进行调试)使用串行线进行调试l这是从主机对目标板进行调试的最简单的做法l缺点:l串行连接的速度比较有限l当嵌入式系统中只有一个串行串口,或者串行连接是嵌入式系统对外唯一的接口,那么就不可能在对系统调试的同时,以终端仿真器跟系统交
8、互。xlanchen2007.6.420Embedded Operating Systems(2)使用网络接口进行调试)使用网络接口进行调试l这种方式与串行线连接相比,可以提供较高的带宽l由于可以在相同的物理网络连接上使用多重网络连接,可以兼顾调试与终端仿真交互l缺点:无法使用网络连接对Linux内核进行调试。因为网络协议栈本身在Linux内核里。相对而言,内核的调试通常可以通过串行连接来进行xlanchen2007.6.421Embedded Operating Systems(3)使用特殊的调试硬件)使用特殊的调试硬件l通常会使用BDM或JTAG接口。l这些接口依靠的是CPU芯片中内嵌的B
9、DM或JTAG特殊功能。l只要将一个特殊的调试器连接到CPU上的JTAG或BDM相关管脚,就可以完全控制CPU的行为。l因此,当遇到新的嵌入式目标板、或者对目标板上的Linux内核进行调试时,通常会使用JTAG和BDMBDMBackground Debug Mode背景调试模式JTAGJoint Test Action Group联合测试小组采用IEEE 1149.1,测试存取口和边界扫描标准xlanchen2007.6.422Embedded Operating Systemsl如图所示,包含4个部分:(1)硬件(2)内核(3)文件系统等(4)应用程序/库5、嵌入式、嵌入式Linux系统的一
10、般架构系统的一般架构xlanchen2007.6.423Embedded Operating Systems(1)硬件)硬件l目标板的硬件必须符合一些要求方能执行Linux系统。l至少32位CPUl一般情况下必须配备MMU(对于不配备MMU的考虑使用uClinux)lRAM容量必须满足系统的需要l一些最起码的I/O能力,以便在线调试l具有某种形式的永久性或网络存储设备以便内核加载及(或)存取根文件系统xlanchen2007.6.424Embedded Operating Systems(2)Linux内核内核lLinux内核是Linux操作系统的中心组件。使用内核的目的是希望以一致的方式管理
11、硬件,以及为用户软件提供高层抽象层。内核大致可以分成两个部分:底层接口层和高层抽象层xlanchen2007.6.425Embedded Operating Systemsl底层接口层专属于硬件配置,内核运行其上,并以硬件无关的高层抽象层提供对硬件资源的直接控制。l比如,对于PPC和ARM系统,尽管其寄存器或内存分页的处理方式不同,但却可以使用通用的API来存取内核里高层的组件l通常底层部分会处理CPU特有的操作、架构特有的内存操作以及设备的基本I/Oxlanchen2007.6.426Embedded Operating Systems(3)文件系统和网络协议等)文件系统和网络协议等l在Li
12、nux内核的底层接口层与高层抽象层之间,内核有时会用到与特定设备上的结构化数据交互的组件,例如文件系统和网络协议。l通常,Linux内核至少需要一个具有合适结构的根文件系统。Linux内核会从中加载第一个应用程序、加载模块并为进程提供工作目录。xlanchen2007.6.427Embedded Operating Systems(4)应用程序)应用程序/库库l内核上面是应用程序和工具程序。链接库通常与应用程序动态链接在一起xlanchen2007.6.428Embedded Operating Systems6、系统启动过程、系统启动过程l在系统启动过程里,有3个主要软件组件参与其中:(1)
13、引导加载程序(2)内核(3)Init进程xlanchen2007.6.429Embedded Operating Systems(1)引导加载程序)引导加载程序l引导加载程序是系统启动过程中执行的第一个软件,它与目标板的硬件有高度的依赖关系。lLinux有许多引导加载程序可用。l引导加载程序在完成底层硬件初始化工作后会接着跳到内核的启动程序代码执行。xlanchen2007.6.430Embedded Operating Systems(2)内核)内核l内核一开始的启动程序代码会因架构不同而有很大的差异,而且在为C程序代码设置合适的执行环境之前,它会先为自己进行初始化工作。l完成以上工作后,内
14、核会跳到与架构无关的start_kernel函数执行,此函数会初始化高层内核功能,安装根文件系统,以及启动init进程xlanchen2007.6.431Embedded Operating Systems3、Init进程进程l启动各种应用程序(根据设置)xlanchen2007.6.432Embedded Operating Systems7、引导配置的类型、引导配置的类型lLinux系统的引导配置与所选用的引导加载程序、它的配置以及主机中软硬件的类型有非常密切的关系。(1)固态存储媒体(2)磁盘(3)网络xlanchen2007.6.433Embedded Operating System
15、s(1)固态存储媒体)固态存储媒体l固态存储媒体用于存放l最初的引导加载程序l配置参数l内核l根文件系统l嵌入式Linux系统在开发的不同阶段可能会使用不同的引导配置,但大部分在开发完成后使用固态存储媒体xlanchen2007.6.434Embedded Operating Systems(2)磁盘)磁盘l磁盘引导配置方式广泛应用于工作站及服务器中,此时内核和根文件系统位于磁盘上l最初的内核加载程序不是从磁盘上加载,第二个内核加载程序就是直接从磁盘获得内核本身l可以用于嵌入式系统的开发阶段l要求:目标板上能够使用硬盘或者具有模仿硬盘的装置xlanchen2007.6.435Embedded
16、Operating Systems(3)网络)网络l网络引导配置方式中,存在两种情况:(1)内核位于固态存储设备上或磁盘上,需要通过NFS安装根文件系统(2)只有内核加载程序位于目标板的存储设备上,需要通过TFTP下载内核和根文件系统(或NFS)l往往用于开发初期xlanchen2007.6.436Embedded Operating Systems主要内容主要内容一、嵌入式Linux开发综述二、二、Linux的配置和编译的配置和编译三、根文件系统及其制作xlanchen2007.6.437Embedded Operating Systemsl内核是所有Linux系统软件组成的核心。它的性能对
17、整个系统的性能起决定性作用。如果内核不支持目标板上的某个硬件,那么在目标板上使用这个内核时,这个硬件就不能起作用。l下面讨论如何为一个嵌入式系统准备好一个可用的Linux内核,包括内核的选择、配置、编译和安装。xlanchen2007.6.438Embedded Operating SystemsLinux内核源代码中的主要子目录内核源代码中的主要子目录lDocumentation 内核方面的相关文档。larch与体系结构相关的代码。对应于每个支持的体系结构,有一个相应的目录如i386、arm、alpha等。每个体系结构子目录下包含几个主要的子目录:lkernel与体系结构相关的核心代码lmm
18、与体系结构相关的内存管理代码llib与体系结构相关的库代码linclude内核头文件。对每种支持的体系结构有相应的子目录。linit内核初始化代码。xlanchen2007.6.439Embedded Operating Systemslkernel内核管理代码。lmm内存管理代码。lipc进程间通讯代码。lnet网络部分代码。llib与体系结构无关的内核库代码。ldrivers设备驱动代码。每类设备有相应的子目录,如char、block、net等lfs文件系统代码。每个支持文件系统有相应的子目录,如ext2、proc等。lmodules 可动态加载的模块。lScripts配置核心的脚本文件。
19、xlanchen2007.6.440Embedded Operating SystemsLinux的配置和编译步骤的配置和编译步骤lLinux内核从配置到安装大致有如下步骤:l清理:make mrproperl配置:make config/menuconfig/xconfigl建立依赖关系:make depl编译:make或make zImagel安装:make installl但在嵌入式系统开发中,并不总是按照上述步骤xlanchen2007.6.441Embedded Operating Systems1、Linux内核选择内核选择l尽管http:/www.kernel.org是主要的内核
20、来源,但这里可用的内核版本并不总适用于嵌入式系统l下面列出了针对当前主要嵌入式系统的Linux内核源代码下载地点,通常直接提供了针对某种目标硬件系统的Linux内核版本处理器系统处理器系统合适的内核站点合适的内核站点x86http:/www.kernel.orgARMhttp:/www.arm.linux.org.ukPowerPChttp:/penguinppc.orgMIPShttp:/www.linux-mips.orgM68Khttp:/linux-m68k.orgnonMMU的CPUs http:/www.uclinux.orgxlanchen2007.6.442Embedded O
21、perating Systemsl为了获得适合目标系统的内核,必须从主要的站点下载内核,还要打上合适的补丁。例如ARM Linux仅仅发布Linux官方内核的补丁。l找到合适的Linux内核版本后,把它下载到某个目录中,解压xlanchen2007.6.443Embedded Operating Systems2、Linux内核的配置内核的配置l配置有很多种方法,配置过程中有很多选项可选l配置的结果是生成一个.config文件以及大量的符号连接和头文件,用于后续的过程。.config文件中保存了在配置过程中定义的变量,在Linux内核目录下的Makefile中将会包含这个文件xlanchen2
22、007.6.444Embedded Operating SystemsARMLinux的配置和编译的配置和编译l考虑将ARM Linux运行到SkyEye模拟平台上:(1)下载源代码,建立交叉编译环境(2)编译内核(3)利用busybox生成一个简单的系统文件并且配置根文件系统(4)配置SkyEye系统信息,使上述生成的内核及操作系统可以在SkyEye中运行xlanchen2007.6.445Embedded Operating Systems准备准备ARMLinuxl下载标准Linux 的内核源码和ARM Linux,其中ARM Linux 是基于标准Linux内核为ARM 做的补丁l标准L
23、inux的内核源代码ftp:/ftp.kernel.orglinux-2.4.18.tar.bz2lARM Linux的补丁ftp:/ftp.arm.linux.org.uk/pub/armlinuxpatch-2.4.18-rmk7.bz2xlanchen2007.6.446Embedded Operating Systemsl解压缩Linux-2.4.18,l解压缩补丁,并对linux-2.4.18打补丁l建立armlinux-2.4.18,将linux目录拷贝到该目录下xlanchen2007.6.447Embedded Operating Systems建立交叉编译环境建立交叉编译环境
24、l下载交叉编译工具ftp:/ftp.arm.linux.org.uk/pub/armlinux/toolchain cross-2.95.3.tar.bz2l解压缩到/usr/local/arm目录下tar jxf cross-2.95.3.tar.bz2l设置执行路径,在.bashrc中添加然后,退出控制台,重新启动控制台xlanchen2007.6.448Embedded Operating Systemsl检查是否建立好交叉编译环境l对arm-linux使用tab键功能l命令:arm-linux-gcc vxlanchen2007.6.449Embedded Operating Syst
25、ems配置和编译配置和编译armlinuxl修改Makefile中l目标板体系结构l交叉编译器xlanchen2007.6.450Embedded Operating Systems我们考虑在我们考虑在skyeye上模拟上模拟ep7312l下载armlinux4skyeyel解压缩xlanchen2007.6.451Embedded Operating Systemsl进入armlinux4skyeyelinstallguide.txtxlanchen2007.6.452Embedded Operating Systemsl为Skyeye模拟的ep7312进行如下修改:1.linux-2.4.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 嵌入式 操作系统 ppt 课件
限制150内