书签 分享 收藏 举报 版权申诉 / 42
上传文档赚钱

类型嵌入式Linux移植课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5131342
  • 上传时间:2023-02-13
  • 格式:PPT
  • 页数:42
  • 大小:695.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《嵌入式Linux移植课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    嵌入式 Linux 移植 课件
    资源描述:

    1、嵌入式Linux移植50组:余元林 SC06010047 林 茂SC06010055大纲 嵌入式OS的分类及各自特点 嵌入式Linux的特点 嵌入式Linux的移植 讨论嵌入式系统的分类 嵌入式嵌入式LinuxLinux本身的种种特性使其成为嵌入式开发的首选。嵌入式协会(ELC)发布了ELC产品规范版本1.0,更为嵌入式Linux的开发提供了提供了方便。RT-Linux uCLinux(Micro-Control-Linux)mizi-linux:由韩国mizi公司根据Linux 2.4内核移植而来,支持S3C2410A处理器嵌入式系统的分类 uClinuxuClinux是很常用的一种嵌入式L

    2、inux,它去掉了Linux中的内存管理单元(MMU),主要用于没有内存管理单元的处理器(比如三星公司的S3C44B0X)。它是继承了标准Linux的优良特性,针对嵌入式处理器的特点设计的一种操作系统,具有内嵌网络协议、支持多种文件系统,开发者可利用标准Linux先验知识等优势。其编译后目标文件可控制在几百KB量级。嵌入式系统的分类 Windows CEMicrosoft Windows CE是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少200K的ROM。嵌入式系统的分

    3、类 VxWorksVxWorks是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它支持多种处理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS RX000、POWER PC等等。大多数的VxWorks API是专有的。采用GNU的编译和调试器。嵌入式系统的分类 Palm OS Palm OS是一种32位的嵌入式OS,用于掌上电脑。此系统是3Com公司的Palm Computing部(以独立成一家公司)开发的。它运行在一个抢占式的多任务内核之上,同一时刻用户界面仅仅允许一个应用程序被打开,与同步软件HotSync结合可以使掌上电脑与PC上的信息实现同

    4、步,把PC的功能扩展到了手掌上。它具有强大的灵活性和良好的可移植性,是一款非常流行的掌上电脑操作系统。嵌入式系统的分类 QNX OS-9 pSOS 嵌入式Linux的特点 一、广泛的硬件支持一、广泛的硬件支持 Linux能够支持x86、ARM、MIPS、ALPHA、PowerPC等多种体系结构,目前已经成功移植到数十种硬件平台,几乎能够运行在所有流行的CPU上。Linux有着异常丰富的驱动程序资源,支持各种主流硬件设备和最新硬件技术,甚至可以在没有存储管理单元(MMU)的处理器上运行,这些都进一步促进了Linux在嵌入式系统中的应用。嵌入式Linux的特点 二、内核高效稳定二、内核高效稳定Li

    5、nux内核的高效和稳定已经在各个领域内得到了大量事实的验证,Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分,其独特的模块机制可以根据用户的需要,实时地将某些模块插入到内核或从内核中移走。这些特性使得Linux系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。嵌入式Linux的特点 三、开放源码,软件丰富三、开放源码,软件丰富Linux是开放源代码的自由操作系统,它为用户提供了最大限度的自由度,由于嵌入式系统千差万别,往往需要针对具体的应用进行修改和优化,因而获得源代码就变得至关重要了。Linux的软件资源十分丰富,每一种通用程序在Linux

    6、上几乎都可以找到,并且数量还在不断增加。在Linux上开发嵌入式应用软件一般不用从头做起,而是可以选择一个类似的自由软件做为原型,在其上进行二次开发。嵌入式Linux的特点 四、优秀的开发工具传统的嵌入式开发调试工具是在线仿真器(In-Circuit Emulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能够非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。价格非常昂贵,只适合做非常底层的调试。嵌入式Linux为开发者提供了一套完整的工具链(Tool Chain),它利用GNU的gcc做编译器,用gdb、kgdb、xgdb做调试工具,

    7、能够很方便地实现从操作系统到应用软件各个级别的调试。嵌入式Linux的特点 五、完善的网络通信和文件管理机制五、完善的网络通信和文件管理机制 Linux至诞生之日起就与Internet密不可分,支持所有标准的Internet网络协议,并且很容易移植到嵌入式系统当中。此外,Linux还支持ext2、fat16、fat32、romfs等文件系统,这些都为开发嵌入式系统应用打下了很好的基础。嵌入式Linux系统的组成部分 一、引导程序一、引导程序能实现系统的快速引导,提供瞬间开机功能。负责将Linux内核加载到内存,并将控制权交给内核初始化程序。具体工作包括:寻找或将指定的内核映像解压,解压文件系统

    8、。嵌入式Linux系统的组成部分 二、二、Linux内核内核Linux是一个单一内核操作系统,但可以动态装入和卸载内核中的部分源代码,这与传统的单一内核操作系统全部静态编译内核代码是不同的。Linux内核由内存管理、进程管理、定时器中断管理、模块管理、虚拟文件系统、接口文件系统、设备驱动程序、进程间通信、网络管理、系统启动等构成。嵌入式Linux系统的组成部分 三、初始化进程三、初始化进程系统在刚刚启动时,运行于内核方式,这时候只有一个初始化进程在运行,他首先做系统的初始化,然后执行初始化程序(一般是/sbin/init)。初始化进程是系统的第一个进程,以后所有的进程都是初始化进程的子进程。嵌

    9、入式Linux系统的组成部分 四、硬件驱动程序四、硬件驱动程序设备驱动程序是内核的一部分,它像内核中其它代码一样运行在内核模式。驱动程序如果出错将会使操作系统受到严重破坏,甚至能使系统崩溃并导致文件系统的破坏和数据丢失。Linux设备驱动程序的主要功能有:对设备进行初始化;使设备投入运行和退出服务;从设备接收数据并将它们送回内核;将数据从内核送到设备;检测和处理设备出现的错误。嵌入式Linux系统的组成部分 五、应用程序五、应用程序提供所需功能的一个或更多应用程序。移植的概念 移植步骤 a.Bootloader的移植;b.嵌入式Linux操作系统内核的移植;c.嵌入式Linux操作系统根文件系

    10、统的创建;d.电路板上外设Linux驱动程序的编写。移植的准备工作 PC平台装有Linux操作系统或在Windows操作系统下安装Cygwin 目标平台CPU:S3C2410SDRAM:HY57V561620Nand flash:K9F1208U0B(64MB)以太网芯片:CS8900A(10M/100MB)源码包 linux kernellinux-2.6.14.1.tar.gz Skyeyeskyeye-1.2-RC8-3.tar.bz2 toolchaincross-2.95.3.tar.bz2,也可以使用gcc,gdb,glibc,binutils等工具自己编译产生。源码包 binui

    11、lsbinutils-2.16.tar.gz gccgcc-3.4.4.tar.bz2 glibcglibc-2.3.5.tar.gzglibc-linuxthreads-2.3.5.tar.gz gdbgdb-5.2.tar.bz2 u-bootu-boot1.1.4.tar.bz2源码包 Batch(补丁)ioperm.c.diff 作用:打修正ioperm()函数 flow.c.diff 作用:该补丁用于产生crti.o和crtn.o文件t-linux.diff 作用:修改gcc一处bug 其他工具busybox-1.1.3.tar.gzmkcramfs交叉编译工具bootloader与

    12、u-boot BootLoader是系统加电启运行的第一段软件代码,PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的引导程序一起组成。BIOS在完成硬件检测和资源分配后,将硬盘MBR中的引导程序读到系统的RAM中,然后将控制权交给引导程序。引导程序的主要运行任务就是将内核映象从硬盘上读到RAM中 然后跳转到内核的入口点去运行,也即开始启动操作系统。bootloader与u-boot BootLoader就是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图(有的CPU没有内存映射功能如 S3C44B0

    13、),从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。bootloader与u-boot 每种不同的CPU体系结构都有不同的BootLoader。除了依赖于CPU的体系结构外,BootLoader实际上也依赖于具体的嵌入式板级设备的配置,因此为嵌入式系统建立一个通用的BootLoader是很困难的 U-boot是德国DENX小组的开发用于多种嵌入式CPU的bootloader程序,UBoot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD,VxWorks,QNX,RTEMS,ARTOS,LynxOS嵌入式操作系统。U-Boot除

    14、了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。Boot Loader 的操作模式的操作模式(Operation Mode)启动加载(启动加载(Boot loading)模式:)模式:这种模式也称为自主(Autonomous)模式。也即 Boot Loader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。这种模式是 Boot Loader 的正常工作模式,因此在嵌入式产品发布的时侯,Boot Loader 显然必须工作在这种模式下。Boot Loader 的操作模式的操作模式(Op

    15、eration Mode)下载(下载(Downloading)模式:)模式:在这种模式下,目标机上的 Boot Loader 将通过串口连接或网络连接等通信手段从主机(Host)下载文件,比如:下载内核映像和根文件系统映像等。从主机下载的文件通常首先被 Boot Loader 保存到目标机的 RAM 中,然后再被 Boot Loader 写到目标机上的FLASH 类固态存储设备中。Boot Loader 的这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后的系统更新也会使用 Boot Loader 的这种工作模式。工作于这种模式下的 Boot Loader 通常都会向它的终端用户提供

    16、一个简单的命令行接口。u-boot功能 系统引导 支持NFS挂载、从FLASH中引导压缩或非压缩系统内核 基本辅助功能 强大的操作系统接口功能;可灵活设置、传递多个关键参数给操作系统,适合系统在不同开发阶段的调试要求与产品发布,尤对Linux支持最为强劲;支持目标板环境参数多种存储方式,如FLASH、NVRAM、EEPROM;CRC32校验,可校验FLASH中内核、RAMDISK镜像文件是否完好;设备驱动;上电自检功能;SDRAM故障检测;CPU型号;特殊功能,XIP内核引导u-boot移植 为了使U-Boot支持新的开发板,一种简便的做法是在U-Boot已经支持的开发板中选择一种和目标板接近

    17、的,并在其基础上进行修改。移植前的准备 阅读相关文档 config.mk,flash.c的修改 修改flash和SDRAM的参数设置(以Byte为单位)其他事项,比如准备源码,建立交叉开发环境等u-boot移植 在建立的开发环境下进行移植工作。绝大多数的开发环境是交叉开发环境。在这方面,DENX 和MontaVista均提供了完整的开发工具集 在目标板与开发主机间接入硬件调试器,一般使用BDI2000。一方面,其价格不如ICE调试器昂贵,同时其可靠性高,功能强大,完全能胜任移植和调试u-Boot。另外,网上也有不少关于BDI2000调试方面的参考文档。如果在参考开发板上移植U-Boot,可能需

    18、要移除目标板上已有的boot loader。u-boot移植 修改文件.c文件.h头文件 FLASH的驱动程序 串口驱动 配置,编译 把boot.bin和u-boot.gz烧到flash里面去,或RAM中的指定位置 u-boot移植 对于U-Boot的移植方法,大致分为两种 一,先用BDI2000创建目标板初始运行环境,将U-Boot镜像文件u-boot.bin下载到目标板RAM中的指定位置,然后,用BDI2000进行跟踪调试。其好处是不用将U-Boot镜像文件烧写到FLASH中去。但弊端在于对移植开发人员的移植调试技能要求较高,BDI2000的配置文件较为复杂。u-boot移植 另外一种方法

    19、是用BDI2000先将U-Boot镜像文件烧写到FLASH中去,然后利用GDB和BDI2000进行调试。这种方法所用BDI2000的配置文件较为简单,调试过程与U-Boot移植后运行过程相吻合,即U-Boot先从FLASH中运行,再重载至RAM中相应位置,并从那里正式投入运行。麻烦的就是需要不断烧写FLASH。Linux-2.6内核的移植 修改Makefile 找到ARCH和CROSS_COMPILE,修改ARCH?=arm CROSS_COMPILE?=armlinux 设置PATH环境变量,使其可以找到交叉编译工具链 设置flash分区Linux-2.6内核的移植 配置内核 支持启动时挂载

    20、devfs为了内核支持devfs以及在启动时并在/sbin/init运行之前能自动挂载/dev为devfs文件系统,修改fs/Kconfig文件armlocalhost linux2.6.14$vi fs/Kconfig 配置内核产生.config文件make menuconfigmake zImage 编译内核,生成zImage 下载zImage到开发板构造目标板的根目录及文件系统 建立一个目标板的空根目录 在my_rootfs中建立Linux目录树 创建linuxrc文件 挂载/etc为ramfs,并从/mnt/etc下拷贝文件到/etc目录当中 挂载/proc为proc文件系统 挂载/sys为sysfs文件系统 挂载其他文件系统 相关配置文件的创建 创建帐号及密码文件 创建profile文件 创建fstab文件移植Busybox busybox是linux的命令工具集,包含例如login,insmod等许多linux命令的源代码,编译这个源码包,就会生成若干linux命令工具的可执行程序。这里需要注意一点的是,只要install busybox,我们根文件系统下先前建好的linuxrc就会被覆盖为一同名二进制文件。所以要事先备份我们自己的linuxrc,在安装完busybox后,将linuxrc复制回去就好。谢谢大家!

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:嵌入式Linux移植课件.ppt
    链接地址:https://www.163wenku.com/p-5131342.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库