PX4的CMake解析

2023-05-16

/home/yanlei/src/Firmware/cmake/common 中定义了其他CMakeLists.txt中所使用的一些函数
使用最多的函数px4_add_module在px4_base.cmake中

//ekf2的CMakeLists.txt
px4_add_module(
    MODULE modules__ekf2
    MAIN ekf2
    COMPILE_FLAGS
    STACK_MAIN 2500        //任务堆栈大小
    STACK_MAX 4000
    SRCS
        ekf2_main.cpp  //模块函数的起点
    DEPENDS
        git_ecl
        ecl_EKF
        ecl_geo
        perf
    )

多旋翼姿态控制的CMakeLists.txt
px4_add_module(
    MODULE modules__mc_att_control
    MAIN mc_att_control
    STACK_MAIN 1200
    STACK_MAX 3500
    COMPILE_FLAGS
    SRCS
        mc_att_control_main.cpp
    DEPENDS
        circuit_breaker
        conversion
        mathlib
    )

最终会在/home/yanlei/src/Firmware/  build  /nuttx_px4fmu-v2_default/src/modules   build文件夹中每个模块对应的文件夹下生产.a静态库文件用于后期程序链接

px4_base.cmake函数说明:
px4_parse_function_args:解析函数的一些参数和flag,用于其他cmake函数调用。
px4_join:没看懂,函数结合在一起?
px4_add_common_flags 设置一些编译参数、编译对象(飞控板、软件仿真......)还有C C++的一些编译参数,最重要的是包含了include_directories
其他函数看字面意思就能理解

px4_git.cmake函数说明:
px4_add_git_submodule:添加git子模块,这应该就是为什么可以在编译的过程中会自动下载nuttx、mavlink相关模块的实现吧

px4_metadata.cmake函数说明:
px4_generate_airframes_xml:生成机型对应的XML文件,调用了python脚本px_process_airframes.py去处理xml文件,在px4_generate_airframes_xml函数中给python脚本传入了一些参数,px_process_airframes.py脚本中import了一些python库,应该是用于解析init.d文件夹下的机型参数用的,最终生成的airframe.xml文件在/home/yanlei/src/Firmware/build/nuttx_px4fmu-v2_default文件夹下,airframe.xml定义了机型的id,电机输出等等

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PX4的CMake解析 的相关文章

随机推荐

  • python实现爬取网页将特定信息存入excel

    python爬虫爬取网页将特定信息存入excel 背景 1 最近遇到一个需要进行数据分析的项目 xff0c 主要是将网页上需要的信息 xff0c 进行归拢 xff0c 分析 当信息量少的时候 xff0c 采用复制粘贴 excel分析还比较快
  • ESP32实验-自建web服务器配网01

    目标 通过esp32自建web服务器实现配网 具体来说 xff1a 1 esp32上电 xff0c 手机 电脑 平板连上esp32的wifi 2 用浏览器访问esp32的网址esp32默认是192 168 4 1 3 在web页面中输入需要
  • ESP实验02-读取DS1307&eerom34c32

    1 模块介绍 本实验主要用到两个模块 esp32 tinyRTC 模块的图片如下所示 xff1a esp32模块型号为ESP32Devkitc v4 xff0c 是启明云端官方的开发板 与乐鑫官方的完全一致 xff0c 引脚顺序 xff0c
  • stm32f407 RTC不更新问题排查

    1 问题 在做stm32f407rtc实验时 xff0c 代码是用cubemx生成的 xff0c 通过串口打印出时间值 xff0c 1s打印一次 但是结果与料想中的不一致 发现打印出来的值一直不更新 按下复位键 xff0c 后时间会更新一次
  • GD32 can发送报no mailbox 故障

    1 问题描述 在使用GD32can通信时 xff0c 发现如果can线断开了 xff0c 再把can线连上 xff0c 用can分析仪监测不到总线数据 xff0c 调试后发现can发送没有成功 xff0c 通过串口打印出错误 xff0c 显
  • windows配置c语言编译系统-wingw gcc cmake

    前言 笔者在做嵌入式mcu编程的时候 xff0c 有时候想要验证一下部分代码的功能 xff0c 需要先编译成bin文件 xff0c 然后烧录到mcu内执行 每次编译烧录运行耗时较久 于是想到是不是可以在电脑上配置一个c的编译环境 xff0c
  • MacOS Python安装which is required to install pyproject.toml-based projects解决办法

    问题 使用pip安装的时候 xff0c 很多时候报错 xff1a which is required to install pyproject toml based project 使用pip instll pyproject toml无法
  • 自动以版本号命名keil生成的bin文件

    0 前言 在做项目中一直遇到一个小问题 一直也没管 xff0c 最近花了点时间处理了 xff0c 效果还不错 问题是这样的 xff1a 每次编译后的生成的bin文件需要给客户 xff0c 烧录到设备里进行更新 每次生成的bin文件都是固定的
  • protobuf编码格式解析

    示例 假如定义一个如下的protobuf类型 message Person span class token punctuation span required string user name span class token opera
  • 初探STM32掉电复位PDR

    STM32F407 144脚封装的第143脚PDR xff0c 一直没有关注过 xff0c 板子上是直接对其悬空处理 xff0c 悬空到底对系统有没有什么影响 xff0c 查看了STM32F4系列的技术手册也没有发祥有相关说明 只是说明了P
  • keil中自定义输出信息到编译窗口

    写程序的过程中 xff0c 会有不少的条件编译命令 xff0c 但是条件编译过多会导致忘记了定义那些条件 xff0c 排查起来也非常麻烦 xff0c 有没有什么好的方法来查找是否是否有该定义呢 xff1f 答案是有的 xff1a 那就 wa
  • STM32F4 FPU简单设置

    第一步 xff1a 在stm32f4xx h中定义宏 FPU PRESENT FPU USED span class hljs preprocessor span class hljs keyword define span CM4 REV
  • PX4飞控bootloader编译

    以前在使用pix4中 xff0c bootloader是在出厂的时候默认烧写好的 xff0c 我们直接可以通过USB更新固件 xff0c 但是要做二次开发过程中 xff0c 我们需要编译代码并进行烧写 xff0c 我们以前用的编译命令是默认
  • 如何转行游戏行业及我眼中的理想游戏开发团队

    前置内容 xff1a 很久没有写文章啦 xff0c 今天就来继续和大家聊一聊关于游戏制作的一些东西 今天主要聊两个方面 xff0c 一个是其他行业转游戏行业的一些注意事项以及需要具备的东西 xff1b 第二是和大家聊一聊我心目中理想的游戏开
  • W: GPG error: ...the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8

    在debian10上执行命令 xff1a sudo apt get update 更新清华源时 xff0c 报错如下 xff1a Cannot initiate the connection to mirrors tuna tsinghua
  • 四旋翼无人机的动力学模型

    1 四旋翼无人机UAV unmanned aerial vehicles 简介 四旋翼无人机是一种能够垂直起降的非共轴的多旋翼飞行器 xff0c 同一对角线上的一组旋翼采用逆时针旋转 xff0c 另一组旋翼采用顺时针旋转 xff0c 相互抵
  • 植保无人机PID调参经验

    1 P I D输出要限幅 2 P D是相对的 xff0c 如果系统震荡 xff0c 降低P或者加大D xff0c 在不震荡的条件下 xff0c 尽量让P大 3 I是可以不用的 xff0c 基本上PD控制器就可以控地很稳了 xff0c 如果感
  • 测试环境建设原则和管理实践

    1 问题 测试环境是指为了完成软件测试工作所必需的计算机硬件 软件 网络设备 历史数据等的总称 即够支持完成测试工作所需要的软件和硬件 测试环境是测试活动的基础 正确模拟生产环境 稳定支持测试活动是测试环境的基本要求 稳定可控的测试环境能够
  • ESP8266 WIFI数传 Pixhaw折腾笔记

    最近3DR数传老是断线 xff0c 重连 xff0c 数据刷不出来 xff0c 折腾了几天数传问题 xff0c 总结如下 xff1a 3DR RADIO xff1a 淘宝100多一对的 xff0c 别的无线数传也可以 xff0c 但一定保证
  • PX4的CMake解析

    home yanlei src Firmware cmake common 中定义了其他CMakeLists txt中所使用的一些函数 使用最多的函数px4 add module在px4 base cmake中 ekf2的CMakeList