Chinaunix首页 | 论坛 | 博客
  • 博客访问: 351776
  • 博文数量: 73
  • 博客积分: 4096
  • 博客等级: 上校
  • 技术积分: 1102
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-21 14:53
文章分类
文章存档

2009年(3)

2008年(70)

我的朋友

分类:

2008-09-26 15:30:16

1、u-boot-1.1.6的目录结构。
    U-boot是德国DENX小组的开发用于多种嵌入式CPU的bootloader程序, U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、 x86、ARM、NIOS、XScale等诸多常用系列的处理器。
#mv u-boot-1.1.6 uboot
#tree -L 1

|--board
|--common
|--cpu
|--disk
|--doc
|--drivers
|--dtt
|--examples
|--fs
|--include
|--lib_arm
|--lib_generic
|--lib_i386
|--lib_m68k
|--lib_microblaze
|--lib_mips
|--lib_nios
|--lib_nios2
|--lib_ppc
|--net
|--post
|--rtc
|--tools

1. board:和一些已有开发板有关的文件. 每一个开发板都以一个子目录出现在当前目录中,比如说:SMDK2410,子目录中存放与开发板相关的配置文件.
2. common:实现u-boot命令行下支持的命令,每一条命令都对应一个文件。例如bootm命令对应就是cmd_bootm.c。
3. cpu:与特定CPU架构相关目录,每一款Uboot下支持的CPU在该目录下对应一个子目录,比如有子目录arm920t等。
4. disk:对磁盘的支持。
5. doc:文档目录。U-boot有非常完善的文档,推荐大家参考阅读。
6. drivers:U-boot支持的设备驱动程序都放在该目录,比如各种网卡、支持CFI的Flash、串口和USB等。
7. fs: 支持的文件系统,U-boot现在支持cramfs、fat、fdos、jffs2和registerfs。
8. include:U-boot使用的头文件,还有对各种硬件平台支持的汇编文件,系统的配置文件和对文件系统支持的文件。该目录下configs目录有与开发板相关的配置头文件,如smdk2410.h。该目录下的asm目录有与CPU体系结构相关的头文件,asm对应的是asmarm.
9. lib_xxxx: 与体系结构相关的库文件。如与ARM相关的库放在lib_arm中。
10. net:与网络协议栈相关的代码,BOOTP协议、TFTP协议、RARP协议和NFS文件系统的实现。
11. tools:生成U-boot的工具,如:mkimage, crc等等。



 1、u-boot启动流程
    uboot/cpu/XXX/Start.S             _start:
    uboot/cpu/XXX/Start.S             reset:
    uboot/cpu/XXX/Start.S             cpu_init_crit:
    uboot/board/yyy/lowlevel_init.S   lowlevel_init:
    uboot/cpu/XXX/Start.S             relocate:
    uboot/cpu/XXX/Start.S             _start_armboot:
    uboot/cpu/XXX/Start.S             start_armboot()
    uboot/common/main.c               main_loop()
  
    注释:XXX:板子上具体的CPU型号,如arm920t。
         yyy:开发板的型号,如smdk2410。
    待续...
阅读(1733) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~