最近在调式px4,在代码里面使用PX4_INFO等函数然后连接上mavlink shell是看不到输出的,需要重新运行该模块,很不方便。
作为一个习惯使用打印来调试的菜鸡来说真的好烦。官方文档里面说可以使用dmesg -f &
输出后台打印的输出,但是在mavlinkshell中运行这个命令时报’没有命令’的错误,看到文档说有的板不支持dmesg
,于是去查看系统配置文件default.px4board
。
对比了几个板子后,发现使用的pixhawk2.4.8板子没有将dmesg包含进去。
于是加入下面这一行:
进行编译,报错:
搜索这个报错,对比其他板子,发现在板子的board_config.h
文件中没有定义这个BOARD_ENABLE_CONSOLE_BUFFER
,于是自己加了上去:
重新编译上传之后打开mavlink shell,运行 dmeg -f &
,发现可以用了,问题解决。
tips:
在代码中使用PX4_INFO或者mavlink_log_info函数即可输出到shell中