嵌入式操作系统ppt课件.ppt
《嵌入式操作系统ppt课件.ppt》由会员分享,可在线阅读,更多相关《嵌入式操作系统ppt课件.ppt(130页珍藏版)》请在三一文库上搜索。
1、嵌入式操作系统,陈香兰 http:/ Spring 2007 中国科学技术大学计算机系,xlanchen2007.6.4,Embedded Operating Systems,2,上周一,SkyEye介绍 SkyEye简介 SkyEye的安装和使用 uClinux简介,xlanchen2007.6.4,Embedded Operating Systems,3,上周二,介绍了嵌入式系统的 Boot Loader,包括: Boot Loader 的概念 Boot Loader 的主要任务 Boot Loader 的框架结构 Boot Loader 的安装 部分开源的boot loader,xla
2、nchen2007.6.4,Embedded Operating Systems,4,本次课的主要内容,嵌入式Linux开发技术,嵌入式Linux开发技术,xlanchen2007.6.3,xlanchen2007.6.4,Embedded Operating Systems,6,主要内容,一、嵌入式Linux开发综述 二、Linux的配置和编译 三、根文件系统及其制作,xlanchen2007.6.4,Embedded Operating Systems,7,主要内容,一、嵌入式Linux开发综述 二、Linux的配置和编译 三、根文件系统及其制作,xlanchen2007.6.4,Embe
3、dded Operating Systems,8,一、嵌入式Linux开发综述,建立目标板Linux的基本步骤 开发嵌入式Linux系统最常用的主机类型 主机/目标机的开发体系结构 主机/目标板的调试方式 嵌入式Linux系统的一般架构 嵌入式Linux系统的启动过程 嵌入式Linux系统的引导配置的类型,xlanchen2007.6.4,Embedded Operating Systems,9,1、建立目标板Linux的基本步骤,建立目标板Linux系统有4个重要的步骤: (1)决定系统组件 Linux具有大量可选软件,应当为目标系统列出必须的功能清单 (2)配置并建立内核 选择合适的Lin
4、ux内核版本与适当的配置 建立内核 (3)建立根文件系统 (4)设置引导软件与配置,xlanchen2007.6.4,Embedded Operating Systems,10,2、开发嵌入式Linux系统最常用的主机类型,开发嵌入式Linux系统最常用的主机类型 (1)Linux工作站 通常就是一台安装了某个标准的Linux发行套件的PC机,如Debian、Mandrake、Red Hat等。 需约2、3G或更多的磁盘空间进行嵌入式Linux开发 建议具有128或以上的RAM及交换空间 (2)Unix工作站 由于Linux与Unix非常相似,对Linux适用的通常对Unix也适用,xlanc
5、hen2007.6.4,Embedded Operating Systems,11,(3)Windows工作站 许多开发者比较习惯Windows平台,并希望在Windows平台上开发嵌入式Linux系统 Cygwin: 可在Windows平台上建立跨平台开发工具链 VMWare: 可在虚拟环境中执行Linux,并在Linux上进行嵌入式Linux的开发,xlanchen2007.6.4,Embedded Operating Systems,12,3、主机/目标机的开发体系结构,在嵌入式Linux系统开发中,存在3种主机/目标机开发体系结构 (1)连接式 (2)使用可移动存储设备 (3)独立开发
6、式,xlanchen2007.6.4,Embedded Operating Systems,13,(1)连接式 ( the linked setup ),目标板和主机通过一个物理线路(如串行线或者以太网连接)永久的连接在一起 好处: 目标代码的传送无需 物理存储设备参与, 只需要上述连接就足 够了 在这种方式中,主机 包含了跨平台开发环 境,而目标板则包含了适当的引导加载程序、可用的内核以及最起码的根文件系统,xlanchen2007.6.4,Embedded Operating Systems,14,另一种做法是,以远程组件来简化目标板的开发工作,例如 通过TFTP下载内核 此外,根文件系统
7、还 可以通过NFS安装, 而不必在目标板中使 用存储介质 还可以使用连接进行 调试 通常使用以太网连接进行下载功能,而使用RS232串口连接进行调试,TFPT: Trivial File Transfer Protocol 小型文件传输协议 比FTP简单,NFS: Network File System 网络文件系统 允许访问远程计算机上的文件,*内核 *根文件系统,下载/NFS,xlanchen2007.6.4,Embedded Operating Systems,15,(2)使用可移动存储设备, the removable storage setup,主机和目标板之间没有实际的连接。 先由
8、主机将数据写入存储设备,然后将存储设备转接到目标板,并使用该存储设备引导目标板 同样的,在主机上包含了跨平台开发环境。而目标板则只包含了最起码的引导加载程序。其余的组件被存放在可移动存储设备上。,xlanchen2007.6.4,Embedded Operating Systems,16,xlanchen2007.6.4,Embedded Operating Systems,17,一种通常的操作方式使用易插拔的flash芯片: 先在主机上使用flash编程器将数据写入芯片, 然后再将该芯片插入目标板上的插座中,xlanchen2007.6.4,Embedded Operating System
9、s,18,(3)独立开发系统,在这种设置中,目标板是个独立的开发系统,它包含了引导、操作以及开发额外软件所必须的任何软件。 不需要跨平台开发环境, 不必在主机和目标板之间 传送任何数据 适合以PC为主的高级嵌入 式系统的开发,xlanchen2007.6.4,Embedded Operating Systems,19,4、主机/目标板的调试方式,用来连接目标板与主机进行调试的接口基本上有3种类型: (1)串行线、 (2)网络接口、 (3)特殊的调试硬件 BDM JTAG,xlanchen2007.6.4,Embedded Operating Systems,20,(1)使用串行线进行调试,这是
10、从主机对目标板进行调试的最简单的做法 缺点: 串行连接的速度比较有限 当嵌入式系统中只有一个串行串口, 或者串行连接是嵌入式系统对外唯一的接口, 那么就不可能在对系统调试的同时,以终端仿真器跟系统交互。,xlanchen2007.6.4,Embedded Operating Systems,21,(2)使用网络接口进行调试,这种方式与串行线连接相比,可以提供较高的带宽 由于可以在相同的物理网络连接上使用多重网络连接,可以兼顾调试与终端仿真交互 缺点: 无法使用网络连接对Linux内核进行调试。因为网络协议栈本身在Linux内核里。相对而言,内核的调试通常可以通过串行连接来进行,xlanchen
11、2007.6.4,Embedded Operating Systems,22,(3)使用特殊的调试硬件,通常会使用BDM或JTAG接口。 这些接口依靠的是CPU芯片中内嵌的BDM或JTAG特殊功能。 只要将一个特殊的调试器连接到CPU上的JTAG或BDM相关管脚,就可以完全控制CPU的行为。 因此,当遇到新的嵌入式目标板、或者对目标板上的Linux内核进行调试时,通常会使用JTAG和BDM,BDM Background Debug Mode 背景调试模式,JTAG Joint Test Action Group 联合测试小组 采用IEEE 1149.1,测试存取口和边界扫描标准,xlanche
12、n2007.6.4,Embedded Operating Systems,23,如图所示,包含4个部分: (1)硬件 (2)内核 (3)文件系统等 (4)应用程序/库,5、嵌入式Linux系统的一般架构,xlanchen2007.6.4,Embedded Operating Systems,24,(1)硬件,目标板的硬件必须符合 一些要求方能执行Linux系统。 至少32位CPU 一般情况下必须配备MMU(对于 不配备MMU的考虑使用uClinux) RAM容量必须满足系统的需要 一些最起码的I/O能力,以便在线调试 具有某种形式的永久性或网络存储设备以便内核加载及(或)存取根文件系统,xla
13、nchen2007.6.4,Embedded Operating Systems,25,(2)Linux内核,Linux内核是Linux操作系统的中心组件。使用内核的目的是希望以一致的方式管理硬件,以及为用户软件提供高层抽象层。 内核大致可以分成两个部分:底层接口层和高层抽象层,xlanchen2007.6.4,Embedded Operating Systems,26,底层接口层专属于硬件配置,内核运行其上,并以硬件无关的高层抽象层提供对硬件资源的直接控制。 比如,对于PPC和ARM系统,尽管其寄存器或内存分页的处理方式不同,但却可以使用通用的API来存取内核里高层的组件 通常底层部分会处理
14、CPU特有的操作、架构特有的内存操作以及设备的基本I/O,xlanchen2007.6.4,Embedded Operating Systems,27,(3)文件系统和网络协议等,在Linux内核的底层接口层与高层抽象层之间,内核有时会用到与特定设备上的结构化数据交互的组件,例如文件系统和网络协议。 通常,Linux内核至少需要一个具有合适结构的根文件系统。Linux内核会从中加载第一个应用程序、加载模块并为进程提供工作目录。,xlanchen2007.6.4,Embedded Operating Systems,28,(4)应用程序/库,内核上面是应用程序和工具程序。链接库通常与应用程序动态
15、链接在一起,xlanchen2007.6.4,Embedded Operating Systems,29,6、系统启动过程,在系统启动过程里,有3个主要软件组件参与其中: (1)引导加载程序 (2)内核 (3)Init进程,xlanchen2007.6.4,Embedded Operating Systems,30,(1)引导加载程序,引导加载程序是系统启动过程中执行的第一个软件,它与目标板的硬件有高度的依赖关系。 Linux有许多引导加载程序可用。 引导加载程序在完成底层硬件初始化工作后会接着跳到内核的启动程序代码执行。,xlanchen2007.6.4,Embedded Operating
16、 Systems,31,(2)内核,内核一开始的启动程序代码会因架构不同而有很大的差异,而且在为C程序代码设置合适的执行环境之前,它会先为自己进行初始化工作。 完成以上工作后,内核会跳到与架构无关的start_kernel函数执行,此函数会初始化高层内核功能,安装根文件系统,以及启动init进程,xlanchen2007.6.4,Embedded Operating Systems,32,3、Init进程,启动各种应用程序(根据设置),xlanchen2007.6.4,Embedded Operating Systems,33,7、引导配置的类型,Linux系统的引导配置与所选用的引导加载程序
17、、它的配置以及主机中软硬件的类型有非常密切的关系。 (1)固态存储媒体 (2)磁盘 (3)网络,xlanchen2007.6.4,Embedded Operating Systems,34,(1)固态存储媒体,固态存储媒体用于存放 最初的引导加载程序 配置参数 内核 根文件系统 嵌入式Linux系统在开发的不同阶段可能会使用不同的引导配置,但大部分在开发完成后使用固态存储媒体,xlanchen2007.6.4,Embedded Operating Systems,35,(2)磁盘,磁盘引导配置方式广泛应用于工作站及服务器中,此时内核和根文件系统位于磁盘上 最初的内核加载程序不是从磁盘上加载,第
18、二个内核加载程序就是直接从磁盘获得内核本身 可以用于嵌入式系统的开发阶段 要求:目标板上能够使用硬盘或者具有模仿硬盘的装置,xlanchen2007.6.4,Embedded Operating Systems,36,(3)网络,网络引导配置方式中,存在两种情况: (1)内核位于固态存储设备上或磁盘上,需要通过NFS安装根文件系统 (2)只有内核加载程序位于目标板的存储设备上,需要通过TFTP下载内核和根文件系统(或NFS) 往往用于开发初期,xlanchen2007.6.4,Embedded Operating Systems,37,主要内容,一、嵌入式Linux开发综述 二、Linux的配
19、置和编译 三、根文件系统及其制作,xlanchen2007.6.4,Embedded Operating Systems,38,内核是所有Linux系统软件组成的核心。它的性能对整个系统的性能起决定性作用。如果内核不支持目标板上的某个硬件,那么在目标板上使用这个内核时,这个硬件就不能起作用。 下面讨论如何为一个嵌入式系统准备好一个可用的Linux内核,包括内核的选择、配置、编译和安装。,xlanchen2007.6.4,Embedded Operating Systems,39,Linux内核源代码中的主要子目录,Documentation 内核方面的相关文档。 arch 与体系结构相关的代码
20、。对应于每个 支持的体系结构,有一个相应的目录 如i386、arm、alpha等。每个体系结 构子目录下包含几个主要的子目录: kernel 与体系结构相关的核心代码 mm 与体系结构相关的内存管理代码 lib 与体系结构相关的库代码 include 内核头文件。对每种支持的体系结构 有相应的子目录。 init 内核初始化代码。,xlanchen2007.6.4,Embedded Operating Systems,40,kernel 内核管理代码。 mm 内存管理代码。 ipc 进程间通讯代码。 net 网络部分代码。 lib 与体系结构无关的内核库代码。 drivers 设备驱动代码。每类
21、设备有相应的子 目录,如char、block、net等 fs 文件系统代码。每个支持文件系统有 相应的子目录,如ext2、proc等。 modules 可动态加载的模块。 Scripts 配置核心的脚本文件。,xlanchen2007.6.4,Embedded Operating Systems,41,Linux的配置和编译步骤,Linux内核从配置到安装大致有如下步骤: 清理:make mrproper 配置:make config/menuconfig/xconfig 建立依赖关系:make dep 编译:make或make zImage 安装:make install 但在嵌入式系统开发
22、中,并不总是按照上述步骤,xlanchen2007.6.4,Embedded Operating Systems,42,1、Linux内核选择,尽管http:/www.kernel.org是主要的内核来源,但这里可用的内核版本并不总适用于嵌入式系统 下面列出了针对当前主要嵌入式系统的Linux内核源代码下载地点,通常直接提供了针对某种目标硬件系统的Linux内核版本,xlanchen2007.6.4,Embedded Operating Systems,43,为了获得适合目标系统的内核,必须从主要的站点下载内核,还要打上合适的补丁。例如ARM Linux仅仅发布Linux官方内核的补丁。 找到
23、合适的Linux内核版本后,把它下载到某个目录中,解压,xlanchen2007.6.4,Embedded Operating Systems,44,2、Linux内核的配置,配置有很多种方法,配置过程中有很多选项可选 配置的结果是生成一个.config文件以及大量的符号连接和头文件,用于后续的过程。,.config文件中保存了在配置过程中定义的变量, 在Linux内核目录下的Makefile中将会包含这个文件,xlanchen2007.6.4,Embedded Operating Systems,45,ARMLinux的配置和编译,考虑将ARM Linux运行到SkyEye模拟平台上: (1
24、)下载源代码,建立交叉编译环境 (2)编译内核 (3)利用busybox生成一个简单的系统文件并且配置根文件系统 (4)配置SkyEye系统信息,使上述生成的内核及操作系统可以在SkyEye中运行,xlanchen2007.6.4,Embedded Operating Systems,46,准备ARM Linux,下载标准Linux 的内核源码和ARM Linux,其中ARM Linux 是基于标准Linux内核为ARM 做的补丁 标准Linux的内核源代码 ftp:/ftp.kernel.org linux-2.4.18.tar.bz2 ARM Linux的补丁 ftp:/ftp.arm.l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 操作系统 ppt 课件
链接地址:https://www.31doc.com/p-3305052.html