zoukankan      html  css  js  c++  java
  • 新版u-boot移植到s3c2440开发板(一)--建立单板

    由于没有系统的学习shell,所以Makefile大多数看不懂,一个小小的细节,把我难住了几天。现在开始分享我的操作过程

    本文所有linux下的操作是root用户,如果你使用普通用户,请在命令前加上 $ sudo xxxx

    所有Linux命令都是加粗,需要加入的文本是斜体

    /*

    *  2017年5月2日12:59:41

    *  Ubuntu 16.04

    *  u-boot-2016.05.tar.bz2

    *  arm-linux-gcc-4.4.3.tar.gz

    */

    准备工作

    1.下载u-boot,我是用的u-boot-2016.05.tar.bz2,可以自己去官网下载

    下载地址, ftp://ftp.denx.de/pub/u-boot/

    2.下载arm-linux-gcc,我使用的是友善之臂提供的arm-linux-gcc-4.4.3.tar.gz ,网上很多,注意低版本的arm-linux-gcc可能会出错

    3.安装工具链

      (1).解压arm-linux-gcc-4.4.3.tar.gz 

          #tar xjf arm-linux-gcc-4.4.3.tar.gz  -C /      /* 安装在根目录下面 */

      (2).配置环境变量

        1.临时 export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin

        2,永久 

            #cd      切换到root用户目录 

            #vi .bashrc  

            在文件末尾加入:export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin

           #source .bashrc     使配置生效

            测试: #arm-linux-gcc -v   会输出你的GCC 版本号

    4.解压u-boot

      #tar xjf u-boot-2016.05.tar.bz2  //解压在本目录下

      #cd u-boot-2016.05                     //进入u-boot目录

    5.下载辅助工具(可以忽略)

      dd  tree   bison flex build-essential manpages-dev

    前面准备工作做好之后,现在进入我们的正题,开始添加单板

    1. 进入uboot目录下

    首先我们打开doc目录,里面是u-boot的官方文档

    打开READE.kconfig,找到下面这段话

    Tips to add/remove boards
    -------------------------

    When adding a new board, the following steps are generally needed:

    [1] Add a header file include/configs/<target>.h
    [2] Make sure to define necessary CONFIG_SYS_* in Kconfig:
      Define CONFIG_SYS_CPU="cpu" to compile arch/<arch>/cpu/<cpu>
      Define CONFIG_SYS_SOC="soc" to compile arch/<arch>/cpu/<cpu>/<soc>
      Define CONFIG_SYS_VENDOR="vendor" to compile board/<vendor>/common/*and board/<vendor>/<board>/*
      Define CONFIG_SYS_BOARD="board" to compile board/<board>/*(or board/<vendor>/<board>/* if CONFIG_SYS_VENDOR is defined)
      Define CONFIG_SYS_CONFIG_NAME="target" to include include/configs/<target>.h
    [3] Add a new entry to the board select menu in Kconfig.
      The board select menu is located in arch/<arch>/Kconfig or arch/<arch>/*/Kconfig.
    [4] Add a MAINTAINERS file
      It is generally placed at board/<board>/MAINTAINERS or board/<vendor>/<board>/MAINTAINERS
    [5] Add configs/<target>_defconfig

    这里是官方给的建议

    因为u-boot里有2410的板子,所以我们在它的基础上添加单板

    2 . 进入 /board/samsung目录,复制smadk2410文件夹

      #cp -rf smdk2410/ smdk2440/

      #cd smdk2440/

      #vi Kconfig      //添加单板信息,修改如下,至于vi的使用请自行百度

      # vi MAINTAINERS    //添加路径

      # mv smdk2410.c smdk2440.c    //修改名称

      # vi Makefile

    board 目录修改完毕

     3.回到u-boot目录下,进入arch/arm/目录下

      # cd arch/arm/

      # vi Kconfig    //添加自己的单板信息

    修改完上面后,一定要修改文件末尾,下面的路径,我就是因为这个细节烦恼几天,找不到错误

    你去查看 .config, 发现没有单板信息,或者单板信息是错的

     4.现在增加头文件

      #cd include/configs

      # cp smdk2410.h smdk2440.h

      #vi smdk2440.h  //修改头文件,如下

     

    5.添加默认的配置文件

      # cd configs/ 

      # cp smdk2410_defconfig smdk2440_defconfig

      # vi smdk2440_defconfig

    6.现在开始编译

      # make smdk2440_config

      # make    

    出现错误,如下,这是没有指定交叉工具链的原因,如有其他错误,请检查是否操作失误,或者工具链版本与u-boot不匹配

      #vi Makefile

    现在,在执行make命令,就会一直编译生成u-boot。

    总结:

      本文修改部分

    1.  board/samsung/smdk2440/     添加单板目录,并修改相关文件

    2.  arch/arm/Kconfig           添加与单板相关的配置

    3.  include/configs/smdk2440.h     添加头文件

    4.  configs/smdk2440_defconfig    添加默认的配置文件

    5.  Makefile(顶层目录下的)        指定交叉工具链

     如果本文有不足或者错误的地方,请在评论区写出来,谢谢!

     看完之后,如果感觉不错,请点个赞,谢谢!

     本文允许转载,但必须贴出原始地址,谢谢!

  • 相关阅读:
    CSUFT 1002 Robot Navigation
    CSUFT 1003 All Your Base
    Uva 1599 最佳路径
    Uva 10129 单词
    欧拉回路
    Uva 10305 给任务排序
    uva 816 Abbott的复仇
    Uva 1103 古代象形文字
    Uva 10118 免费糖果
    Uva 725 除法
  • 原文地址:https://www.cnblogs.com/yddeboke/p/6795764.html
Copyright © 2011-2022 走看看