BLOB_小巧精悍的引导程序.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
BLOB_小巧精悍的引导程序

目录 1 Blob简介 2 Blob的下载 3 Blob的编译 3.1 编译环境 3.2 配置blob 3.3 编译blob 4 Blob的定制 4.1 定制自己目标板的blob 4.2 让blob做更多事情 4.2.1 blob的结构 4.2.2 添加一个命令行指令 4.2.3 添加一个设备驱动 1?Blob简介 Blob是“Boot?loader?Object”的缩写,是一款嵌入式linux引导程序。最初是Jan-Derk?Bakker和 ErikMouw针对LART目标板而设计的,同其他开源代码一样,很多人未blob的发展做出了自己的贡献。到现在为止,blob已经支持多种cpu,包括sa1100,sa1110,pxa255,pxa270等,用户可以根据目标板的特性进行定制。 它能实现以下功能: 引导嵌入式linux,它可以把linux、kernel等从flash中load到Ram中执行 命令行下在线更新blob、kernel和ramdisk。 命令行下可以直接对物理寻址空间进行查看和修改。 可见blob除了引导系统这个基本功能外,还具备BSP开发的功能,对于嵌入式开发前期,blob是一个非常有效的工具。 2?Blob的下载 Blob的官方版本到2.0.5-pre2就不再更新了,而在sourceforge.net上却一直在不断更新。如果因某些原因无法链接以上地址,可以从下面地址下载: blob官方版本blob-2.0.5-pre2.tar.gz sourcforge2004年12月cvs版本 3?Blob的编译 对本节内容如果有疑问可以参考README。 3.1?编译环境 在编译之前要确保主机系统和是否安装了需要的软件。 主机系统必须是linux 交叉编译器gcc版本在2.95.2以上,因为blob针对的cpu都是arm核的,所以需要arm-linux-gcc2.95.2以上版本 GNU?make,我安装的是3.0 GNU?autoconf和automake,我安装的版本是autoconf?2.95和automake?1.9.5 打了rmk补丁的for?arm的linux?kernel?2.4.x。 3.2?配置blob 在配置前,首先要运行/tools/rebuild脚本两次,或者cvs的版本“make-fMakefile.cvs”,效果是一样的,可以生成各个目录的makefile.in和根目录下的configure。为什么两次我没有仔细研究,反正README里强调了两次。如果在第二次以后 rebuild,似乎一次就可以。 配置的过程就是运行./configure脚本,后面加入若干参数。一个典型的配置是这样的: ????./configure?--with-board=pmpxa?--host=i686?--enable-xmodem?\ ????--enable-md5?--with-commands=used --with-board,表示目标板的名字,当然前提是目标板已经在源程序中已经被定制,在后面介绍如何定制目标板。 --host,表示主机的cpu类型,必须设置 --enable-*,表示这个配置生效,在blob中支持很多设备驱动,通过这种形式来进行使能,但是这个并不是必须的。 --with-commands=used,我在configure里定义了一个命令组叫做used,现在要使用它。 编译选项挺繁杂,想详细了解最好能看一下configure。 configure的结果可以生成makefile文件 3.3?编译blob ????make ???? 生成的blob是“src/blob/blob”,把这个二进制文件下载到目标板程序运行起始地址即可。 利用arm-linux-objdump工具可以对编译好的二进制文件进行反汇编。 ????arm-linux-objdump?-D?-S?blob-elf32??blob-elf32-dump ???? 并把结果输出到blob-elf32-dump文件中,在一些调试的过程中也许用的到。 4?Blob的定制 4.1?定制自己目标板的blob 编译blob过程比较简单,但是一般不会这么巧有blob中包含的目标板能完全符合你的。所以需要定制目标板。 下面的部分参考doc/porting.txt另外加入一些我定制的经验。 定制目标板,首先要确定一些信息。目标板的.c和.h文件的名字,这里以LART目标板为例,我们要知道使用的是哪中cpu,flash用arm还是intel的,16位还是32位,还有就是带哪些外设。然后需要修改或添加以下文件: configure.in 有哪些信誉好的足球投注网站一下其他目标板声明的位置,在里面按照其他板子的模样添加自己

文档评论(0)

yurixiang1314 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档