PX环境搭建编译px4_fmu-v2_default相关问题的解决方法

背景说明

笔者在ubuntu18.04下搭建PX环境时git clone的是较新版本的PX4-Autopilot链接在此.(而目前网上的教程基本是较老版本的Firmware,两者文件分布不相同,所以已有的方法不能直接地解决我们遇到的问题)笔者配置环境时走了不少弯路,最终是成功执行,编译成功。

make `px4_fmu-v2_default`

故在本文里分享可能对后来者有用的方法,一些笔者遇到的其他问题在网上找到了直接解决方法的在本文中不再赘述。

问题1

问题描述:

make px4_fmu-v2_default时报错信息类似如下:

CMake Error at cmake/px4 add_module.cmake:149 (add_library):
Cannot find source file:
devices/src/gps_helper.cpp
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
Call Stack (most recent call first):

解决:
该问题实际上三由于github存储部分代码时是通过链接到另一个模块完成(准确说法读者可自行查询),而这个链接到的模块的代码我们很可能clone不成功。类似这种问题,我们可以在PX4-Autopilot中手动下载对应的文件,再复制到我们的本地文件夹中。例如:
PX环境搭建编译px4_fmu-v2_default相关问题的解决方法_第1张图片笔者就是这里面的文件并没有成功clone,所以导致编译时找不到文件。手动下载这些缺少的文件到对应路径,便可解决这个问题。

问题2

问题描述:编译过程中,可能会出现内存溢出问题,例如:

region `flash' overflowed by 788 bytes

此时我们可以通过修改默认的Flash大小来完成。(也可以注释不用的模块,此方法本文不介绍。实际下载源码到飞控上时flash的大小是固定的,内置芯片有关)
修改的文件路径和老版不同,路径为

PX4-Autopilot/boards/px4/fmu-v2/nuttx-config/scripts/script.ld

(其中文件夹fmu-v2是因为笔者编译px4_fmu-v2_default,这里读者可根据自己需要找到对应的文件夹,例如fmu-v3等)
将script.ld文件的代码中的1008k改成一个较大的数即可,例如改成1608k。

flash (rx)   : ORIGIN = 0x08004000, LENGTH = 1008K

结语

本文方法是笔者根据前人经验摸索而来,主要是解决了PX4代码clone不完全但是执行clone 子模块时没有更新子模块,以及较新版本的代码文件分布与旧版变化较大的问题。欢迎各位同行指出本文存在的问题或与笔者进行探讨。

你可能感兴趣的:(PX4,学习笔记,python,github,linux,经验分享)