/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,电机输出等等

PX4的CMake解析相关推荐

  1. PX4从放弃到精通(六):PX4姿态控制代码解析

  2. Windows / Ubuntu操作系统下Pixhawk原生固件PX4的编译方法

    欢迎交流~ 个人 Gitter 交流平台,点击直达: 更新于2017.3.13 FAQ 本文说明针对 PX4 Firmware 1.6.0 问题 1: 找不到python jinja2模块 CMake ...

  3. 学习C++:C++进阶(三)CMake基础篇---用一个小型项目了解CMake及环境构建

    V1.1 于2022年7月15日第二次修改:添加了比较多的解释图,解读了各类库的CMakelist.txt文件 目录 第一部分 基础篇(Basics) 1.0 本部分主要学什么(Intro) 1.1 ...

  4. SRS4.0源码分析-CMake

    本文采用的 SRS 版本是 4.0-b8 , 下载地址:github <SRS4.0源码分析-调试环境搭建> 讲了 SRS 在 Clion 里面的调试,本文主要讲解 srs-4.0-b8\ ...

  5. cmake错误集锦:unkown arguments specified

    错误描述 工作中使用cmake的if语句时,出现一个错误: "STREQUAL" "x86_64" Unknown arguments specified 语句 ...

  6. 深入理解使用CMake编译 NDK 程序

    使用 CMake 进行Android NDK编译的原理 介绍 Android Studio 2.2 及以后的版本默认使用CMake进行 NDK 编译, 其中最吸引人的地方是,在开发NDK程序时可以进行 ...

  7. PX环境搭建编译px4_fmu-v2_default相关问题的解决方法

    背景说明 笔者在ubuntu18.04下搭建PX环境时git clone的是较新版本的PX4-Autopilot链接在此.(而目前网上的教程基本是较老版本的Firmware,两者文件分布不相同,所以已 ...

  8. 第一章 PX4程序编译过程解析

    版权声明:本文为博主原创文章,未经博主允许不得转载. 第一章 PX4程序编译过程解析 PX4是一款软硬件开源的项目,目的在于学习和研究.其中也有比较好的编程习惯,大家不妨可以学习一下国外牛人的编程习惯 ...

  9. px4代码解析(3)

    前言 在使用PX4飞控时,我们难免要对其进行二次开发,例如修改控制算法,添加新的传感器,这时需要在代码中定义属于自己的消息.本节主要分享一下如何在PX4代码中添加自己的消息 一.消息添加与配置 从代码 ...

最新文章

  1. 服务器反馈为空,反馈服务器端error的处理
  2. 只有10万元预算买畅销SUV自动车型您选谁?
  3. MySQL8.0.22解压安装教程
  4. DCMTK各模块说明
  5. c语言实验报告总结通用版,大学生实训心得体会(通用11篇)
  6. android上查看浏览器内核版本号,各种浏览器的userAgent及如何使用JS来检测游览器类型,或android是什么版本号...
  7. Redis高级之——redis-trib.rb命令详解
  8. mysql关于xsd数据集的论述
  9. Internet协议的安全性
  10. 秒杀活动的防刷限流技术
  11. 基于Altium Designer 09制作LOGO的方法
  12. Keras 处理 不平衡的数据的分类问题 imbalance data 或者 highly skewed data
  13. 白领学python_白的解释|白的意思|汉典“白”字的基本解释
  14. 电脑投屏LED大屏颜色偏色问题解决
  15. RAP2-DELOS 开源社区版本 (后端 API 服务器)
  16. 风火编程--python发邮件email
  17. client-identifier
  18. 许奔创新社-第28问:创新符合用进废退原则吗?
  19. Porter Stemmer详解版
  20. 鱼与熊掌不可兼得!VS调试时拒绝访问的原因探究

热门文章

  1. Docker的RUN流程和Docker原理、Docker的常用命令、其他命令
  2. WebDay06 jsonajax,网络编程回顾,idea常用快捷键 搜索案例 分页案例
  3. 报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题
  4. 操作无法完成 计算机名不正确,win10系统连接共享打印机时提示“操作无法完成,键入的打印机名不正确”的详细办法...
  5. Android百度地图之周边雷达
  6. 用华为拼音输入法组的两首诗
  7. ASP.NET动态创建控件之绝境求生第三页
  8. MySQL自动备份到本地数据库,服务器上的Mysql数据自动备份到本地
  9. Android MP3音频播放器 仿唱片机播放动画,仿网易云播放动画,旋转动画,MediaPlayer AudioManager
  10. 2016年中国微型计算机,2016年全国计算机一级考试试题带答案