PX4Firmware中的.mk的调用关系和作用

PX4 Build System详解:构建无人机硬件与软件配置
本文深入解析PX4构建系统,详细介绍了如何使用makefile配置无人机的硬件与软件,涵盖从Nuttx框架搭建到POSIX框架搭建的全过程,包括firmware.mk、module.mk等关键makefile的作用及使用方法。

PX4 Build System


PX4运行框架和PX4板子的软件、硬件的配置
PX4 搭建系统的makefile支持基于Nuttx配置的Nuttx档案,并且管理全部PX4框架的配置


firmware.mk:
对一个特定框架配置的管理(See the comments at the top of this file for detailed documentation.)
搭建模块,在命令列表和文件系统
该makefile可以被外部搭建的系统直接使用,通过配置,它可以在PX4资源树的内部和外部进行编译。当使用这种模式的时候,至少BOARD, MODULES 和CONFIG_FILE要被设置。

firmware_nuttx.mk:
被firmware.mk调用,用于搭建基于NuttX的框架

firmware_posix.mk:
被firmware.mk调用,用于搭建基于POSIX(non-ROS)的框架

module.mk
被firmware.mk调用,用于搭建各个独立的模块(See the comments at the top of this file for detailed documentation.)
除了被firmware.mk调用,正常情况下不使用它

nuttx.mk
被顶层的makefile文件调用去搭建或者下降NuttX文档(如果PX4_TARGET_OS被设置为"nuttx")。

posix.mk
被顶层的makefile文件调用去设置POSIX参数(如果PX4_TARGET_OS被设置为"posix")

upload.mk
被顶层的makefile文件调用去确定board类型。我们也可以通过外部搭建的系统去使用它。(只能用NuttX目标)

setup.mk
提供公共路径和工具定义。实现与主机系统的兼容的技巧。设置PX4_TARGET_OS.

board_<boardname>.mk
boardname的板子的配置。通常设置CONFIG_ARCH然后再包括对于该板子的工具链的定义。

config_<boardname>_<configname>.mk
所需的板子类型的特殊配置所需的参数。板子的名字来源于文件名。让MODULES模块去选择将被用于配置的源模块,也可以让ROMFS_ROOT去搭建一个ROMFS(文件系统),BUILTIN_COMMAND(内置命令)去包括非模块的命令。(e.g. 来自于NuttX的命令)。


toolchain_<toolchainname>.mk
将宏定义用于编译和链接源文件。采用EXTERADEFINES将额外的预处理符号的定义,EXTRACFLAGS,EXTRACXXFLAGS,EXTRAAFLAGS 和EXTRALDFLAGS 分别传入到C编译器,C++编译器,会变编译器和链接器中。

定义COMPILE, COMPILEXX, ASSEMBLE, PRELINK, ARCHIVE and LINK 的宏定义用于其他的系统搭建中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值