新版u-boot移植到s3c2440開發板(一)--創建單板

因爲沒有系統的學習shell,因此Makefile大多數看不懂,一個小小的細節,把我難住了幾天。如今開始分享個人操做過程linux

本文全部linux下的操做是root用戶,若是你使用普通用戶,請在命令前加上 $ sudo xxxxshell

全部Linux命令都是加粗,須要加入的文本是斜體bash

/*工具

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

*  Ubuntu 16.04測試

*  u-boot-2016.05.tar.bz2flex

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

*/blog

準備工做ip

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(頂層目錄下的)        指定交叉工具鏈

 

 

 若是本文有不足或者錯誤的地方,請在評論區寫出來,謝謝!

 看完以後,若是感受不錯,請點個贊,謝謝!

 本文容許轉載,但必須貼出原始地址,謝謝!

相關文章
相關標籤/搜索