网站大量收购独家精品文档,联系QQ:2885784924

Linux 系统移植Linux 系统移植.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux 系统移植Linux 系统移植

Linux 系统移植: 裸板开发: 没有操作系统的支持,没有任何库支持,包括硬件的驱动和上层应用程序都是自己开发的,若是实现相对简单的程序,容易实现复杂一些的程序,对程序员来说,需要懂硬件,懂软件,难度相对较大。 基于操作系统开发: 操作系统为我们提供了很多资源,提供了大量封装好的接口函数,共程序员使用,包括已经实现好的硬件驱动程序。 如何在一个裸板上部署一个操作系统将是在以下几天的主要内容::: 为TPAD部署系统需要: 1,引导程序(bootloader) u-boot.bin 2,操作系统内核 Image 3,文件系统 rootfs.cramfs 4,应用程序 移植课: 基于移植前的软件经过移植成为可以运行的软件(掌握原理和方法) 部署到开发板(熟练操作) 引导程序boot+loader 1,在操作系统运行之前运行的一段代码 Boot:初始化硬件设备,建立内存空间映射图,将系统的软硬 环境带到一个合适的状态 loader:将内核映像文件加载到内存(nand,tftp),之后跳转至内核处执行 2,操作系统内核linux: Linux内核的本质:从c语言的角度,内核就是c语言函数的集合。从硬件的角度,内核就是管理者。从应用程序的角度,内核就是服务的提供者。 Linux内核的功能:进程管理,内存管理,设备管理,文件系统,网络协议。 3,文件系统 是一种对存储设备上的数据进行组织和控制的机制,是操作系统的一部分,负责管理和存储文件信息。 TFTP:简单的网络传输协议 NFS :网络文件系统 嵌入式bootloader的操作模式: 启动加载模式 下载模式 U-boot 最新的源代码:ftp://ftp.denx.de/pub/u-boot 分析U-boot源码:u-boot根目录下共有26个目录,可以分为四类: Cpu相关的或者开发板相关的目录: board,cpu 通用的函数目录: include,lib_arm ,lib_i386,lib_generic,common 通用的设备驱动程序目录: disk,driver,fs,nand_sal,net,post,rtc U-boot工具,示例程序,文档目录: tools,examples,doc 1.与硬件无关 2.与硬件相关(需要根据不同的硬件更改的代码) CPU:包含CPU架构相关的代码, uboot支持的每一款cpu在此目录下都有一个对应的文件夹 Board:包含和开发板相关的文件,每一个开发板都以一个子目录出现在当前目录中。 Include:(include/configs/CW210.h)宏定义文件 Driver:各类具体设备的驱动,基本上可以通用,但是要通过宏从外面引入平台或者开发板相关的函数。 Lib_arm:支持arm架构下的通用文件 /uboot/ Makefile文件:1,决定编译哪些文件。 2 ,怎样编译这些文件。3,怎样链接这些文件,最重要的是他们的顺序 Makefile: 1,确定了编译器 arm-linux- 2,确定OBJS LIBS 编译哪些文件 3,怎样编译这些文件,链接所有目标文件(链接脚本.lds) 配置u-boot Make CW210_config Make 二,u-boot 启动过程概述: 阶段一: 硬件设备初始化:关闭MMU,CACHE,设置系统时钟比例,关闭看门狗,初始化SDRAM 加载u-boot的第二阶段代码准备RAM空间 复制u-boot的第二阶段代码到RAM空间中 设置好栈 跳转到第二阶段代码的C入口点。 阶段二: 初始化本阶段要使用的硬件设备 检测系统内存映射 将内核映像和根文件系统映像从Flash上读到RAM空间中 为内核设置启动参数 U-boot 的前8k代码是位置无关码,可以运行在非链接地址上。 U-boot中的命令: Bootargs: Init:内核启动之后,进入系统中运行的1号进程 Nfsroot:文件系统的路径 Ip:开发板IP:服务器IP:网关:掩码 ::开发板网卡名:on 制定系统启动之后的网卡的IP地址,如果是NFS文件系统,那么必须有这个参数。 struct cmd_tbl_s { char *name; /* Command Name */ int maxargs; /* maximum number of arguments */ int repeatable; /* autorepeat allowed? */ /* Implementation function */ int (*cmd)(struct cmd_tbl_s *, int

文档评论(0)

yxutcangfp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档