分享

PX4飞控学习与开发(六)-利用 VScode 修改源码_vscode编译px4

 netouch 2023-07-03 发布于北京

努力学习,珍惜时间;全力以赴,创造未来
克制欲望,摒除心魔;心向何处,往来圣贤
功崇惟志,业广惟勤;惟克果断,乃罔后艰
面临困难,切莫不安;由浅入深,抽丝剥茧
持之以恒,攻坚克难;绳锯木断,水滴石穿
一日三省,积累经验;博学笃志,刻苦钻研
劝君牢记,戒骄戒懒;一生勤勉,无愧世间

  1. 先将 Firmware源代码导入 VScode 中,具体步骤为:
  • 打开 VScode,进入软件主界面,如果进入的不是主界面,就按快捷键 Ctrl+Shift+N来进入主界面,如下图所示:
    在这里插入图片描述

    图1 VScode主界面
  • 点击界面中的 Add workspace folder, 选择 Firmware所在的文件夹,然后点击右
    下角的 Add即可添加固件代码。添加完了之后,就可以看到软件左栏有代码目录:
    在这里插入图片描述

    图2 选择目录
  1. 现在在代码中添加一个简单的应用程序(demo),主要步骤如下:
  • 第一步,在 VScode 左栏代码目录中找到目录:Firmware/src/examples/, 在该目录下新建一个子目录,可以命名为:my_example_app;
  • 第二步,在新建的目录下,新建一个c文件,可以命名为:my_example_app.c;
  • 第三步,打开新建的c文件,并填入以下代码:
    /****************504实验室************************* 
      Date:2020年9月3日
      File name:my_example_app.c
      Author:sjm
      说明:文件用于测试Pixhawk代码
      ********************************************************/
      #include <px4_posix.h>//包含了打印信息函数:PX4_INFO
      __EXPORT int my_example_app_main(int argc, char *argv[]);

      int my_example_app_main(int argc, char *argv[])
      {
          PX4_INFO("Hello Sky!");
          return OK;
      }

需要说明的是:以上代码是让系统控制台在调用 my_example_app指令时,打印信息 Hello Sky,控制台在 QGC 地面站中,后续会具体说明;此外,这些信息是在主函数命名的,主函数命名方式为 C文件的名称 + _main, 这样在控制台输入命令时,就可以从该入口进入函数。最后,文件开始的注释说明其实可以使用 Snippet 插件,这样一次设置好后,以后可以快捷调用。

  • 第四步,仍在该目录下,新建一个 txt文件,名为:CmakeLists.txt,里面写入以下代码:
   ######################504实验室##########
      #Date:2020年9月3日
      #File name:CmakeList.txt
      #Author:sjm
      #说明:文件用于测试Pixhawk代码的编译内容
      ##################504实验室################
      PX4_add_module(
          MODULE examples__my_example_app
          MAIN my_example_app
          STACK_MAIN 2000
          SRCS
              my_example_app.c
          DEPENDS
              platforms__common
          )

Cmakelist 文件用于编译,也是新建模块时必不可少的一个文件。

  1. 查看代码运行的效果
    如果想从仿真中查看的话,需要进入文件夹:Firmware/cmake/configs/, 并打开文件:posix_sitl_default.cmake, 添加下面一行代码:
examples/my_example_app

然后打开终端,进入Firmware文件夹,输入指令: make posix_sitl_default jmavsim
, 即打开仿真环境,过一会直接输入指令:my_example_app,即可看到终端窗口输出了
Hello Sky!, 如图3所示:
在这里插入图片描述


图3 jMAVSim仿真效果图
如果需要在飞控板中运行,则打开同目录下的文件`nuttx_px4fmu-v2_default. cmake`, 同样添加代码:
examples/my_example_app

编译下载代码到飞控板子上,然后连接飞控与计算机,打开 QGC 地面站,进入Analyse-->Mavlink Console, 这个 Console就是前面说的控制台,在控制台下先输入help, 可以看到可以启动的模块,然后再输入指令my_example_app, 可以看到上面同样输出了:

Hello Sky!

在这里插入图片描述


图4 控制台界面
  1. VScode 的一些使用技巧
  • Ctrl+Shift+L选中文件中所有同名变量;
  • 快速注释:先 Ctrl+K, 再Ctrl+C;
  • 快速取消注释:先Ctrl+K, 再Ctrl+U;
  • 撤回:Ctrl+Z;
  • 取消撤销:Ctrl+Y

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多