ArduPilot提供一套功能全面的工具,几乎适用于任何类型的车辆、无人机及其应用场景。作为一个开源项目,它依托广大用户群体的快速反馈而不断演进。配合地面控制软件,运行ArduPilot的无人飞行器可实现高级功能,包括与操作员进行实时通信。ArduPilot拥有庞大的在线社区,致力于帮助用户解答疑问、解决难题并提供解决方案。
先楫半导体基于hpm_sdk v1.11.0对ArduPilot进行了适配,为使用先楫芯片快速搭建ArduPilot开发平台提供了支持。
本次支持包技术实现
- 新增 HAL 子系统和实现:AP_HAL_HPMICRO
- 包括:HAL_HPM_Class.cpp、Scheduler、Storage、Util、I2CDevice、SPIDevice、UARTDriver 等驱动框架与实现。
- 板级抽象与默认配置:
- AP_HAL_Boards.h 添加 HAL_BOARD_HPMICRO
- hpmicro.h 提供 HAL 名称、内存/存储/标志等宏与默认值(例如 HAL_BOARD_NAME "HPMICRO",HAL_STORAGE_SIZE 等)
- hwdef.dat 定义了 UART、SPI、I2C、ADC、RC 输出映射、默认串口协议和板级选项(例如日志、SD 卡、ADC 用法等)。
- boards/hpmpilotbf67 包含 board.h、pinmux、CMakeLists.txt 与 hpmpilotbf67.yaml(板卡元数据:SOC型号、外设、内存、flash、大/小特性)。为hpm_sdk所需板级文件
- 构建系统集成:
- 新增 Waf 支持工具:hpmicro.py
- 调用 hpmicro_hwdef.py 生成 hwdef.h
- 处理 includes.list 以引入hpm_sdk头文件路径
- 使用 CMake 目标将 ArduPilot 库链接到 hpm_sdk 的固件构建
- 外部依赖
- 需要 HPM SDK源码,已作为工程子模块引入
- RISC‑V 工具链(先楫编译好的工具链https://github.com/hpmicro/riscv-gnu-toolchain/releases)。
- 示例与默认映射:
- hwdef.dat 中有串口默认协议(比如 SerialProtocol_MAVLink2 on SERIAL0@921600)、RC 输出与 PWM 分组配置、ADC/电池引脚标定、SPI 总线与 IMU 探测策略用 SPI 设备名(icm20608)等。
- 操作系统FreeRTOS,支持使用gptmr作为系统定时器,支持tickless模式,支持向量模式,支持traceRecorder调试。
如何构建
在ubuntu系统中:
下载并解压RISC‑V 工具链(如 riscv32-unknown-elf-gcc)。
https://github.com/hpmicro/riscv-gnu-toolchain/releases/download/2023.10.18/rv32imac_zicsr_zifencei_multilib_b_ext-linux.tar.gz
或者访问https://github.com/hpmicro/riscv-gnu-toolchain/releases页面,下载所需的其他平台或版本的工具链。本文所述的构建环境搭建方法,仅适用于ubuntu系统。
克隆仓库
git clone git@github.com/hpmicro/ardupilot
git submodule init
git sbumodule update
3.使用 waf 构建:
./waf configure --board hpmpilotbf67
在系统环境变量中配置好HPM_SDK_BASE和GNURISCV_TOOLCHAIN_PATH,然后调用
./waf copter
或者直接传递变量值给命令行
HPM_SDK_BASE=/home/ubuntu/ardupilot/modules/hpm_sdk GNURISCV_TOOLCHAIN_PATH=/home/ubuntu/riscv32-gnu-toolchain ./waf copter
Waf 会调用 hpmicro_hwdef 生成 hwdef.h 并自动将hpm_sdk的目录加入头文件搜索路径。
生成的固件由cmake产生hpm_sdk工程,并最终链接出目标elf和bin文件。文件目录一般为:
ardupilot/build/hpmpilotbf67/build/bin/arducopter/output
支持的开发板
hpmpilotbf67
相关引脚定义见:https://kb.hpmicro.com/2025/11/20/hpmicro-betaflight-v0-1-0
可扩展:通过添加新的 hwdef.dat 与 boards/ 条目,可以支持其他开发板。
注意事项与限制
- 开发时请注意安全,未进行严谨验证前,禁止安装电机桨叶。
快速上手
硬件连线:连接 USB/CDC(或 debug probe)到控制台,根据 hwdef.dat 指定的串口波特率接入 Mission Planner / QGroundControl。
连接成功后,在QGC的Analyze Tools界面中,可以查看MAVLink的通信信息。

在Vehicle Configuration界面中,可以查看飞控的配置信息,机架种类和遥控器通信情况等等信息。
在Vehicle Configuration界面中,还可以修改飞控的参数。