返回介绍

Advanced Topics - 外部模块

发布于 2020-07-27 14:09:26 字数 1932 浏览 1426 评论 0 收藏 0


translated_page: https://github.com/PX4/Devguide/blob/master/en/advanced/out_of_tree_modules.md

translated_sha: 95b39d747851dd01c1fe5d36b24e59ec865e323e

外部模块

本教程描述了向PX4构建中添加外部模块的可能性。

外部模块可以使用与内部模块相同的模块,并且可以通过$\mu$ORB与内部模块交互

使用

  • EXTERNAL_MODULES_LOCATION 需要指向一个与原生固件Firmware具有相同结构的目录(因此需包含一个称为src的目录)。
  • 有两种方法:将现有模块(如examples/px4_simple_app)复制到外部目录,或者直接创建一个新的模块 。
  • 重命名模块(包括CMakeLists.txt中的MODULE)或将其从现有的Firmware/cmake//config中移除。这是为了避免与内部模块发生冲突。
  • 添加一个文件$EXTERNAL_MODULES_LOCATION/CMakeLists.txt,其内容包括:
    1. set(config_module_list_external
    2. modules/<new_module>
    3. PARENT_SCOPE
    4. )
  • 添加一行 EXTERNALmodules/<new_module>/CMakeLists.txt下的px4_add_module函数中, 例如像这样:
  1. px4_add_module(
  2. MODULE modules__test_app
  3. MAIN test_app
  4. STACK_MAIN 2000
  5. SRCS
  6. px4_simple_app.c
  7. DEPENDS
  8. platforms__common
  9. EXTERNAL
  10. )
  • 执行 make posix EXTERNAL_MODULES_LOCATION=<path>。可以使用任何其他的构建目标,但是构建目录必须是不存在的。如果它已经存在,你也可以在build文件夹中设置cmake变量。对于以后要增加的构建,就不需要再指定EXTERNAL_MODULES_LOCATION了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文