微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > GNU ARM汇编--(十七)u-boot的makefile和mkconfig解读

GNU ARM汇编--(十七)u-boot的makefile和mkconfig解读

时间:11-26 来源:互联网 点击:

      1. IG_NAME="${1%_config}"
      2. ####################
      3. #CONFIG_NAME的值为smdk2410
      4. #########################
      5. echoconfig_
      6. echo${CONFIG_NAME}
      7. ["${BOARD_NAME}"]||BOARD_NAME="${1%_config}"
      8. echoboard
      9. echo${BOARD_NAME}
      10. ###########################################
      11. #如果BOARD_NAME在之前已经被设定了,就不做任何动作;如果为空,就设定为smdk2410.这里设定为smdk2410
      12. ############################################
      13. arch="$2"
      14. cpu="$3"
      15. if["$4"="-"];then
      16. board=${BOARD_NAME}
      17. else
      18. board="$4"
      19. fi
      20. ######################################################
      21. #设定arch变量的值为arm
      22. #cpu变量的值为arm920t
      23. #因为第四个变量为"-",所以board变量的值为smdk2410
      24. #######################################################
      25. [$#-gt4]&&["$5"!="-"]&&vendor="$5"
      26. [$#-gt5]&&["$6"!="-"]&&soc="$6"
      27. #############################################################
      28. #设定verdor变量的值为samsung
      29. #设定soc变量的值为s3c24x0
      30. #############################################################
      31. [$#-gt6]&&["$7"!="-"]&&{
      32. #checkifwehaveaboardconfignameintheoptionsfield
      33. #theoptionsfieldmavehaveaboardconfignameandalist
      34. #ofoptions,bothseparatedbyacolon(:);theoptionsare
      35. #separatedbycommas(,).
      36. #
      37. #Checkforboardname
      38. tmp="${7%:*}"
      39. if["$tmp"];then
      40. CONFIG_NAME="$tmp"
      41. fi
      42. #Checkifweonlyhaveacolon...
      43. if["${tmp}"!="$7"];then
      44. options=${7#*:}
      45. TARGETS="`echo${options}|seds:,::g`${TARGETS}"
      46. fi
      47. }
      48. #################################################
      49. #因为我们的变量个数就是6个,这一段不执行
      50. #################################################
      51. echo${ARCH}
      52. echo${arch}
      53. if["${ARCH}"-a"${ARCH}"!="${arch}"];then
      54. echo"Failed:$ARCH=${ARCH},shouldbe${arch}for${BOARD_NAME}"1>&2
      55. exit1
      56. fi
      57. ####################################################
      58. #ARCH是在顶层makefile中定义的,在此刻还是为空的。
      59. #如果ARCH已经有值了,那么就检测ARCH和arch是否匹配了.
      60. ####################################################
      61. if["$options"];then
      62. echo"Configuringfor${BOARD_NAME}-Board:${CONFIG_NAME},Options:${options}"
      63. else
      64. echo"Configuringfor${BOARD_NAME}board..."
      65. fi
      66. ###########################################################################
      67. #我们没有定义options变量,所以输出Configuringforsmdk2410board...
      68. ###########################################################################
      69. #
      70. #Createlinktoarchitecturespecificheaders
      71. #
      72. echo${SRCTREE}
      73. echo${OBJTREE}
      74. if["$SRCTREE"!="$OBJTREE"];then
      75. mkdir-p${OBJTREE}/include
      76. mkdir-p${OBJTREE}/include2
      77. cd${OBJTREE}/include2
      78. rm-fasm
      79. ln-s${SRCTREE}/arch/${arch}/include/asmasm
      80. LNPREFIX=${SRCTREE}/arch/${arch}/include/asm/
      81. cd../include
      82. mkdir-pasm
      83. else
      84. cd./include
      85. rm-fasm
      86. ln-s../arch/${arch}/include/asmasm
      87. fi
      88. #############################################################################
      89. #在makefile中我们已经知道SRCTREE和OBJTREE都是当前目录,所以这里执行else
      90. #进入./include目录,删除asm链接,并重新建立链接asm,指向arch/arm/include/asm
      91. #############################################################################
      92. rm-fasm/arch
      93. #########################################################################
      94. #删除include目录下的asm下的arch链接文件
      95. ########################################################################
      96. ss=
      97. echo${ss}
      98. if[-z"${ss}"];then
      99. echo"null"
      100. else
      101. echo"notnull"
      102. fi
      103. echo${LNPREFIX}
      104. if[-z"${soc}"];then
      105. ln-s${LNPREFIX}arch-${cpu}asm/arch
      106. else
      107. ln-s${LNPREFIX}arch-${soc}asm/arch
      108. fi
      109. ##########################################################
      110. #-z用来检测字符串是否为空,为空返回真
      111. #这里我们的soc不为空,执行else
      112. #将asm/arch链向arch-s3c24x0,看一下arch-s3c24x0目录,里面都是s3c24x0相关的头文件
      113. ##########################################################
      114. if["${arch}"="arm"];then
      115. rm-fasm/proc
      116. ln-s${LNPREFIX}proc-armvasm/proc
      117. fi
      118. ###########################################################
      119. #删除asm/proc链接文件
      120. #将asm/proc链向proc-armv目录,该目录下是四个头文件:domain.hprocessor.hptrace.hsystem.h
      121. ###########
  • Copyright © 2017-2020 微波EDA网 版权所有

    网站地图

    Top