uboot1.1.6 的一些描述性介绍

本文档详细介绍了U-Boot项目的目录结构、软件配置方式及构建流程。涵盖了从选择板级支持包到最终生成可运行映像的全过程,并提供了为特定硬件平台移植U-Boot的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Directory Hierarchy:
====================


- board        Board dependent files
- common    Misc architecture independent functions
- cpu        CPU specific files
  - 74xx_7xx    Files specific to Freescale MPC74xx and 7xx CPUs
  - arm720t    Files specific to ARM 720 CPUs
  - arm920t    Files specific to ARM 920 CPUs
    - at91rm9200 Files specific to Atmel AT91RM9200 CPU
    - imx    Files specific to Freescale MC9328 i.MX CPUs
    - s3c24x0    Files specific to Samsung S3C24X0 CPUs
  - arm925t    Files specific to ARM 925 CPUs
  - arm926ejs    Files specific to ARM 926 CPUs
  - arm1136    Files specific to ARM 1136 CPUs
  - at32ap    Files specific to Atmel AVR32 AP CPUs
  - i386    Files specific to i386 CPUs
  - ixp        Files specific to Intel XScale IXP CPUs
  - mcf52x2    Files specific to Freescale ColdFire MCF52x2 CPUs
  - mips    Files specific to MIPS CPUs
  - mpc5xx    Files specific to Freescale MPC5xx  CPUs
  - mpc5xxx    Files specific to Freescale MPC5xxx CPUs
  - mpc8xx    Files specific to Freescale MPC8xx  CPUs
  - mpc8220    Files specific to Freescale MPC8220 CPUs
  - mpc824x    Files specific to Freescale MPC824x CPUs
  - mpc8260    Files specific to Freescale MPC8260 CPUs
  - mpc85xx    Files specific to Freescale MPC85xx CPUs
  - nios    Files specific to Altera NIOS CPUs
  - nios2    Files specific to Altera Nios-II CPUs
  - ppc4xx    Files specific to AMCC PowerPC 4xx CPUs
  - pxa        Files specific to Intel XScale PXA CPUs
  - s3c44b0    Files specific to Samsung S3C44B0 CPUs
  - sa1100    Files specific to Intel StrongARM SA1100 CPUs
- disk        Code for disk drive partition handling
- doc        Documentation (don't expect too much)
- drivers    Commonly used device drivers
- dtt        Digital Thermometer and Thermostat drivers
- examples    Example code for standalone applications, etc.
- include    Header Files
- lib_arm    Files generic to ARM     architecture
- lib_avr32    Files generic to AVR32     architecture
- lib_generic    Files generic to all     architectures
- lib_i386    Files generic to i386     architecture
- lib_m68k    Files generic to m68k     architecture
- lib_mips    Files generic to MIPS     architecture
- lib_nios    Files generic to NIOS     architecture
- lib_ppc    Files generic to PowerPC architecture
- net        Networking code
- post        Power On Self Test
- rtc        Real Time Clock drivers
- tools        Tools to build S-Record or U-Boot images, etc.



Software Configuration:
=======================


Configuration is usually done using C preprocessor defines; the
rationale behind that is to avoid dead code whenever possible.

There are two classes of configuration variables:

* Configuration _OPTIONS_:
  These are selectable by the user and have names beginning with
  "CONFIG_".

* Configuration _SETTINGS_:
  These depend on the hardware etc. and should not be meddled with if
  you don't know what you're doing; they have names beginning with
  "CFG_".


Configuration Options:
----------------------


Configuration depends on the combination of board and CPU type; all
such information is kept in a configuration file
"include/configs/<board_name>.h".

 



Building the Software:
======================


U-Boot is intended to be  simple  to  build.  After  installing     the
sources     you must configure U-Boot for one specific board type. This
is done by typing:

    make NAME_config

Note: for some board special configuration names may exist; check if
      additional information is available from the board vendor; for
      instance, the TQM823L systems are available without (standard)
      or with LCD support. You can select such additional "features"
      when chosing the configuration, i. e.

      make TQM823L_config
    - will configure for a plain TQM823L, i. e. no LCD support

      make TQM823L_LCD_config
    - will configure for a TQM823L with U-Boot console on LCD


Finally, type "make all", and you should get some working U-Boot
images ready for download to / installation on your system:

- "u-boot.bin" is a raw binary image
- "u-boot" is an image in ELF binary format
- "u-boot.srec" is in Motorola S-Record format

By default the build is performed locally and the objects are saved
in the source directory.

One of the two methods can be used to change
this behavior and build U-Boot to some external directory:

1. Add O= to the make command line invocations:

    make O=/tmp/build distclean
    make O=/tmp/build NAME_config
    make O=/tmp/build all

2. Set environment variable BUILD_DIR to point to the desired location:

    export BUILD_DIR=/tmp/build
    make distclean
    make NAME_config
    make all

Note that the command line "O=" setting overrides the BUILD_DIR environment
variable.


Please be aware that the Makefiles assume you are using GNU make, so
for instance on NetBSD you might need to use "gmake" instead of
native "make".


If the system board that you have is not listed, then you will need
to port U-Boot to your hardware platform. To do this, follow these
steps:

1.  Add a new configuration option for your board to the toplevel
    "Makefile" and to the "MAKEALL" script, using the existing
    entries as examples. Note that here and at many other places
    boards and other names are listed in alphabetical sort order. Please
    keep this order.


2.  Create a new directory to hold your board specific code. Add any
    files you need. In your board directory, you will need at least
    the "Makefile", a "<board>.c", "flash.c" and "u-boot.lds".


3.  Create a new configuration file "include/configs/<board>.h" for
    your board


3.  If you're porting U-Boot to a new CPU, then also create a new
    directory to hold your CPU specific code. Add any files you need.


4.  Run "make <board>_config" with your new name.


5.  Type "make", and you should get a working "u-boot.srec" file
    to be installed on your target system.


6.  Debug and solve any problems that might arise.
    [Of course, this last step is much harder than it sounds.
]

 







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值