liusukai的个人空间 https://bbs.21ic.com/?1017991 [收藏] [复制] [RSS]

日志

学习嵌入式Linux-JZ2440-U-Boot简介

已有 896 次阅读2015-5-14 15:17 |个人分类:嵌入式Linux|系统分类:ARM| 嵌入式

      U-Boot,通用Bootloader,是遵循GPL条款的开放源代码项目,其前身是德国DENX软件工程中心的Wolfgang Denk基于8xxROM的源码创建的PPCBOOT工程,后来整理代码结构使得非常容易增加其它类型的开发板、其他架构的CPU,增加更多的功能,比如起动Linux、下载S-Record格式的文件、通过网络启动、通过PCMCIA/CompactFLash/ATA dik/SCSI等方式起动。增加ARM架构CPU及其他更多CPU的支持后,改名为U-Boot。
       它的名字“通用”有两层含义:可以引导多种操作系统、支持多种架构的CPU。它支持如下操作系统:Linux、NetBSD、VxWorks、QNX、RTEMS、ARTOS、LynxOS等,支持如下架构的CPU:PowerPC、MIPS、x86、ARM、NIOS、XScale等。
       以U-Boot-1.1.6为例,它的根目录下面有26个子目录,可以分为4类:
      (1)平台相关的或者开发板相关的。
      (2)通用的函数。
      (3)通用的设备驱动程序。
      (4)U-Boot工具、示例程序、文档。
        这26个子目录的功能和作用:
        board:开发板相关的,对应不同配置的电路板(即使CPU相同),比如smdk2410,sbc2410x
        cpu:平台相关的,对应不同的CPU,比如arm920t、arm925t、i386等;在它们的子目录下仍可以进一步细分,比如arm920t下就有at91rm9200、s3c24x0
        lib_xxx:平台相关,某一架构通用的文件
        include:通用的函数,头文件和开发板配置文件,开发板的配置文件都放在include/configs目录下,U-Boot没有make menuconfig类似的菜单来进行可视化配置,需要手动地修改配置文件中的宏定义
        lib_generic:通用的函数库,比如printf等
        common:通用的函数,多是对下一层驱动程序的进一步封装。
        disk:硬盘接口程序
        drivers:各类具体设备的驱动程序,基本上都可以通用,他们是通过宏从外面引入平台/开发板相关的函数
        dtt:数字温度测量器或者传感器的驱动
        fs:文件系统
        nand_spl:U-Boot一般从ROM、NOR Flash等设备启动,现在开始支持从NAND Flash启动,但是支持的CPU种类还不多
        net:各种网络协议
        post:上电自检程序
        rtc:实时时钟的驱动
        doc:开发、使用文档
        examples:示例程序,一些测试程序,可以使用U-Boot下载后运行。
        tools:工具,制作S-Record、U-Boot格式映像的工具,比如mkimage

        目前U-Boot-1.1.6支持10种架构,根目录下有10个类似lib_i386的目录;31个型号的CPU,cpu目录下有31个子目录;214中开发板,board目录下有214个子目录,很容易从中找到与自己的板子相似的配置,在上面稍作修改即可使用。

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)