ArduPilot 源码编译与固件烧录实战

📚 共计 30 章节
01
ArduPilot概述
项目历史、硬件平台 (Pixhawk/Cube)、APM与ChibiOS架构概览
概念历史
02
开发环境搭建 (Linux)
Ubuntu 20.04/22.04 · Git · gcc-arm-none-eabi · python3-pip
环境工具链
03
源码获取与目录结构
git clone · 顶层目录 (libraries, ArduCopter, Tools) 功能分析
源码结构
04
编译工具链详解
Make vs Waf · Waf命令 (configure/build/clean) · 编译选项
构建Waf
05
首次编译 (Copter固件)
waf configure --board Pixhawk1 · waf copter · 验证输出
实战Copter
06
编译常见错误与解决
依赖缺失 · Python冲突 · 编译器版本 · 内存不足排查
调试排错
07
自定义编译配置
apj-tool.py · --enable-* · hwdef.dat 自定义硬件
配置进阶
08
固件烧录基础
USB/SD卡/JTAG-SWD · Mission Planner · QGroundControl
烧录概览
09
使用Mission Planner烧录
连接飞控 · 选择固件版本 · 刷写与验证
MP图形化
10
命令行烧录工具
ardupilot_bin2px4.py · uploader.py · 命令行烧录
CLI工具
11
SD卡烧录方法
制作可启动SD卡 · 复制固件 · 自动烧录
SD卡脱机
12
JTAG/SWD调试与烧录
ST-Link/J-Link · OpenOCD · STM32CubeProgrammer
调试专业
13
Bootloader详解
Bootloader作用 · 更新方法 · 与固件关系
底层启动
14
固件版本管理
版本号 (4.3.7) · 稳定版/测试版 · git tag切换
版本Git
15
多板型编译与烧录
Pixhawk1/4 · CubeOrange · Here4 差异
硬件移植
16
参数文件管理
导出/导入 .param · Mission Planner备份 · 兼容性
参数配置
17
源码修改与测试
修改RC1_MIN · 重新编译 · 烧录验证
动手验证
18
使用SITL进行仿真测试
安装SITL · MAVProxy控制 · 验证代码逻辑
仿真SITL
19
硬件在环 (HIL) 仿真
配置HIL · 真实飞控+仿真软件 · 半实物测试
HIL高级
20
日志分析基础
下载 .bin/.log · Mission Planner分析 · 姿态/GPS/电池
日志分析
21
使用Plotter分析日志
安装Plotter · 绘制高度/速度/油门曲线 · 定位异常
可视化Plotter
22
编译优化技巧
ccache加速 · 并行编译 -j · 增量编译
效率ccache
23
自定义固件添加新功能
ArduCopter添加CUSTOM模式 · 编译测试
开发模式
24
使用Docker编译环境
创建Docker镜像 · 容器编译 · 环境依赖解决
容器DevOps
25
CI/CD与自动化编译
GitHub Actions · Jenkins · 固件发布包
CI/CD自动化
26
固件签名与安全
签名机制 · 生成密钥 · 签名与验证
安全签名
27
多旋翼与固定翼编译差异
ArduCopter vs ArduPlane · 传感器/参数差异
对比机型
28
编译与烧录常见问题汇总
USB驱动 · 端口权限 · 固件不匹配 · 变砖恢复
FAQ救砖
29
飞控变砖恢复实战
短路Boot引脚 · DFU模式 · STM32CubeProgrammer · 恢复
急救DFU
30
综合实战:从源码到飞行
修改LED模式 · 编译烧录 · 仿真+实飞全流程
项目全栈