最近在调式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中
在调试 PX4 时遇到使用 PX4_INFO 函数无法在 mavlinkshell 中看到输出的问题。通过查阅官方文档尝试使用 dmesg -f& 命令,但在 pixhawk2.4.8 板子上出现错误。经检查发现 BOARD_ENABLE_CONSOLE_BUFFER 未定义,添加后重新编译解决了问题,现在可以在 mavlinkshell 中正常查看输出。

2115

被折叠的 条评论
为什么被折叠?



