--------------------------PX4最小应用程序官方教程------------------------------
----------鸣谢----------PX4编写最小应用程序,细致入微的讲解------------------------------
新建文件夹
路径为PX4-Autopilot/src/modules/my_can_test.
在该文件夹下创建CmakeLists.txt、Kconfig、my_can_test.c三个文件
文件内容实现
①CmakeLists.txt
应注意应用的CMakeLists.txt应按照PX4的格式,可参考 px4_add_module()
px4_add_module(
MODULE modules__my_can_test
MAIN my_can_test
SRCS
my_can_test.c
DEPENDS
)
②Kconfig
menuconfig MODULES_MY_CAN_TEST
bool "my_can_test"
default n
---help---
Enable support for my_can_test
③my_can_test.c
想编写CAN的应用程序,需要参考plateform/nuttx/Nuttx/apps/examples/can/can_main.c
简单的测试如下:
#include <px4_platform_common/log.h>
__EXPORT int my_can_test_main(int argc, char *argv[]); //声明为应用程序入口
int my_can_test_main(int argc, char *argv[])
{
PX4_INFO("Hello My_CAN!");
return OK;
}
添加配置参数
完成应用程序编写后,要确保该应用程序会被编译到,应修改对应平台的配置文件,这里源代码所有的default.cmake文件都更新成了default.px4board文件,但是开发文档的没有改
前往路径:board/px4/fum-v*/,打开default.px4board文件,在相应的模块下面添加
CONFIG_MODULES_MY_CAN_TEST=y
细心的朋友会发现所有的文件名和函数名基本保持一致,这会减少编译出错的风险
编译验证
USB连接PX4控制器,编译下载,并打开mavlink console
$ make px4_fmu-v3_default upload
...
...
...
Erase : [====================] 100.0%
Program: [====================] 100.0%
Verify : [====================] 100.0%
Rebooting. Elapsed Time 35.222
$ ./Tools/mavlink_shell.py /dev/ttyACM0
Connecting to MAVLINK...
NuttShell (NSH) NuttX-10.2.0
nsh> help #查看是否编译到
nsh> my _can_test #运行观察
INFO [my_can_test] Hello My_CAN!
至此完成最简单的应用程序编写,可以进行发挥实现自定义功能