zoukankan      html  css  js  c++  java
  • 2.1 linux中uboot移植

    --

     ---------------------------------------------------------------------------------------

    (一)友善之臂介绍:

    README for FriendlyARM Tiny4412

    说明:本u-boot源代码由三星原厂提供,并由友善之臂修改移植,以适用于Tiny4412开发板平台。
    仅供嵌入式爱好者学习研究之用,友善之臂不对此提供任何技术支持和维护。

    -----------------------------------------------------
    1. Build uboot

    a) 安装好toolchain (arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz)并设置好
    环境变量PATH,保证可以正常使用。

    b) 解压 uboot_tiny4412-20130729.tgz 并进入相应的目录
    tar xzf uboot_tiny4412-20130729.tgz

    c) 配置 uboot 并编译
    cd uboot_tiny4412
    make tiny4412_config
    make

    生成u-boot.bin

    d) 编译 用于生成bl2 的工具
    make -C sd_fuse
    或者
    cd sd_fuse; make


    -----------------------------------------------------
    2. 制作启动 Tiny4412 的SD卡

    a) 先准备一张4G或以上的SDHC卡
    注意:该卡的已有数据将会被破坏,因此请先对SD卡上的数据进行备份。

    b) fusing SD card
    假设SD卡已被PC Linux识别为/dev/sdb, 以root用户运行以下命令即可:
    cd sd_fuse/tiny4412
    ./sd_fusing.sh /dev/sdb


    -----------------------------------------------------
    3. 使用SD卡启动 Tiny4412 并烧写Android

    a) 将已经制作好的SD卡插到 Tiny4412 板上,拨动S2切换到SDBOOT,同时连接
    串口线到PC且假设已经准备好。

    b) 开发板加电,然后在串口控制台(如minicom),按任意键进入uboot 命令行模式

    c) 对SD卡进行分区
    输入以下uboot命令即可对SD卡进行分区:
    fdisk -c 0 320 806 518
    重新分区后,可重新格式化FAT分区
    fatformat mmc 0:1

    d) 进入fastboot模式以烧写Android
    使用USB线连接Tiny4412的MICRO_USB口到PC,然后输入以下uboot命令:
    fastboot

    e) 烧写 Android 到SD卡
    首先请准备好Android image,包括: zImage, ramdisk-u.img, system.img
    在PC端输入以下命令进行烧写:
    fastboot flash kernel zImage (烧写kernel)

    fastboot -w (格式化userdata和cache)

    fastboot flash ramdisk ramdisk-u.img (烧写ramdisk)

    fastboot flash system system.img (烧写system)

    f) 也可以在PC端通过fastboot烧写uboot到SD卡
    先手动生成bl2.bin
    cd sd_fuse/tiny4412
    ../mkbl2 ../../u-boot.bin bl2.bin 14336

    然后输入以下命令:
    fastboot flash fwbl1 E4412_N.bl1.bin

    fastboot flash bl2 bl2.bin

    fastboot flash bootloader ../../u-boot.bin

    fastboot flash tzsw E4412_tzsw.bin


    -----------------------------------------------------
    4. 使用SD卡启动 Android

    a) 如果是使用HD700,则烧写完成后直接重启Tiny4412 即可自动启动 Android

    b) 如果是使用S700,则需要在uboot上设置kernel命令行参数:
    setenv bootargs console=ttySAC0,115200n8 androidboot.console=ttySAC0 lcd=S700
    saveenv
    然后重启Tiny4412即可。

     -----------------------------------------------------------------------------------------------------------

     (二)编译结果

    tiny4412中uboot编译成功

    o lib/lzo/liblzo.o net/libnet.o post/libpost.o board/samsung/tiny4412/libtiny4412.o --end-group /opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412/arch/arm/lib/eabi_compat.o -L /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1 -lgcc -Map u-boot.map -o u-boot
    arm-linux-ld: warning: creating a DT_TEXTREL in object.
    arm-linux-objcopy -O srec u-boot u-boot.srec
    arm-linux-objcopy --gap-fill=0xff -O binary u-boot u-boot.bin
    root@phone-desktop:/opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412# make -C sd_fuse
    make:进入目录'/opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412/sd_fuse'
    gcc -o    mkbl2 V310-EVT1-mkbl2.c
    gcc -o    sd_fdisk sd_fdisk.c
    make:离开目录“/opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412/sd_fuse”
    root@phone-desktop:/opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412#

    (三)目录分析

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

    /arch            Architecture specific files    #拱结构的特定文件
      /arm            Files generic to ARM architecture  #ARM文件通用的ARM架构
        /cpu        CPU specific files CPU特定文件
          /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
          /ixp        Files specific to Intel XScale IXP CPUs
          /pxa        Files specific to Intel XScale PXA CPUs
          /s3c44b0        Files specific to Samsung S3C44B0 CPUs
          /sa1100        Files specific to Intel StrongARM SA1100 CPUs
        /lib        Architecture specific library files
      /avr32        Files generic to AVR32 architecture
        /cpu        CPU specific files
        /lib        Architecture specific library files
      /blackfin        Files generic to Analog Devices Blackfin architecture
        /cpu        CPU specific files
        /lib        Architecture specific library files
      /i386            Files generic to i386 architecture
        /cpu        CPU specific files
        /lib        Architecture specific library files
      /m68k            Files generic to m68k architecture
        /cpu        CPU specific files
          /mcf52x2        Files specific to Freescale ColdFire MCF52x2 CPUs
          /mcf5227x        Files specific to Freescale ColdFire MCF5227x CPUs
          /mcf532x        Files specific to Freescale ColdFire MCF5329 CPUs
          /mcf5445x        Files specific to Freescale ColdFire MCF5445x CPUs
          /mcf547x_8x    Files specific to Freescale ColdFire MCF547x_8x CPUs
        /lib        Architecture specific library files
      /microblaze        Files generic to microblaze architecture
        /cpu        CPU specific files
        /lib        Architecture specific library files
      /mips            Files generic to MIPS architecture
        /cpu        CPU specific files
        /lib        Architecture specific library files
      /nios2        Files generic to Altera NIOS2 architecture
        /cpu        CPU specific files
        /lib        Architecture specific library files
      /powerpc        Files generic to PowerPC architecture
        /cpu        CPU specific files
          /74xx_7xx        Files specific to Freescale MPC74xx and 7xx 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
          /ppc4xx        Files specific to AMCC PowerPC 4xx CPUs
        /lib        Architecture specific library files
      /sh            Files generic to SH architecture
        /cpu        CPU specific files
          /sh2        Files specific to sh2 CPUs
          /sh3        Files specific to sh3 CPUs
          /sh4        Files specific to sh4 CPUs
        /lib        Architecture specific library files
      /sparc        Files generic to SPARC architecture
        /cpu        CPU specific files
          /leon2        Files specific to Gaisler LEON2 SPARC CPU
          /leon3        Files specific to Gaisler LEON3 SPARC CPU
        /lib        Architecture specific library files
    /api            Machine/arch independent API for external apps
    /board            Board dependent files
    /common            Misc architecture independent functions
    /disk            Code for disk drive partition handling
    /doc            Documentation (don't expect too much)
    /drivers        Commonly used device drivers
    /examples        Example code for standalone applications, etc.
    /fs            Filesystem code (cramfs, ext2, jffs2, etc.)
    /include        Header Files
    /lib            Files generic to all architectures
      /libfdt        Library files to support flattened device trees
      /lzma            Library files to support LZMA decompression
      /lzo            Library files to support LZO decompression
    /net            Networking code
    /post            Power On Self Test
    /rtc            Real Time Clock drivers
    /tools            Tools to build S-Record or U-Boot images, etc.

     ----

    翻译:

    /拱结构的特定文件
      / ARM文件通用的ARM架构
        / CPU CPU特定文件
          / ARM720T特定的文件向ARM处理器720
          / ARM920T特定的文件向ARM处理器920
        / AT91RM9200文件的具体爱特梅尔AT91RM9200 CPU
        / IMX文件具体到飞思卡尔i.MX MC9328的CPU
        / s3c24x0文件具体到三星的CPU S3C24X0
          / arm925t特定的文件向ARM处理器925
          / ARM926EJS特定的文件向ARM处理器926
          / ARM1136特定的文件向ARM处理器1136
          / IXP文件具体到英特尔XScale处理器IXP
          / PXA文件适用于Intel XScale PXA系列处理器
          / S3C44B0文件具体到三星S3C44B0处理器
          / SA1100具体的文件对英特尔的StrongARM处理器SA1100
        / lib下的具体架构库文件
      / AVR32文件一般为AVR32架构
        / CPU CPU特定文件
        / lib下的具体架构库文件
      / Blackfin处理器通用的文件ADI公司Blackfin架构
        / CPU CPU特定文件
        / lib下的具体架构库文件
      / I386文件通用的i386架构
        / CPU CPU特定文件
        / lib下的具体架构库文件
      / m68k的文件通用的m68k的架构
        / CPU CPU特定文件
          / mcf52x2文件具体到飞思卡尔的ColdFire处理器MCF52x2
          / MCF5227X文件具体到飞思卡尔的ColdFire处理器MCF5227X
          / MCF532X文件具体到飞思卡尔的ColdFire处理器MCF5329
          / mcf5445x文件具体到飞思卡尔的ColdFire MCF5445x处理器
          / mcf547x_8x文件具体到飞思卡尔的ColdFire处理器MCF547x_8x
        / lib下的具体架构库文件
      /文件的MicroBlaze通用的架构的MicroBlaze
        / CPU CPU特定文件
        / lib下的具体架构库文件
      / MIPS文件一般以MIPS架构
        / CPU CPU特定文件
        / lib下的具体架构库文件
      / NIOS2文件一般以Altera NIOS2架构
        / CPU CPU特定文件
        / lib下的具体架构库文件
      / PowerPC的文件通用的PowerPC架构
        / CPU CPU特定文件
          / 74xx_7xx文件具体到飞思卡尔MPC74xx和7xx的处理器
          / MPC5XX特定的文件飞思卡尔处理器MPC5XX
          / mpc5xxx特定的文件飞思卡尔MPC5xxx的CPU
          / mpc8xx特定的文件飞思卡尔MPC8xx处理器
          / mpc8220特定的文件飞思卡尔MPC8220处理器
          / MPC824X特定的文件飞思卡尔MPC824X的CPU
          / MPC8260特定的文件飞思卡尔MPC8260处理器
          / MPC85XX特定的文件飞思卡尔MPC85XX处理器
          / ppc4xx文件具体到AMCC的PowerPC处理器4XX
        / lib下的具体架构库文件
      / SH文件一般以SH架构
        / CPU CPU特定文件
          / SH2文件具体到SH2的CPU
          / SH3文件具体到SH3处理器
          / SH4文件具体到SH4的CPU
        / lib下的具体架构库文件
      / SPARC文件通用于SPARC架构
        / CPU CPU特定文件
          / LEON2文件具体到Gaisler LEON2 SPARC CPU
          / LEON3文件具体到Gaisler LEON3 SPARC CPU
        / lib下的具体架构库文件
    外部应用程序/ API机/弓独立的API
    /板板相关文件
    /常见的其它架构的独立功能
    磁盘驱动器分区处理/编码盘
    / DOC文档(不要期待太多)
    /驱动器常用的设备驱动程序
    对于独立的应用程序,等等。/例子示例代码
    / FS文件系统代码(CRAMFS,EXT2,JFFS2等)
    /包含头文件
    / LIB文件通用于所有架构
      / libfdt库文件,以支持平板设备树的
      / LZMA库文件,以支持LZMA压缩
      / LZO库文件,以支持LZO压缩
    / NET网络代码
    / POST开机自检
    / RTC实时时钟驱动器
    /工具工具来构建S-记录或U-Boot的图像等。

     (五)常识

    linux和uboot是两个独立的文件结构

    uboot:

     linux:

    --

    android系统的启动文件却在android系统中:

    android系统:

    linux-3.0.31是android系统的内核。这两个文件是android系统

    内核:

    应用:

    启动项:

     (四)文档介绍

    ---------

  • 相关阅读:
    JDBC 查询的三大参数 setFetchSize prepareStatement(String sql, int resultSetType, int resultSetConcur)
    有空必看
    SpringMVC 利用AbstractRoutingDataSource实现动态数据源切换
    FusionCharts JavaScript API Column 3D Chart
    FusionCharts JavaScript API
    FusionCharts JavaScript API
    Extjs 继承Ext.Component自定义组件
    eclipse 彻底修改复制后的项目名称
    spring 转换器和格式化
    Eclipse快速生成一个JavaBean类的方法
  • 原文地址:https://www.cnblogs.com/Ph-one/p/4511982.html
Copyright © 2011-2022 走看看