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系统

    内核:

    应用:

    启动项:

     (四)文档介绍

    ---------

  • 相关阅读:
    [NHibernate]第一个NHibernate的应用配置
    [NHibernate]利用LINQPad查看NHibernate生成SQL语句
    [NHibernate]查看NHibernate生成的SQL语句
    Twitter的分布式自增ID雪花算法snowflake (Java版)
    雪花算法:生成分布式全局唯一ID
    数据加密共享与签名方案
    Java 8中处理集合的优雅姿势——Stream
    消息中间件选型分析——从Kafka与RabbitMQ的对比来看全局
    从概念到底层技术,一文看懂区块链架构设计(附知识图谱)
    以太坊源码分析——BlockChain
  • 原文地址:https://www.cnblogs.com/Ph-one/p/4511982.html
Copyright © 2011-2022 走看看