聲明:本文由個人學習過程中整理而成,轉載請註明出處。
1、uboot/mkconfig
(1)uboot是一個多CPU多架構的統一bootloader,
爲了完成針對的特定目標板,目標架構的編譯,需要給Makefile指明哪些文件需要編譯,相當與從整體上控制
需要編譯的cpu,單板等。
2、主Makefile傳遞的6個參數
$1:x210_sd
$2:arm
$3: s5pc11x
$4:x210
$5: samsumg
$6:s5pc110
解析傳遞的參數
while [ $# -gt 0 ] ; do
case "$1" in
--) shift ; break ;;
-a) shift ; APPEND=yes ;;
-n) shift ; BOARD_NAME="${1%%_config}" ; shift ;;
*) break ;;
esac
done
[ "${BOARD_NAME}" ] || BOARD_NAME="$1"
[ $# -lt 4 ] && exit 1
[ $# -gt 6 ] && exit 1
echo "Configuring for ${BOARD_NAME} board..."
3、創建相應文件夾的符號鏈接
在uboot/include文件夾下建立相應的文件夾軟連接
第一個:include目錄下創建asm文件,指向asm-arm。
第二個:include目錄下創建regs.h文件,指向include/s5pc110.h
第三個:inlcude/asm-arm下創建一個arch文件,指向include/asm-arm/arch-s5pc11x
第四個:include/asm-arm下創建一個proc文件,指向include/asm-arm/proc-armv
一共創建了4個符號鏈接。這4個符號鏈接在uboot源代碼中頭文件包含時用到。
創建符號鏈接的目的是讓uboot具有可移植性。
4、創建include/config.mk文件
echo "ARCH = $2" > config.mk
echo "CPU = $3" >> config.mk
echo "BOARD = $4" >> config.mk
[ "$5" ] && [ "$5" != "NULL" ] && echo "VENDOR = $5" >> config.mk
[ "$6" ] && [ "$6" != "NULL" ] && echo "SOC = $6" >> config.mk
5、創建include/config.h文件
config.h文件裏面的內容就一行#include<configs/x210_sd.h>,這個頭文件是我們移植x210開發板時,對開發板的宏定義配置文件。是我們移植x210時最主要的文件。
if [ "$APPEND" = "yes" ]# Append to existing config file
then
echo >> config.h
else
> config.h# Create new config file
fi
echo "/* Automatically generated - do not edit */" >>config.h
echo "#include <configs/$1.h>" >>config.h
exit 0
參考資料:《uboot和系統移植---朱有鵬老師》