当前位置:  技术问答>linux和unix

u-boot Makefile的一段话不是很能理解

    来源: 互联网  发布时间:2017-03-14

    本文导语:   $(obj)lib/asm-offsets.s: $(obj)include/autoconf.mk.dep    $(src)lib/asm-offsets.c   @mkdir -p $(obj)lib   $(CC) -DDO_DEPS_ONLY    $(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR))    -o $@ $(src)lib/asm-offsets.c -c -S 这是u-boot-2012.07版本的顶层M...

 $(obj)lib/asm-offsets.s: $(obj)include/autoconf.mk.dep 
  $(src)lib/asm-offsets.c
  @mkdir -p $(obj)lib
  $(CC) -DDO_DEPS_ONLY 
  $(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) 
  -o $@ $(src)lib/asm-offsets.c -c -S

这是u-boot-2012.07版本的顶层Makefile,根据GCC 参数解释 -DDO_DEPS_ONLY应该相当于#define DO_DEPS_ONLY "1"
而include/asm-offsets.h的内容为

#ifndef DO_DEPS_ONLY
#include 
/* #include  */

#endif

在编译的时候已经定义了宏DO_DEPS_ONLY,那么asm-offset.h就不会被包含了。 但是start.s又必须包含generated/generic-asm-offsets.h这个头文件,感觉很迷惑?
希望有人能解答

|
编译之后,会发现 uboot利用asm-offsets.c 生成了asm-offset.s。

顶层Makefile里面里有一项的是
generated/generic-asm-offsets.h :asm-offset.s
 当条件符合的时候,执行tool/scripts/make-asm-offsets 

则生成了generated/generic-asm-offsets.h

里面其实主要是定义了两个宏GENERATED_GBL_DATA_SIZE (gd)和 GENERATED_BD_INFO_SIZE(bd)的大小

是为了利用C语言的SIZEOF来取得这2个全局变量的大小 最后转成让汇编可以识别的语句

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • UBOOT编译完后生成的u-boot.img(注意不是u-boot.bin)是什么文件?如何解析它?
  • 编译u-boot时出现???libgcc.a uses hardware FP, whereas u-boot uses software FP
  • 关于U-boot的调试、、???
  • 如何设置u-boot变量ip地址?
  • 怎样利用u-boot烧写??
  • u-boot写进去后串口没输出?
  • 移植u-boot的问题
  • 100分请教u-boot.lds链接脚本的问题
  • u-boot移植问题。
  • 关于u-boot从nandflash启动 tftp下载的疑问
  • u-boot,内核,文件系统
  • U-boot启动问题、、????
  • 关于u-boot1.1.6移植到micro2440中的问题。
  • u-boot移植问题
  • U-BOOT得掌握到什么程序,用不用深入去学
  • u-boot 和 kernel 编译
  • minicom 传送文件u-boot.bin到目标板ok6410
  • 谁能讲下PowerPC + BDI2000 +GBD调试u-boot方法
  • 讲U-boot烧入板子的Flash中
  • s3c2440 u-boot地址问题
  • RED hat 下 arm-linux-gcc (2.95.3)编译 u-boot-1.1.6错误!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3