编译

编译流程概述

XWOS使用自己的 构建系统 进行构建, 构建是从 电路板目录 下执行命令 make 开始的,以 $(XWOS_BRD_DIR) 代表此目录。 编译流程简单说就是将各个模块单独编译为 静态库.a ,然后再链接为 ELF文件

  • arch.a : 由 arch.mk 描述如何编译;
  • cpu.a : 由 cpu.mk 描述如何编译;
  • soc.a : 由 soc.mk 描述如何编译;
  • brd.a : 由 brd.mk 描述如何编译;
  • xwos.a : 由 xwos.mk 描述如何编译;
  • 其他模块均由 xwmo.mk 描述如何编译,称为 构建系统 ,包括:
    • xwcd :驱动模块
    • xwmd :中间件模块
    • xwem :第三方软件模块
    • xwam :示例与应用模块
    • $(XWOS_BRD_DIR)/bm :电路板模块
      • $(XWOS_BRD_DIR)电路板目录
    • $(XWOS_OEM_DIR) :OEM模块
      • XWOS_OEM_DIR 由配置文件 $(XWOS_BRD_DIR)/cfg/project.mk 中的 XWCFG_OEMPATH 进行配置 。

输出文件路径

编译的输出,全部位于 $(WKSPC) 目录,默认值在 $(XWOS_BRD_DIR)/makefile 定义,为 wkspc

这个变量可以在编译前,由用户设置,例如:

export WKSPC=../../../Debug

编译后,将自动创建目录 $(XWOS_BRD_DIR)/../../../Debug ,并将所有编译的过程文件放入其中。

查看编译过程

用户使用 make V=1 进行编译时可以查看完整的编译过程。 也可使用环境变量:

export V=1
make

设置优化等级

用户使用 make O=1 进行编译时可以设置编译时的优化等级为 1。 也可使用环境变量:

export O=0 # 不使用任何优化,最有利于调试
make

默认情况下,优化等级为 g