ArduPilot提供一套功能全面的工具,几乎适用于任何类型的车辆、无人机及其应用场景。作为一个开源项目,它依托广大用户群体的快速反馈而不断演进。配合地面控制软件,运行ArduPilot的无人飞行器可实现高级功能,包括与操作员进行实时通信。ArduPilot拥有庞大的在线社区,致力于帮助用户解答疑问、解决难题并提供解决方案。
先楫半导体基于hpm_sdk v1.11.0对ArduPilot进行了适配,为使用先楫芯片快速搭建ArduPilot开发平台提供了支持。
本次支持包技术实现
- 新增 HAL 子系统和实现:AP_HAL_HPMICRO
- 板级抽象与默认配置:
- 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界面中,还可以修改飞控的参数。
-
开源
+关注
关注
3文章
4435浏览量
46621 -
HPM
+关注
关注
2文章
55浏览量
8330 -
先楫半导体
+关注
关注
12文章
295浏览量
3429
发布评论请先 登录
HPM知识库 | 先楫半导体电机库简介
国产化DevOps工具链实践:知识库与需求/任务/版本如何打通?
HPM知识库 | 追求极致精度:HPM6P00系列MCU ADC高精度采样设计与实践心得
[CANopen] 使用 CANopenEditor 工具编辑 CANopen 对象字典
HPM知识库 | [EtherCAT] 从站运行过程中报错(错误码:0x1A\\0x1B\\0x2C)的代码分析
鸿蒙智能体开发知识库---创建知识库
HPM知识库 | 力位混合控制库使用指南
设备维修总踩坑?故障知识库 + AI 诊断,新手也能修复杂机
飞控开发者必看 | HPMicro Betaflight v0.1.0发布
国产飞控开发平台 | HPMicro PX4 FMU-V6XHPM v0.1.0 发布
零基础在智能硬件上克隆原神可莉实现桌面陪伴(提供人设提示词、知识库、固件下载)
支持HPM6P00/HPM5E00系列!HPMicro Manufacturing Tool v0.6.0发布
HPM知识库 | HPMicro Ardupilot支持包v0.1.0发布!
评论