zoukankan      html  css  js  c++  java
  • u-boot-2016.01移植(一)

    1、了解uboot
     阅读uboot源码顶层目录下的README.TXT可以提取如下信息:
         made to support booting of Linux images.   //引导内核程序
         make <board_name>_defconfig :see boards.cfg for supported names
         check the file doc/README.scrapyard for a list of no longer supported boards
        
         lowlevel_init(): essential init to permit execution to reach board_init_f()
                        //底层硬件相关的初始化,没有global_data 和 BSS
         board_init_f():set up the machine ready for running board_init_r():
                       //有global_data,栈位于SRAM,清除bss段
         board_init_r(): main execution, common code   
                       //有global_data 和 BSS,主要的执行程序,初始化SDRAM和UART
      
    配置选项:
           配置文件在"include/configs/<board_name>.h"
          一般不要使能icache和dcache(configuration option CONFIG_CMD_CACHE)
    单板初始化设置:
      - CONFIG_BOARD_EARLY_INIT_F: Call board_early_init_f()
      - CONFIG_BOARD_EARLY_INIT_R: Call board_early_init_r()
      - CONFIG_BOARD_LATE_INIT:    Call board_late_init()
      - CONFIG_BOARD_POSTCLK_INIT: Call board_postclk_init()  

    修改源代码之后要相应地更新<board>/u-boot.lds*
    底层硬件相关的配置:
    在Makefile中需要配置CROSS_COMPILE
     
    如果uboot没有支持我们所用的单板
    1.1、在boards.cfg中为你的单板添加新的配置选项,可以使用已经存在的单板作为参考;
    1.2、新建一个目录以支持你的单板,单板目录下至少包含Makefilea, <board>.c, flash.c and u-boot.lds; 
    1.3、为你的单板创建一个新的配置文件include/configs/<board>.h;
    1.4、如果你是移植U-Boot到你的CPU, 也创建一个新的目录支持你CPU的特定程序
    1.5、运行make <board>_defconfig
    1.6、make
    1.7、调试并且解决问题

    Monitor Commands
    常用的:
        md - memory display
      mm - memory modify (auto-incrementing)
      nm - memory modify (constant address)
      mw - memory write (fill)
      nand - NAND memory operations (see doc/README.nand)
      erase - erase FLASH memory
      flinfo - print FLASH memory information
      bdinfo - print Board Info structure
      iminfo - print header information for application image
      coninfo - print console devices and informations
      bootm - boot application image from memory
      tftpboot- boot image via network using TFTP protocol
              and env variables "ipaddr" and "serverip"
              (and eventually "gatewayip")
    不常用:
      cp - memory copy
        go - start application at address 'addr'
      run - run commands in an environment variable
      bootp - boot image via network using BootP/TFTP protocol
      bootz   - boot zImage from memory
      tftpput - upload a file via network using TFTP protocol
      rarpboot- boot image via network using RARP/TFTP protocol
      diskboot- boot from IDE devicebootd   - boot default, i.e., run 'bootcmd'
      loads - load S-Record file over serial line
      loadb - load binary file over serial line (kermit mode)
      cmp - memory compare
      crc32 - checksum calculation
      i2c - I2C sub-system
      sspi - SPI utility commands
      base - print or set address offset
      printenv- print environment variables
      setenv - set environment variables
      saveenv - save environment variables to persistent storage
      protect - enable or disable FLASH write protection
      ide - IDE sub-system
      loop - infinite loop on address range
      loopw - infinite write loop on address range
      mtest - simple RAM test
      icache - enable or disable instruction cache
      dcache - enable or disable data cache
      reset - Perform RESET of the CPU
      echo - echo args to console
      version - print monitor version
      help - print online help
     
    环境变量的设置:
    setenv: 设置环境变量
    printenv: 打印环境变量
    saveenv: 保存环境变量
    设置列表:baudrate、bootdelay、bootcmd、bootargs、bootfile、ipaddr、serverip
    uImage format:New uImage format (FIT) 、Old uImage format 
    引导内核会打印内核相关信息:
         Checking Image at 40100000 ...
        Image Name:  2.2.13 for initrd on TQM850L
        Image Type:  PowerPC Linux Kernel Image (gzip compressed)
        Data Size:  335725 Bytes = 327 kB = 0 MB
        Load Address: 00000000
        Entry Point:  0000000c
        Verifying Checksum ... OK  
     
     
  • 相关阅读:
    一款炫酷Loading动画--载入失败
    ITK Configuring and Building in VisualStudio及hello world程序编译
    InnoDB: Error: log file .ib_logfile0 is of different size 0 10485760 bytes
    vim学习笔记(1)——vim操作
    Android数据格式解析对象JSON用法
    JSONObject与JSONArray的使用
    AsyncHttpClient来完成网页源代码的显示功能,json数据在服务器端的读取还有安卓上的读取
    android开源框架android-async-http使用
    开源框架AsyncHttpClient使用
    Android:Layout_weight的深刻理解
  • 原文地址:https://www.cnblogs.com/zhu-g5may/p/10012669.html
Copyright © 2011-2022 走看看