zoukankan      html  css  js  c++  java
  • u-boot

    1.解压好u-boot后,打开uboot根目录的README文件,在software configuration 里有写明,如果要针对某个单板进行配置,需要执行:make <board_name>_config

    其中uboot支持的board_name可以在根目录的include/configs/下查看。

    2.makefile

    2.1 uboot version确定 (Makefile 24-29行) U_BOOT_VERSION “1.3.4xyz”
    1)uboot版本号分为4个级别:
    VERSION : 主板号
    PATCHLEVEL : 次版本号
    SUBLEVEL : 再次版本号
    EXTRAVERSION : 另外附加的版本信息
    这4个用 . 分隔开共同构成了最终的版本号。
    2)makefile中版本号最终生成一个变量U_BOOT_VERSION,这个变量记录了Makefile中配置的版本号。 Include/version_autogenerated.h文件是编译过程中自动生成的一个文件,所有源目录中没有,但是编译过后的uboot中就有了。它里面的内容是一个宏定义,宏定义的值就是我们在Makefile中配置的uboot版本号。
    3)验证方法:自己修改主makefile中几个version有关的变量,然后编译uboot,然后烧录到SD卡中,从SD卡中启动,然后去看启动时uboot打印出来的版本信息,看看变化是不是和自己的分析一致。

    3.查看交叉编译链版本:arm-linux-gcc -v

    4.查看电脑主机cpu版本号:uname -m

    5.Autoconfig.mk是配置过程中产生的,用来指导整个uboot的编译过程

    配置过程需要的原材料在include/configs/xxxxx.h文件中,.h文件中有许多宏定义即CONFIG_,这些宏定义是我们移植uboot的关键所在

    TQ210.h文件会被用来生成一个autoconfig.mk文件,这个文件会被主Makefile引入,指导整个编译过程,这里面的这些宏定义会影响我们对uboot中大部分.c文件中一些条件编译的选择。从而实现最终的可移植性。

    6.链接器脚本为u-boot-nand.lds则说明已经定义了CONFIG_NAND_U_BOOT,若为u-boot.lds则说明没有定义

    7.mkconfig文件

    [ "${BOARD_NAME}" ] || BOARD_NAME="$1"

    [ $# -lt 4 ] && exit 1    //
    [ $# -gt 6 ] && exit 1

    uboot配置过程详解1
    1. Mkconfig脚本的6个参数。TQ210_config : unconfig
    $(MKCONFIG) $(@:_config=) arm s5pv210 TQ210 EmbedSky s5pv210
    TQ210_config里面的_config部分用空替换,得到:TQ210,这就是第一个参数,所以:
    $1: TQ210
    $2: arm
    $3: s5pv210
    $4: TQ210
    $5: EmbedSky
    $6: s5pv210
    所以$# = 6
    3. 第23行,其实就是看BOARD_NAME变量是否有值,没有就赋值。结果BOARD_NAME=TQ210
    4. 第25行,如果$#小于4,则 exit 1 (mkconfig脚本返回1)。
    5. 第26行,如果$#大于6,则 exit 1
    所以:mkconfig脚本传参只能是4,5,6.其他值都不行。

    8.移植时如需更改时钟,则只需在tq210.h修改即可

  • 相关阅读:
    JavaScript模态对话框类
    事件模块的演变(1)
    html5中可通过document.head获取head元素
    How to search for just a specific file type in Visual Studio code?
    What do 'lazy' and 'greedy' mean in the context of regular expressions?
    正则非获取匹配 Lookahead and Lookbehind ZeroLength Assertions
    regex length 正则长度问题
    Inversion of Control vs Dependency Injection
    How to return View with QueryString in ASP.NET MVC 2?
    今天才发现Google Reader
  • 原文地址:https://www.cnblogs.com/moaiwa/p/8207429.html
Copyright © 2011-2022 走看看