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  
 
 

u-boot-2016.01移植(一)的更多相关文章

  1. [官方软件] Easy Sysprep v4.3.29.602 【系统封装部署利器】(2016.01.22)--skyfree大神

    [官方软件] Easy Sysprep v4.3.29.602 [系统封装部署利器](2016.01.22) Skyfree 发表于 2016-1-22 13:55:55 https://www.it ...

  2. ok6410 u-boot-2012.04.01移植六完善MLC NAND支持

    继ok6410 u-boot-2012.04.01移植四.五后,开发板基本已支持MLC NAND,支持DM9000.但是通过NAND命令更新u-boot到NAND,还存在问题,需要根据u-boot的n ...

  3. ok6410 u-boot-2012.04.01移植七完善u-boot移植(u-boot移植结束)

    继ok6410 u-boot-2012.04.01移植六后,开发板已支持MLC NAND.DM9000等.但还需要完善比如环境变量.mtdpart分区.裁剪.制作补丁等.下面的工作就是完善移植的u-b ...

  4. ok6410 u-boot-2012.04.01移植五支持DM9000

    继ok6410 u-boot-2012.04.01移植四后,开发板基本已支持MLC NAND,但还有一些细节地方修改,这节增加DM9000支持,通过网卡tftp程序到内存,接着通过NAND命令写到NA ...

  5. ok6410 u-boot-2012.04.01移植二修改源码支持单板

    继ok6410 u-boot-2012.04.01移植一后修改代码,对ok6410单板初始化,主要包括时钟.串口.NAND.DDR等初始化.这些工作在以前的裸板程序都写了,直接拿来用.我觉得先写裸板程 ...

  6. 黑马_13 Spring Boot:01.spring boot 介绍&&02.spring boot 入门

    13 Spring Boot: 01.spring boot 介绍&&02.spring boot 入门 04.spring boot 配置文件 SpringBoot基础 1.1 原有 ...

  7. uboot-2012.04.01移植编译前准备

    一:准备移植1.从下面的官网下载uboot-2012.04.012.建立sourceinsight工程 a.解压并在E:\colin weidongshan\transplant_u-boot-201 ...

  8. Cheatsheet: 2016 01.01 ~ 01.31

    Mobile An Introduction to Cordova: Basics Web Angular 2 versus React: There Will Be Blood How to Bec ...

  9. spring boot学习01【搭建环境、创建第一个spring boot项目】

    1.给eclipse安装spring boot插件 Eclipse中安装Spring工具套件(STS): Help -> Eclipse Marketplace... 在Search标签或者Po ...

随机推荐

  1. Windows怎样共享文件夹给Virtualbox 里面的Ubuntu

    主要命令 1.  sudo mount -t vboxsf Share /media/sf_Share 2.   sudo adduser userid vboxsf

  2. matlab练习程序(随机直线采样)

    我只是感觉好玩,写了这样一段程序. 原理就是先随机生成两个点,然后根据这两个点画直线,最后在直线上的像素保留,没在直线上的像素丢弃就行了. 最后生成了一幅含有很多空洞的图像. 当然,对含有空洞的图像是 ...

  3. 1.windows下GIT 服务安装

    本章介绍简单在windows 安装git 服务方法.服务器端采用的是Bonobo Git Server,一款用ASP.NET MVC开发的Git源代码管理工具,界面简洁,基于Web方式配置,简单易用. ...

  4. thinkphp5设置403 404等http状态页面

    在thinkphp5中如何抛出异常状态码(比如401,403,404等),因为这些能极大的给用户以良好的体验. 因为在上线阶段,任何的系统错误信息都不能让浏览用户给看到,比如404(Not Found ...

  5. sql语句更新某字段内容中部分数据

    使用到的sql 语句的关键字就是replace, 如下图,把带有zhangjun 的值替换成 user 使用的sql语句就是 update 表名 set 字段名=replace(字段名,‘替换字符内容 ...

  6. 【洛谷2624】[HNOI2008] 明明的烦恼(Python+利用prufer序列结论求解)

    点此看题面 大致题意: 给你某些点的度数,其余点度数任意,让你求有多少种符合条件的无根树. \(prufer\)序列 一道弱化版的题目:[洛谷2290][HNOI2004] 树的计数. 这同样也是一道 ...

  7. 2018.11.7 关于将Web项目部署到阿里云服务器-5个步骤搞定

    将Eclipse导出的War包部署到阿里云服务器上,提供给移动端实时的访问 1. 先登录阿里云网站注册账号,选择服务器类型(我用的是 云服务器ECS), 如果你还是在读大学生可享受优惠价,最低好像是9 ...

  8. 用selenium爬动态网页

    0-安装 我用python2.7,用pip安装selenium即可,phantomjs到官网下载安装,也不难. 1-主要参考的几篇文章 Python爬虫利器四之PhantomJS的用法 Python爬 ...

  9. NodeJS学习日记--环境配置及项目初始化

    在node.js官网下载nodejs安装包 安装完成后打开控制台,输入 npm -version 如果正确显示npm版本则安装成功. 创建项目之前先要安装以下全局扩展模块 npm install -g ...

  10. 取火柴游戏||Nim博弈

    好久之前看的sg函数了 好像就记住一个nim博弈qwq 第一次啊看的时候很迷,现在感觉可以了qwq 首先我们来看一个其他的游戏.(以下游戏只有两个人参与,且足够聪明) 两个人在一张圆形的桌子上放等大的 ...