关于PX4系统移植的新的硬件平台一些尝试总结

最近尝试将PX4的firmware-v1.11.0移植到某stm32h7的飞控平台上(该飞控硬件,适配ardupilot和betaflight的固件,但不支持PX4,跟厂家沟通过,据说是PX4用户少?所以他们就没支持),在网上找了好久也没找到像样的参考自己,自己也是摸索尝试了好久,在经历了无数次失败后,终于算是初步移植成功。

现在写篇帖子把相关思路总结一下,算是抛砖引玉,也给需要进行相关工作的朋友一个参考。

PX4中官网有关于系统移植的简要说明,可以参考:http://docs.px4.io/master/zh/hardware/porting_guide.html

一、移植的思路

由于我对飞控硬件这块不太了解,所以选择站在巨人的肩膀上。

即:在PX4的firmware官方支持的硬件库中寻找与需要进行固件移植的目标硬件所用的主控芯片相同或相近的硬件,在其配置好的代码中根据自己自己的硬件配置进行修改,适配。

比如我的目标硬件使用的主控芯片是stm32h7, 官方支持的硬件库中同样使用该芯片的硬件有: cuav的nora和x7pro,cubepilot的cubeorange,px4的v6x等。这些板子的配置文件在firmware/boards文件夹中。

需要根据目标硬件的晶振、串口进行修改。

二、要修改的文件

PX4系统的移植主要是针对其实时操作系统nuttx的移植。

1.boards文件夹中文件的修改

1.1 board.h

1.2 defconfig

1.3 default.cmake

2.rcS文件的修改

三、如何判断是否移植成功