px4_add_board.cmake文件解读

该博客详细介绍了飞控板的构建过程,包括添加飞控板模块的函数,解析参数,设置编译选项,如平台、架构、驱动、模块等。同时,涉及到ROMFS的配置,端口设置,以及加密和链接器前缀等相关配置。此外,还涵盖了如何处理受限的闪存和内存情况,以及测试和以太网选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面是添加飞控板模块函数

function(px4_add_board)
#这里是一个模板,在各个飞控板编译的defluat文件里面可以看到类似的模块
	px4_parse_function_args(
		NAME px4_add_board
		ONE_VALUE
			PLATFORM
			TOOLCHAIN
			ARCHITECTURE
			ROMFSROOT
			IO
			UAVCAN_INTERFACES
			UAVCAN_TIMER_OVERRIDE
			LINKER_PREFIX
			CRYPTO
			KEYSTORE
		MULTI_VALUE
			DRIVERS
			MODULES
			SYSTEMCMDS
			EXAMPLES
			SERIAL_PORTS
			UAVCAN_PERIPHERALS
		OPTIONS
			BUILD_BOOTLOADER
			CONSTRAINED_FLASH
			NO_HELP
			CONSTRAINED_MEMORY
			EXTERNAL_METADATA
			TESTING
			ETHERNET
		REQUIRED
			PLATFORM
		ARGN ${ARGN})
    # 将PX4_BOARD_DIR设置成CMAKE_CURRENT_LIST_DIR
	set(PX4_BOARD_DIR ${CMAKE_CURRENT_LIST_DIR} CACHE STRING "PX4 board directory" FORCE)
	include_directories(${PX4_BOARD_DIR}/src)

	# get the VENDOR & MODEL from the caller's directory names
	#获取CMAKE_CURRENT_LIST_FILE目录赋值给base_dir,获取base_dir完整名称分别赋值给MODEL和VENDOR
	get_filename_component(base_dir "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY)
	get_filename_component(MODEL "${base_dir}" NAME)
	get_filename_component(base_dir "${base_dir}" DIRECTORY)
	get_filename_component(VENDOR "${base_dir}" NAME)
	#设置编译的飞控版型号
	set(PX4_BOARD ${VENDOR}_${MODEL} CACHE STRING "PX4 board" FORCE)

	# board name is uppercase with no underscores when used as a define
	#设置字符串大写
	string(TOUPPER ${PX4_BOARD} PX4_BOARD_NAME)
	#用“-”代替飞控版名字中下划线
	string(REPLACE "-" "_" PX4_BOARD_NAME ${PX4_BOARD_NAME})
	#更新PX4_BOARD_NAME名字
	set(PX4_BOARD_NAME ${PX4_BOARD_NAME} CACHE STRING "PX4 board define" FORCE)

	set(PX4_BOARD_VENDOR ${VENDOR} CACHE STRING "PX4 board vendor" FORCE)
	set(PX4_BOARD_MODEL ${MODEL} CACHE STRING "PX4 board model"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值