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

tech2022-09-14  106

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

先将 Firmware源代码导入 VScode 中,具体步骤为: 打开 VScode,进入软件主界面,如果进入的不是主界面,就按快捷键 Ctrl+Shift+N来进入主界面,如下图所示: 图1 VScode主界面 点击界面中的 Add workspace folder, 选择 Firmware所在的文件夹,然后点击右 下角的 Add即可添加固件代码。添加完了之后,就可以看到软件左栏有代码目录: 图2 选择目录 现在在代码中添加一个简单的应用程序(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 文件用于编译,也是新建模块时必不可少的一个文件。

查看代码运行的效果 如果想从仿真中查看的话,需要进入文件夹: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 控制台界面

VScode 的一些使用技巧 Ctrl+Shift+L选中文件中所有同名变量;快速注释:先 Ctrl+K, 再Ctrl+C;快速取消注释:先Ctrl+K, 再Ctrl+U;撤回:Ctrl+Z;取消撤销:Ctrl+Y
最新回复(0)