刘彦文等《Linux环境嵌入式系统开发基础》第13章要点.ppt

刘彦文等《Linux环境嵌入式系统开发基础》第13章要点.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1. 配置变量(p453) 配置头文件中使用了两种类型的配置变量: ⑴ 配置选择(configuration options) 这种变量是用户可选择的,主要用于选择处理器、设备端口地址、命令、属性等。 ⑵ 配置设置(configuration settings) 这种变量的设置是依赖开发板的硬件的,例如总线频率、串口波特率、闪存地址等。如果用户不清楚自己要做什么,轻易不要更改这些配置。 2. smdk2410标准开发板配置头文件举例 以下代码取自…/u-boot-1.3.2/include/configs/smdk2410.h,头部版权信息省略,尾部与闪存相关代码省略,保留了源代码的英文注释,注释中的中文部分是作者增加的。 【例13.1】 smdk2410.h配置头文件部分代码。 (p453-456) 13.6 U-Boot启动过程及举例 1. U-Boot启动过程 ⑴ 初始化堆栈、全局数据段 对于Nor Flash,U-Boot通常从闪存开始运行,开始并不访问内存,例如SDRAM。原因是存储器控制器还没有被初始化,SDRAM还不能用。这意味着此时还没有可以写入的数据段和BSS(block started by symbol,由符号开始的块)段。BSS段在C语言中属于静态内存分配,用于保存全局变量和静态变量,并且定义BSS段后,其内容还需要被初始化为0。当然此时也没有可以写入的堆栈。 某些CPU提供了片上(on-chip)RAM;也有一些CPU的数据Cache能够被锁定,用作RAM。它们被用作可写入的数据段和BSS段。 ⑵ 其他操作 使U-Boot运行在系统状态,例如ARM体系结构的处理器,对应的是管理(supervisor)方式;使用物理地址;不使用MMU,也就是说既不进行地址映射,也不进行存储器保护。 2. 系统初始化 U-Boot从Reset入口点启动,例如S3C2410是从0址启动。启动后执行的代码所对应的源代码含义介绍如下(p457)。 3. smdk2410启动源代码分析举例 smdk2410开发板使用的是Nor Flash,地址从0始,内存中已经烧写了U-Boot、内核、根文件系统、应用程序映像。系统存储器(内存)使用的是SDRAM,地址从0始(p457-459)。 END 第13章 装载引导程序 本章重点: ⑴ 常见的装载引导程序; ⑵ U-Boot概述; ⑶ 编译、烧写、运行U-Boot及装入内核。 13.1 常见的装载引导程序 在Linux环境,无论是通用计算机还是开发板,从机器加电起便运行着一个被称为装载引导(bootloader)的程序,这个程序主要功能是初始化CPU寄存器、初始化存储器控制器、对装载引导过程中使用到的设备初始化、在内存建立C语言运行环境、为装入Linux内核映像文件(简称内核)在内存分配空间、装入Linux内核并将运行权交给内核。此后Linux内核将丢弃或覆盖bootloader在内存的代码及数据。 1. LILO LILO(LInux LOader),早期桌面PC启动Linux的装载引导程序,也可以在配备了PC BIOS的x86 PC类型的嵌入式系统上使用。 2. GRUB GRUB(GRand Unified Bootloader),GNU项目的主要bootloader,目前它也是x86系统上最受欢迎的bootloader,LILO的替代者,企业版(Enterprise)Linux发行套件在服务器上多使用GRUB引导,基于x86 PC类型的嵌入式开发板上,GRUB也较为常用。 3. RedBoot RedBoot是一个基于ECOS(Embedded Configurable Operating System,也写作eCos)的bootloader。ECOS由于规模太小无法运行整个Linux内核,在ECOS被Red Hat收购后,被扩展成能够启动Linux内核的RedBoot。RedBoot是一个用于Intel和Xscale平台上的开源程序,通常用于采用Intel IXP和PXA系列处理器的开发板中。 4. vivi vivi主要支持基于SA-1110、S3C2410的开发板,作为装载引导程序,能够引导Linux内核。vivi初始版本只支持串口传输,不支持网络传输,传输速度较慢。后来网上出现了各种改进版本,支持网络功能。 5. 通用的装载引导程序Das U-Boot 官方命名为Das U-Boot的装载引导程序,是目前应用最广泛的开源软件。Das U-Boot支持多种处理器体系结构、支持

文档评论(0)

武神赵子龙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档