uboot启动代码startS详解.doc

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

U-BOOT 一、U-BOOT的目录结构 u-boot目录下有18个子目录,分别存放管理不通的源程序。这些目录中所要存放的文件 有其规则,可以分成三类。 ?第一类目录与处理器体系结构或者开发板硬件直接相关; ?第二类目录是一些通用的函数或者驱动程序; ? 第三类目录是u-boot的应用程序、工具或者文档。 Board:和一些已有开发板相关的文件,比如Makefile和u-boot.lds等都 和具体开发板的硬件和地址分配有关。 Common:与体系结构无关的文件,实现各种命令的C文件。 CPU:CPU相关文件,其中的子目录 都是以u-boot所支持的CPU为名,比如有子目录arm926ejs、mips、mpc8260和nios等,每个特定的子目录中都包括cpu.c和 interrupt.c和start.S。其中cpu.c初始化cpu、设置指令cache和数据cache等;interrupt.c设置系统的各种终 端和异常,比如快速中断,开关中断、时钟中断、软件中断、预取中止和未定义指令等;start.S是u-boot启动时执行的第一个文件,他主要是设置系 统堆栈和工作发式,为进入C程序奠定基础。 Disk:disk驱动的分区处理代码、 Doc:文档。 Drivers:通用设备驱动 程序,比如各种网卡、支持CFI的flash、串口和USB总线等。 Dtt:数字温度测量器或者传感器的驱动 Examples:一些独立 运行的应用程序的例子。 Fs:支持文件系统的文件,u-boot现在支持cramfs、fat、fdos、jffs2、yaffs和 registerfs。 Include:头文件,还有对各种硬件平台支持的会变文件,系统的配置文件和对文件系统支持的文件。 Net:与 网络有关的代码,BOOTP协议、TFTP协议RARP协议和NFS文件系统的实现。 Lib_ppc:存放对PowerPC体系结构通用的文件, 主要用于实现PowerPC平台通用的函数,与PowerPC体系结构相关的代码。 Lib_i386:存放对X86体系结构通用的文件,主要用于 实现X86平台通用的函数,与PowerPc体系结构相关的代码。 Lib_arm:存放对ARM体系结构通用的文件,主要用于实现ARM平台通用 的函数,与ARM体系结构相关的代码。 Lib_generic:通用的多功能函数实现。 Post:上电自检。 Rtc: 实时时钟驱动。 Tools:创建S-Record格式文件和U-BOOT images的工具。 二、u-boot的编译 u- boot的源码是通过GCC和Makefile组织编译的,顶层目录下的Makefile首先可以设置板子的定义,然后递归地调用各级目录下的 Makefile,最后把编译过的程序链接成u-boot的映像。 顶层目录下的Makefile,它是负责U-Boot整体配置编译。每一种开发 板在Makefile都需要有板子配置的定义,如smdk2442定义如下: smdk2442_config:?unconfig ?@./mkconfig $(@:_config=) arm arm920t smdk2442 执行配置U-Boot的命令make smdk2442_config,通过./mkconfig脚本生成include/config.mk的配置文件。文件内容是根据Makefile对板 子的配置生成的。 配置环境和编译过程如下所述,U-boot的编译环境配置需要:cross-2.95.3.tar.bz2和 s3c24x0_uboot_rel_0_0_1_061002.tar.bz2,将文件拷贝到/home/amoi/working/下,(chenpx@chenpx:/mnt/hgfs/share$ cp cross-2.95.3.tar.bz2 /home/amoi/working 和chenpx@chenpx:/mnt/hgfs/share$ cp s3c-u-boot-1.1.6.tar.bz2 /home/amoi/working), ?然后对对文件进行解压(chenpx@chenpx:/home/chenpx/working$ tar jxvf cross-2.95.3.tar.bz2和chenpx@chenpx:/home/chenpx/working$ tar jxvf s3c24x0_uboot_rel_0_0_1_061002.tar.bz2),在/usr/local/目录下建立一个arm文件夹(mkdir –p /usr/local/arm (-p? 是需要时创建上层目录,如目录早已存在则不当作错误))将cross-2.95.3.tar.bz2解压出来的移动到/usr/local/arm/下 (mv 2

文档评论(0)

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

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

1亿VIP精品文档

相关文档