嵌入式Linux移植.ppt_第1页
嵌入式Linux移植.ppt_第2页
嵌入式Linux移植.ppt_第3页
嵌入式Linux移植.ppt_第4页
嵌入式Linux移植.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式Linux移植 50组 余元林SC06010047林茂SC06010055 大纲 嵌入式OS的分类及各自特点嵌入式Linux的特点嵌入式Linux的移植讨论 嵌入式系统的分类 嵌入式LinuxLinux本身的种种特性使其成为嵌入式开发的首选 嵌入式协会 ELC 发布了ELC产品规范版本1 0 更为嵌入式Linux的开发提供了提供了方便 RT LinuxuCLinux Micro Control Linux mizi linux 由韩国mizi公司根据Linux2 4内核移植而来 支持S3C2410A处理器 嵌入式系统的分类 uClinuxuClinux是很常用的一种嵌入式Linux 它去掉了Linux中的内存管理单元 MMU 主要用于没有内存管理单元的处理器 比如三星公司的S3C44B0X 它是继承了标准Linux的优良特性 针对嵌入式处理器的特点设计的一种操作系统 具有内嵌网络协议 支持多种文件系统 开发者可利用标准Linux先验知识等优势 其编译后目标文件可控制在几百KB量级 嵌入式系统的分类 WindowsCEMicrosoftWindowsCE是从整体上为有限资源的平台设计的多线程 完整优先权 多任务的操作系统 它的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制 操作系统的基本内核需要至少200K的ROM 嵌入式系统的分类 VxWorksVxWorks是目前嵌入式系统领域中使用最广泛 市场占有率最高的系统 它支持多种处理器 如x86 i960 SunSparc MotorolaMC68xxx MIPSRX000 POWERPC等等 大多数的VxWorksAPI是专有的 采用GNU的编译和调试器 嵌入式系统的分类 uC OSuC OS是一个典型的RTOS 该系统从1992年开始发展 目前流行的是第二个版本 即uC OSII 它的特点可以概括为一下几个方面 公开源代码良好的可移植性 Portable 可裁剪 Scalable 可固化 ROMable 占先式 Preemptive 多任务 嵌入式系统的分类 LynxOSLynxReal timeSystems的LynxOS是一个分布式 嵌入式 可规模扩展的RTOS 它遵循POSIX 1a POSIX 1b和POSIX 1c标准 LynxOS支持线程概念 提供256个全局用户线程优先级 提供一些传统的 非实时系统的服务特征 包括基于调用需求的虚拟内存 一个基于Motif的用户图形界面 与工业标准兼容的网络系统以及应用开发工具 PortableOperatingSystemInterface 嵌入式系统的分类 PalmOSPalmOS是一种32位的嵌入式OS 用于掌上电脑 此系统是3Com公司的PalmComputing部 以独立成一家公司 开发的 它运行在一个抢占式的多任务内核之上 同一时刻用户界面仅仅允许一个应用程序被打开 与同步软件HotSync结合可以使掌上电脑与PC上的信息实现同步 把PC的功能扩展到了手掌上 它具有强大的灵活性和良好的可移植性 是一款非常流行的掌上电脑操作系统 嵌入式系统的分类 QNXOS 9pSOS 嵌入式Linux的特点 一 广泛的硬件支持Linux能够支持x86 ARM MIPS ALPHA PowerPC等多种体系结构 目前已经成功移植到数十种硬件平台 几乎能够运行在所有流行的CPU上 Linux有着异常丰富的驱动程序资源 支持各种主流硬件设备和最新硬件技术 甚至可以在没有存储管理单元 MMU 的处理器上运行 这些都进一步促进了Linux在嵌入式系统中的应用 嵌入式Linux的特点 二 内核高效稳定Linux内核的高效和稳定已经在各个领域内得到了大量事实的验证 Linux的内核设计非常精巧 分成进程调度 内存管理 进程间通信 虚拟文件系统和网络接口五大部分 其独特的模块机制可以根据用户的需要 实时地将某些模块插入到内核或从内核中移走 这些特性使得Linux系统内核可以裁剪得非常小巧 很适合于嵌入式系统的需要 嵌入式Linux的特点 三 开放源码 软件丰富Linux是开放源代码的自由操作系统 它为用户提供了最大限度的自由度 由于嵌入式系统千差万别 往往需要针对具体的应用进行修改和优化 因而获得源代码就变得至关重要了 Linux的软件资源十分丰富 每一种通用程序在Linux上几乎都可以找到 并且数量还在不断增加 在Linux上开发嵌入式应用软件一般不用从头做起 而是可以选择一个类似的自由软件做为原型 在其上进行二次开发 嵌入式Linux的特点 四 优秀的开发工具传统的嵌入式开发调试工具是在线仿真器 In CircuitEmulator ICE 它通过取代目标板的微处理器 给目标程序提供一个完整的仿真环境 从而使开发者能够非常清楚地了解到程序在目标板上的工作状态 便于监视和调试程序 价格非常昂贵 只适合做非常底层的调试 嵌入式Linux为开发者提供了一套完整的工具链 ToolChain 它利用GNU的gcc做编译器 用gdb kgdb xgdb做调试工具 能够很方便地实现从操作系统到应用软件各个级别的调试 嵌入式Linux的特点 五 完善的网络通信和文件管理机制Linux至诞生之日起就与Internet密不可分 支持所有标准的Internet网络协议 并且很容易移植到嵌入式系统当中 此外 Linux还支持ext2 fat16 fat32 romfs等文件系统 这些都为开发嵌入式系统应用打下了很好的基础 嵌入式Linux系统的组成部分 一 引导程序能实现系统的快速引导 提供瞬间开机功能 负责将Linux内核加载到内存 并将控制权交给内核初始化程序 具体工作包括 寻找或将指定的内核映像解压 解压文件系统 嵌入式Linux系统的组成部分 二 Linux内核Linux是一个单一内核操作系统 但可以动态装入和卸载内核中的部分源代码 这与传统的单一内核操作系统全部静态编译内核代码是不同的 Linux内核由内存管理 进程管理 定时器中断管理 模块管理 虚拟文件系统 接口文件系统 设备驱动程序 进程间通信 网络管理 系统启动等构成 嵌入式Linux系统的组成部分 三 初始化进程系统在刚刚启动时 运行于内核方式 这时候只有一个初始化进程在运行 他首先做系统的初始化 然后执行初始化程序 一般是 sbin init 初始化进程是系统的第一个进程 以后所有的进程都是初始化进程的子进程 嵌入式Linux系统的组成部分 四 硬件驱动程序设备驱动程序是内核的一部分 它像内核中其它代码一样运行在内核模式 驱动程序如果出错将会使操作系统受到严重破坏 甚至能使系统崩溃并导致文件系统的破坏和数据丢失 Linux设备驱动程序的主要功能有 对设备进行初始化 使设备投入运行和退出服务 从设备接收数据并将它们送回内核 将数据从内核送到设备 检测和处理设备出现的错误 嵌入式Linux系统的组成部分 五 应用程序提供所需功能的一个或更多应用程序 移植的概念 移植步骤a Bootloader的移植 b 嵌入式Linux操作系统内核的移植 c 嵌入式Linux操作系统根文件系统的创建 d 电路板上外设Linux驱动程序的编写 移植的准备工作 PC平台装有Linux操作系统或在Windows操作系统下安装Cygwin目标平台CPU S3C2410SDRAM HY57V561620Nandflash K9F1208U0B 64MB 以太网芯片 CS8900A 10M 100MB 源码包 linuxkernellinux 2 6 14 1 tar gzSkyeyeskyeye 1 2 RC8 3 tar bz2toolchaincross 2 95 3 tar bz2 也可以使用gcc gdb glibc binutils等工具自己编译产生 源码包 binuilsbinutils 2 16 tar gzgccgcc 3 4 4 tar bz2glibcglibc 2 3 5 tar gzglibc linuxthreads 2 3 5 tar gzgdbgdb 5 2 tar bz2u 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与u boot BootLoader是系统加电启运行的第一段软件代码 PC机中的引导加载程序由BIOS 其本质就是一段固件程序 和位于硬盘MBR中的引导程序一起组成 BIOS在完成硬件检测和资源分配后 将硬盘MBR中的引导程序读到系统的RAM中 然后将控制权交给引导程序 引导程序的主要运行任务就是将内核映象从硬盘上读到RAM中然后跳转到内核的入口点去运行 也即开始启动操作系统 bootloader与u boot BootLoader就是在操作系统内核或用户应用程序运行之前运行的一段小程序 通过这段小程序 我们可以初始化硬件设备 建立内存空间的映射图 有的CPU没有内存映射功能如S3C44B0 从而将系统的软硬件环境带到一个合适的状态 以便为最终调用操作系统内核或用户应用程序准备好正确的环境 bootloader与u boot 每种不同的CPU体系结构都有不同的BootLoader 除了依赖于CPU的体系结构外 BootLoader实际上也依赖于具体的嵌入式板级设备的配置 因此为嵌入式系统建立一个通用的BootLoader是很困难的U boot是德国DENX小组的开发用于多种嵌入式CPU的bootloader程序 UBoot不仅仅支持嵌入式Linux系统的引导 当前 它还支持NetBSD VxWorks QNX RTEMS ARTOS LynxOS嵌入式操作系统 U Boot除了支持PowerPC系列的处理器外 还能支持MIPS x86 ARM NIOS XScale等诸多常用系列的处理器 BootLoader的操作模式 OperationMode 启动加载 Bootloading 模式 这种模式也称为 自主 Autonomous 模式 也即BootLoader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行 整个过程并没有用户的介入 这种模式是BootLoader的正常工作模式 因此在嵌入式产品发布的时侯 BootLoader显然必须工作在这种模式下 BootLoader的操作模式 OperationMode 下载 Downloading 模式 在这种模式下 目标机上的BootLoader将通过串口连接或网络连接等通信手段从主机 Host 下载文件 比如 下载内核映像和根文件系统映像等 从主机下载的文件通常首先被BootLoader保存到目标机的RAM中 然后再被BootLoader写到目标机上的FLASH类固态存储设备中 BootLoader的这种模式通常在第一次安装内核与根文件系统时被使用 此外 以后的系统更新也会使用BootLoader的这种工作模式 工作于这种模式下的BootLoader通常都会向它的终端用户提供一个简单的命令行接口 u boot功能 系统引导支持NFS挂载 从FLASH中引导压缩或非压缩系统内核基本辅助功能强大的操作系统接口功能 可灵活设置 传递多个关键参数给操作系统 适合系统在不同开发阶段的调试要求与产品发布 尤对Linux支持最为强劲 支持目标板环境参数多种存储方式 如FLASH NVRAM EEPROM CRC32校验 可校验FLASH中内核 RAMDISK镜像文件是否完好 设备驱动 上电自检功能 SDRAM故障检测 CPU型号 特殊功能 XIP内核引导 u boot移植 为了使U Boot支持新的开发板 一种简便的做法是在U Boot已经支持的开发板中选择一种和目标板接近的 并在其基础上进行修改 移植前的准备阅读相关文档config mk flash c的修改修改flash和SDRAM的参数设置 以Byte为单位 其他事项 比如准备源码 建立交叉开发环境等 u boot移植 在建立的开发环境下进行移植工作 绝大多数的开发环境是交叉开发环境 在这方面 DENX和MontaVista均提供了完整的开发工具集在目标板与开发主机间接入硬件调试器 一般使用BDI2000 一方面 其价格不如ICE调试器昂贵 同时其可靠性高 功能强大 完全能胜任移植和调试u Boot 另外 网上也有不少关于BDI2000调试方面的参考文档 如果在参考开发板上移植U Boot 可能需要移除目标板上已有的bootloader 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移植 另外一种方法是用BDI2000先将U Boot镜像文件烧写到FLASH中去 然后利用GDB和BDI2000进行调试 这种方法所用BDI2000的配置文件较为简单 调试过程与U Boot移植后运行过程相吻合 即U Boot先从FLASH中运行 再重载至RAM中相应位置 并从那里正式投入运行 麻烦的就是需要不断烧写FLASH Linux 2 6内核的移植 修改Makefile找到ARCH和CROSS COMPILE 修改ARCH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论