首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
BLOB启动流程与Bootloader程序可移植性研究
来源:本站整理  作者:佚名  2011-09-04 21:17:38



      2 Bootloader的可移植性研究

   大部分Bootloader的总体结构与BLOB类似,一般分为两个阶段运行。其中第一阶段与CPU架构相关,不同架构CPU往往要求不同的Bootloader与之对应[3],只有少数Bootloader能够适用于多种架构的CPU,如表1。

  

  2.1 相同构架下Bootloader移植

  对于相同的CPU构架,Bootloader移植工作大体上可以分为三部分。

  (1)目标板驱动部分,针对特定CPU、Flash、SDRAM等对驱动程序进行定制。完成处理器各个I/O口的初始化、Flash描述(包括区块大小及数量)和Flash初始化等。一个必要的工作是Flash分区表的配置,Flash的典型空间分配结构如图2所示。

  

  (2)目标板相关的头文件,文件中包含了目标板配置的宏定义,主要有系统工作频率、GPIO定义、Flash 各分块起始地址及容量、Flash 读/写命令字、SDRAM寄存器配置、SDRAM起始地址及容量、内核装载地址等。其中大部分GPIO设置的目的是在Bootloader下做板载开发,这项功能不是必需的。而CPU频率及Flash的设置则直接影响到系统能否启动。对于采用Ramdisk技术的系统开发,SDRAM的配置也直接关系到Kernel的加载。因此,各头文件的代码修改是移植过程的重点。

  (3)Bootloader总体配置文件修改,包括目标板声明、指定目标板头文件、定制文件关联关系等。

  图3以BLOB在PXA255[4]的目标板上移植为例表现了需要增、改的关键文件之间的内在联系。

  

BLOB在PXA255的目标板上移植

  图3中:

  (1)SRC/blob/PXA255.c:笔者编写的针对PXA255目标板驱动文件,这里是采用默认设置的最简情况,必要时还需对文件如Flash.c等进行修改。

  (2)include/blob/arch/PXA255.h:目标板头文件,它必须通过arch.h及config.h进行指定,最终反映在configure.in中。

  (3)configure.in:添加目标板声明,如果已有目标板类型,则无需修改该文件;如果没有,则需要根据情况添加目标板名称、CPU型号、必需的.o文件,如:

  PXA255)

  AC_MSG_RESULT(Ipaq PXA255)

  AC_DEFINE(PXA255)

  AC_DEFINE(USE_SERIAL3)

  BLOB_PLATFORM_OBJ=″PXA255.o″

  BLOB_FLASH_OBJS=″nullflash.o″

  use_cpu=″PXA255″

  use_LCD=″no″

  (4)Makefile.am:由于添加了PXA255.c和PXA255.h,所以要在它们所在目录的Makefile.am中进行登记,保证configure.in和Makefile.am在进行./configure处理时能够生成正确的Makefile文件,最终在执行Make命令后生成BLOB的可执行文件。

  需要注意的是Linux内核必须根据目标板硬件情况作相应的设置[5],这里不展开论述。

  

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:85,164.06000 毫秒