物唯仓库-PX4固件-编译说明
本文编译环境:win11,wsl2,ubuntu22.04 1.1说明 物唯科技后续将会在PX4-Autopilot源码 v1.17.0的基准上,逐步对PX4的飞控源码进行功能增减及优化!部分功能需要在多个文件夹上新增.cpp文件或.h文件...
本文编译环境:win11,wsl2,ubuntu22.04
1.1说明
物唯科技后续将会在PX4-Autopilot源码 v1.17.0的基准上,逐步对PX4的飞控源码进行功能增减及优化!部分功能需要在多个文件夹上新增.cpp文件或.h文件!因此物唯科技新建了一个独立于官方固件的仓库进行源码管理,并开源!
另外在物唯的代码仓库中,也会默认增加物唯的WFG100、WFG001、WFG120这几个系列的飞控板卡配置文件,无需额外进行硬件配置文件夹的增加与配置!
编译PX4官方固件和物唯科技仓库中的PX4固件大体步骤,基本是一样的,只是部分指令有所区别!如果要编译PX4官方的固件,请参考此页面的内容:《PX4官方固件编译说明》!
物唯科技PX4固件源码仓库如下:
https://github.com/WWKJ-FX/WW-PX4-Autopilot/tree/v1.17.0-1.0.0

1.2 下载PX4源码
git clone https://github.com/WWKJ-FX/WW-PX4-Autopilot.git回车执行,等待下载完成

1.3 进入下载好的PX4文件夹中
cd WW-PX4-Autopilot
1.4 切换至物唯1.17.0分支
截止到2026年4月29日,物唯维护的PX4固件的稳定版本是v1.17.0!输入以下命令切换分支
git checkout ww-px4-v1.17因为默认就在这个分支下,所以可能会提示

1.5 确认分支切换成功
输入以下指令,确认切换分支成功。
git branch
1.6 执行子模块更新
更新子模块是将上述切换的分支版本相关的模块补全,此步骤非常重要!没下载好会导致后续报错。
注:每次切换了版本分支,都要执行一次更新子模块的命令。
git submodule update --init --recursive1.7 安装cmake工具
sudo apt update #注释:更新
sudo apt install cmake #安装cmake
cmake --version #查看cmake版本确认cmake 安装完毕,如下图所示。(可能后装的朋友版本号会更新一点)

1.8 安装python3 相关工具
sudo apt-get install python3-pip
sudo -H python3 -m pip install kconfiglib jinja2 jsonschema empy pyros-genmsg packaging toml numpy future1.10 安装gcc交叉编译工具
sudo apt update
sudo apt install gcc-arm-none-eabi1.11 编译bootloader
make ww_wfg100_bootloader1.12 编译固件
make ww_wfg100_default1.13 固件生成目录
将PX4源码编译后,会分别生成bootloader文件以及固件文件。其生成目录如下:
其路径为:/PX4-Autopilot/build

分别进入两个文件夹又能看到有3种格式bootloader和固件,如下图所示:
然后分别烧录bootloader与固件,烧录.elf格式固件,这种格式的固件是包含地址的!


1.14 将bootloader和固件合并为一个.hex文件。
由于PX4默认编译出来的固件分别是bootloader 和固件,需要分别烧录2次。
我们可以将两者进行合并,只需烧录一次即可!
具体方法如下:
先安装srecord工具
sudo apt-get install srecord再回到PX4源码的根目录下
cd ~
cd PX4-Autopilot/执行以下命令:
srec_cat \
build/wuwei_wfg100_bootloader/wuwei_wfg100_bootloader.bin -Binary -Offset 0x08000000 \
build/wuwei_wfg100_default/wuwei_wfg100_default.bin -Binary -Offset 0x08020000 \
-o build/WFG100_PX4_Firmware_with_bl.hex -Intel最终生成合并后的固件如下:
