Pixhawk 6X IO控制板固件源码工程 基于PAB-BASE-RC05-sch原理图设计的Pixhawk 6X baseboard(内含STM32F103C8T6 MCU)编译io控制板的固件
在 PX4-Autopilot 源码中,Pixhawk 6X 的 IO 固件配置和编译目标如下:
项目地址:
https://gitcode.com/Tibos_No_One/Pixhawk6X_BaseBoard_Share
1. 源码位置
- 核心逻辑:IO 固件的通用源代码位于 [src/modules/px4iofirmware](file:///home/cwkj/PX4-Autopilot/src/modules/px4iofirmware)。
- 包含文件:主要逻辑包括 [px4io.cpp](file:///home/cwkj/PX4-Autopilot/src/modules/px4iofirmware/px4io.cpp)(主循环)、[mixer.cpp](file:///home/cwkj/PX4-Autopilot/src/modules/px4iofirmware/mixer.cpp)(混控逻辑)、[serial.cpp](file:///home/cwkj/PX4-Autopilot/src/modules/px4iofirmware/serial.cpp)(与 FMU 的通信)等。
2. 编译目标
- Pixhawk 6X(以及 6X-RT、6C 等 v6 系列)使用通用的 IO 编译目标:
make px4_io-v2_default - 虽然 Pixhawk 6X 的 IO 处理器是 STM32F103,但它与早期的 Pixhawk IO 设计保持软件兼容,因此共用
px4_io-v2这一目标。
3. STM32F103 配置
相关的硬件配置文件位于 [boards/px4/io-v2](file:///home/cwkj/PX4-Autopilot/boards/px4/io-v2):
- 板级定义:[board_config.h](file:///home/cwkj/PX4-Autopilot/boards/px4/io-v2/src/board_config.h) 定义了 PWM 通道、LED、安全按钮和串口映射。
- NuttX 系统配置:[defconfig](file:///home/cwkj/PX4-Autopilot/boards/px4/io-v2/nuttx-config/nsh/defconfig)。
- 注:在此配置文件中,芯片被定义为
CONFIG_ARCH_CHIP_STM32F100C8。这是因为 PX4 为了兼容性,在 IO 固件中使用了 STM32F1 系列通用的配置。STM32F103 与 F100 在此应用场景下(PWM/串口/ADC)寄存器兼容,因此使用相同的固件镜像。
- 注:在此配置文件中,芯片被定义为
- 时钟配置:[board.h](file:///home/cwkj/PX4-Autopilot/boards/px4/io-v2/nuttx-config/include/board.h) 中定义系统时钟。默认为 24MHz (HSE),以确保在 F100 和 F103 上都能稳定运行。
- 链接脚本:[script.ld](file:///home/cwkj/PX4-Autopilot/boards/px4/io-v2/nuttx-config/scripts/script.ld) 定义了 Flash (60K) 和 SRAM (8K) 的内存布局。
4. 总结
- 芯片型号:STM32F103 (但在固件配置中通常被视为 F1xx 系列通用)。
- 编译命令:
make px4_io-v2_default。 - FMU 侧驱动:FMUv6X 通过 [px4io.cpp](file:///home/cwkj/PX4-Autopilot/src/drivers/px4io/px4io.cpp) 驱动程序与此 IO 固件通信,通信速率通常为 1.5 Mbps。
1. 编译教程 (Step-by-Step Build Guide)
本教程基于 PX4-Autopilot 官方构建系统,针对 px4_io-v2_default 目标(兼容 Pixhawk 6X IO)。
1.1 工具链准备
- 操作系统: Ubuntu 20.04/22.04 LTS (推荐) 或 Windows (WSL2)
- GCC-ARM:
gcc-arm-none-eabi-9-2020-q2-update(PX4 官方推荐版本,确保 ABI 兼容性) - CMake: 版本 >= 3.10
- Ninja: 版本 >= 1.8
安装命令 (Ubuntu):
# 移除旧版本
sudo apt-get remove gcc-arm-none-eabi
# 安装依赖
sudo apt-get update
sudo apt-get install git make cmake ninja-build python3-pip
# 配置 Python 依赖
pip3 install --user kconfiglib jsonschema future
注意:请手动解压下载的 GCC 压缩包并将其 bin 目录添加到系统的 PATH 环境变量中。
1.2 源码获取与环境配置
# 克隆源码 (确保网络通畅以拉取子模块)
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
cd PX4-Autopilot
# 如果子模块更新失败,可手动执行
git submodule update --init --recursive
1.3 STM32F103C8T6 板级配置清单
Pixhawk 6X IO 复用 px4_io-v2 架构。虽然物理芯片是 STM32F103C8T6,但在 PX4 配置文件中,为了保持与旧版 IO 固件的二进制兼容性,NuttX 配置常将其定义为 STM32F100 系列(寄存器定义在 IO 功能上兼容)。
关键配置参数 (位于 boards/px4/io-v2/):
| 功能模块 | 配置文件 | 参数/宏定义 | 说明 |
|---|---|---|---|
| MCU型号 | nuttx-config/nsh/defconfig |
CONFIG_ARCH_CHIP_STM32F100C8=y |
软件层兼容配置,实际烧录到 F103 |
| 时钟系统 | nuttx-config/include/board.h |
STM32_HSE_FREQUENCY 24000000ul |
外部晶振 24MHz |
| USART (FMU) | src/board_config.h |
STM32_USART2 |
波特率 1.5Mbps,用于与 FMU 通信 |
| USART (RC) | src/board_config.h |
STM32_USART1 |
用于 SBUS/DSM/PPM 输入及调试打印 |
| PWM 输出 | src/board_config.h |
GPIO_PWM1 - GPIO_PWM8 |
映射至 PA0, PA1, PB8, PB9, PA6, PA7, PB0, PB1 |
| LED | src/board_config.h |
PB14(Blue), PB15(Amber), PB13(Safety) | 状态指示灯 |
1.4 编译与产物验证
执行编译:
# 在 PX4-Autopilot 根目录下执行
make px4_io-v2_default
产物验证:
编译成功后,将在 build/px4_io-v2_default/ 目录下生成以下文件:
px4_io-v2_default.bin: 纯二进制文件,用于 J-Link 烧录(约 40-50KB)。px4_io-v2_default.elf: 包含调试符号的文件,用于 GDB 调试。
验证命令:
ls -lh build/px4_io-v2_default/px4_io-v2_default.bin
# 预期输出: 应该看到文件大小非 0,且日期为当前时间
2. J-Link 烧录教程
2.1 软件准备
- 下载并安装 J-Link Software and Documentation Pack (V7.00 或更高版本)。
- 工具包含:
JLinkExe(命令行) 和JFlashLite(图形界面)。
2.2 硬件连接 (SWD 接口)
请参考 PAB-BASE-RC05-sch 原理图的 debug 接口进行连接:
| J-Link 引脚 | Pixhawk 6X IO (STM32F103) 引脚 | 描述 |
|---|---|---|
| Pin 1 (VTref) | 3V3 | 目标板参考电压 (必须连接) |
| Pin 7 (SWDIO) | PA13 | 数据信号 |
| Pin 9 (SWCLK) | PA14 | 时钟信号 |
| Pin 4/6/8 (GND) | GND | 共地 |
| Pin 15 (RESET) | NRST | 复位引脚 (可选,推荐连接) |
2.3 烧录脚本 (J-Link Commander)
创建一个名为 flash_io.jlink 的文本文件,内容如下:
device STM32F103C8
si SWD
speed 4000
connect
halt
r
erase
loadbin build/px4_io-v2_default/px4_io-v2_default.bin 0x08001000
verifybin build/px4_io-v2_default/px4_io-v2_default.bin 0x08001000
r
g
exit
执行烧录:
JLinkExe -CommandFile flash_io.jlink
2.4 烧录后验证
使用 J-Link RTT 查看启动日志(如果固件启用了 RTT),或者连接 USART1 (TX=PA9, RX=PA10) 到 USB-TTL 模块,波特率通常为 115200。
3. 功能验证清单
3.1 基础运行状态
- 心跳灯: 观察板载蓝色 LED (PB14) 是否以 1Hz 频率闪烁。这表明固件主循环
px4io_main正在运行。 - 启动日志: 通过 USART1 接收数据,复位板子,应看到类似
[boot] PX4 IO ...的文本信息。
3.2 PWM 输出精度测试
- 测试方法: 将示波器探头连接至 PWM1 (PA0)。
- 测试用例: 固件在未解锁状态下通常输出 900us 或 1500us (取决于配置)。
- 标准:
- 频率: 50Hz (误差 < 0.5Hz) 或 400Hz (如配置为数字舵机)。
- 脉宽: 设定值 ±10us。
3.3 固件版本校验
在 USART1 终端输入回车,如果开启了 NSH (NuttX Shell),输入:
ver all
应返回 FW git-hash: ... 及编译时间戳。
3.4 I2C 与 RGB 传感器 (特别说明)
- 注意: 标准的
px4_io-v2固件不包含 I2C RGB 传感器驱动。Pixhawk 架构中,RGB 传感器(如 IST8310+LED)通常连接到 FMU 的 I2C 总线,而非 IO 板。 - 验证: 如果您的设计确实将 RGB 灯接在 STM32F103 的 I2C 引脚上,您需要修改
px4io源码,添加 I2C 初始化和驱动逻辑。标准固件下,此项测试将不通过(无法扫描到设备)。建议检查原理图,确认传感器是否应由主控 (H7) 驱动。
4. 常见故障排查表
| 故障现象 | 可能原因 | 解决方法 |
|---|---|---|
编译报错 undefined reference to board_init |
板级初始化文件缺失或链接脚本错误 | 1. 确保在 boards/px4/io-v2/src 下存在 stm32_boot.c。2. 检查 CMakeLists.txt 是否正确包含了板级源文件。 |
J-Link Cannot connect to target |
1. 物理接线错误 2. 芯片处于休眠/锁死 3. 供电不足 |
1. 检查 SWDIO/SWCLK 线序及万用表测通断。 2. 确保 VTref 接到 3.3V。 3. 按住复位键再执行 connect 命令 (Connect under Reset)。 4. 检查 BOOT0 引脚,应下拉接地。 |
| 烧录后程序不运行 (LED不亮) | 1. 向量表偏移错误 2. 晶振不起振 3. Checksum 校验失败 |
1. 标准 IO 固件起始地址为 0x08000000。如果是通过 Bootloader 烧录,偏移应为 0x08001000 (4KB offset)。直接 J-Link 烧录请使用 0x08000000。2. 示波器测量 OSC_IN/OUT 引脚波形。 3. IO 固件启动时会计算 CRC,若通过 J-Link 烧录了不完整的镜像可能导致校验失败,尝试全片擦除 ( erase) 后重烧。 |
| PWM 无输出 | 安全开关未按下 | IO 固件默认处于“锁定”状态。需模拟按下安全开关 (PB5 拉低) 或在 FMU 发送解锁指令后才有 PWM 输出。 |
| USART1 无输出 | 波特率或时钟配置错误 | 1. 确认波特率匹配 (默认 115200)。 2. 检查 board.h 中的 STM32_HSE_FREQUENCY 是否与板载晶振一致 (通常为 24MHz)。 |
5.示例输出
cwkj@ubuntu:~/PX4-Autopilot$ make px4_io-v2_default
[0/1] Re-running CMake...
-- PX4_GIT_TAG: v1.17.0-alpha1-290-gf46fd89057
-- PX4 config file: /home/cwkj/PX4-Autopilot/boards/px4/io-v2/default.px4board
-- PLATFORM nuttx
-- TOOLCHAIN arm-none-eabi
-- ARCHITECTURE cortex-m3
-- CONSTRAINED_FLASH y
-- ROOT_PATH /fs/microsd
-- PARAM_FILE /fs/mtd_params
-- PWM_FREQ 1000000
-- PX4 config: px4_io-v2_default
-- PX4 platform: nuttx
-- cmake build type: MinSizeRel
-- ccache enabled (export CCACHE_DISABLE=1 to disable)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/cwkj/PX4-Autopilot/build/px4_io-v2_default
[0/62] git submodule platforms/nuttx/NuttX/nuttx
[22/62] Generating nuttx/arch/arm/src/libarch.a
chip/stm32_gpio.c:41:11: note: #pragma message: CONFIG_STM32_USE_LEGACY_PINMAP will be deprecated migrate board.h see tools/stm32_pinmap_tool.py
41 | # pragma message "CONFIG_STM32_USE_LEGACY_PINMAP will be deprecated migrate board.h see tools/stm32_pinmap_tool.py"
| ^~~~~~~
[60/62] Linking CXX executable px4_io-v2_default.elf
Memory region Used Size Region Size %age Used
flash: 40244 B 60 KB 65.50%
sram: 3284 B 8 KB 40.09%
[62/62] Creating /home/cwkj/PX4-Autopi...x4_io-v2_default/px4_io-v2_default.px4
cwkj@ubuntu:~/PX4-Autopilot$ ls
boards flash_io.jlink msg srv
build integrationtests package.xml test
cmake Jenkinsfile platforms test_data
CMakeLists.txt Kconfig posix-configs Tools
CODE_OF_CONDUCT.md launch README.md validation
CONTRIBUTING.md LICENSE ROMFS
CTestConfig.cmake MAINTAINERS.md SECURITY.md
docs Makefile src
cwkj@ubuntu:~/PX4-Autopilot$ cd build/px4_io-v2_default/
cwkj@ubuntu:~/PX4-Autopilot/build/px4_io-v2_default$ ls
airframes.xml NuttX
boardconfig nuttx_olddefconfig.log
boards parameters.json
build.ninja parameters.json.xz
CMakeCache.txt parameters.xml
CMakeFiles parameters.xml.xz
cmake_install.cmake platforms
compile_commands.json px4_boardconfig.h
CPackConfig.cmake px4_io-v2_default.bin
CPackSourceConfig.cmake px4_io-v2_default.elf
defconfig_inflate_stamp px4_io-v2_default.map
events px4_io-v2_default.px4
external rules.ninja
generated_params src
git_init__home_cwkj_PX4-Autopilot_platforms_nuttx_NuttX_nuttx.stamp uORB
msg
cwkj@ubuntu:~/PX4-Autopilot/build/px4_io-v2_default$
可以看到生成了
[62/62] Creating /home/cwkj/PX4-Autopilot/build/px4_io-v2_default/px4_io-v2_default.px4

6.如何安装在Ubuntu安装Jlink
JLinkExe 是 SEGGER J-Link 软件包的一部分。由于您当前使用的是 Linux (Ubuntu/Debian) 环境,以下是安装 J-Link 驱动及工具的详细步骤:
1. 下载 J-Link 软件包
由于 SEGGER 官网下载需要接受协议且链接经常变动,我们使用 apt 仓库方式安装最为便捷和稳定。
方法一:使用 SEGGER 官方 APT 仓库(推荐)
这可以确保您始终获得最新版本,并且安装过程会自动处理依赖关系。
- 添加 GPG 密钥:
wget -O - https://www.segger.com/downloads/jlink/JLink_Linux_V794f_x86_64.deb.sig | sudo apt-key add - # 注意:上面的命令可能会因为版本号变动而失败,更通用的方法是直接下载 .deb 包(见方法二),或者使用以下手动添加仓库的方法: # 实际上,SEGGER 没有标准的 PPA,最稳妥的方式是直接下载 .deb 包安装。
方法二:直接下载并安装 .deb 包(最常用)
这是在 Linux 上安装 J-Link 最标准的方法。
-
下载 .deb 安装包:
您需要从 SEGGER 官网下载适用于 Linux x86_64 的.deb包。由于无法直接通过wget绕过官网的“接受协议”弹窗,建议您在浏览器中下载,或者尝试使用以下命令(如果链接有效):由于我无法直接访问外网下载大文件,请您在电脑上执行以下步骤:
- 访问 SEGGER J-Link Downloads 页面。
- 找到 “J-Link Software and Documentation Pack for Linux, DEB installer, 64-bit”。
- 点击下载(通常名为
JLink_Linux_Vxxxx_x86_64.deb)。
-
安装 .deb 包:
假设您下载的文件在~/Downloads目录,文件名为JLink_Linux_V794_x86_64.deb(版本号可能不同)。在终端中执行:
cd ~/Downloads sudo apt-get update sudo apt-get install ./JLink_Linux_V*_x86_64.deb注意:使用
apt-get install ./filename.deb而不是dpkg -i,因为apt会自动解决依赖问题(如libncurses5等)。
2. 验证安装
安装完成后,JLinkExe 会被添加到系统路径中。
-
检查版本:
在终端输入:JLinkExe --version或者直接运行:
JLinkExe -
预期输出:
如果安装成功,您会进入 J-Link 命令交互界面,看到类似以下信息:SEGGER J-Link Commander V7.94 (Compiled Dec 7 2023 16:22:27) DLL version V7.94, compiled Dec 7 2023 16:22:04 Connecting to J-Link via USB...FAILED: Can not connect to J-Link via USB.(如果没有连接硬件,显示 FAILED 是正常的,只要能看到版本号和提示符
J-Link>就说明工具安装成功了。) -
退出:
输入exit或按Ctrl+C退出。
3. 连接后的 USB 权限设置(重要)
在 Linux 下,普通用户默认可能没有权限直接访问 USB 设备。J-Link 安装包通常会自动安装 udev 规则文件(/etc/udev/rules.d/99-jlink.rules)。
- 如果无法识别设备:
- 重新插拔 J-Link USB 线。
- 如果仍然提示权限不足,尝试重启
udev服务:sudo udevadm control --reload-rules sudo udevadm trigger - 或者简单地重启计算机。
总结
您只需要下载 .deb 包并运行 sudo apt-get install ./<文件名>.deb 即可完成安装。安装后,直接在终端输入 JLinkExe 即可使用。
默认情况下,PX4 构建系统会生成 .bin(纯二进制文件)和 .elf(包含调试信息的可执行文件),但不会直接生成 .hex 文件(Intel HEX 格式)。
要生成 .hex 文件,最简单直接的方法是使用 ARM GCC 工具链中的 arm-none-eabi-objcopy 命令,将编译好的 .elf 文件转换成 .hex 格式。
步骤
-
首先,正常编译生成 ELF 文件:
在 PX4 根目录下执行:make px4_io-v2_default -
然后,使用 objcopy 进行转换:
编译完成后,运行以下命令,将.elf转换为.hex:arm-none-eabi-objcopy -O ihex build/px4_io-v2_default/px4_io-v2_default.elf build/px4_io-v2_default/px4_io-v2_default.hex
说明
-O ihex:告诉objcopy输出格式为 Intel HEX。- 输入文件是刚才编译出来的
px4_io-v2_default.elf。 - 输出文件将保存在同一目录下,命名为
px4_io-v2_default.hex。
执行完第二步命令后,您就可以在 build/px4_io-v2_default/ 目录下找到所需的 .hex 文件,它可以被大多数通用的烧录工具(如 J-Flash、STM32CubeProgrammer 等)直接使用。
报错:
cwkj@ubuntu:~/下载$ sudo apt-get install ./JLink_Linux_V926_arm64.deb
[sudo] cwkj 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
注意,选中 'jlink:arm64' 而非 './JLink_Linux_V926_arm64.deb'
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
jlink:arm64 : 依赖: libc6:arm64 (>= 2.7) 但无法安装它
依赖: libxrender1:arm64 (>= 1:0.9.0) 但无法安装它
依赖: libxcb-render0:arm64 (>= 1.9) 但无法安装它
依赖: libxcb-render-util0:arm64 (>= 0.3.8) 但无法安装它
依赖: libxcb-shape0:arm64 (>= 1.9) 但无法安装它
依赖: libxcb-randr0:arm64 (>= 1.9) 但无法安装它
依赖: libxcb-xfixes0:arm64 (>= 1.9) 但无法安装它
依赖: libxcb-sync1:arm64 (>= 1.9) 但无法安装它
依赖: libxcb-shm0:arm64 (>= 1.9) 但无法安装它
依赖: libxcb-icccm4:arm64 (>= 0.3.9) 但无法安装它
依赖: libxcb-keysyms1:arm64 (>= 0.3.9) 但无法安装它
依赖: libxcb-image0:arm64 (>= 0.3.9) 但无法安装它
依赖: libxkbcommon0:arm64 (>= 0.5.0) 但无法安装它
依赖: libxkbcommon-x11-0:arm64 (>= 0.5.0) 但无法安装它
依赖: libfontconfig1:arm64 (>= 2.6) 但无法安装它
依赖: libfreetype6:arm64 (>= 2.3.0) 但无法安装它
依赖: libxext6:arm64 (>= 1:6.4.3) 但无法安装它
依赖: libx11-6:arm64 (>= 1:6.2.1) 但无法安装它
依赖: libxcb1:arm64 (>= 1.9) 但无法安装它
依赖: libx11-xcb1:arm64 (>= 2:1.3.2) 但无法安装它
依赖: libsm6:arm64 (>= 1:6.0.4) 但无法安装它
依赖: libice6:arm64 (>= 1:6.3.5) 但无法安装它
依赖: libglib2.0-0:arm64 (>= 2.8.3) 但无法安装它
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
cwkj@ubuntu:~/下载$
修复办法:
通过scp在Windows下通过Jlink Flash来下载,参考文档:
https://zhuanlan.zhihu.com/p/54574099
非原创,仅供参考
关于Pixhawk 6X IO Control BaseBoard的LED灯
LED 引脚定义在 boards/px4/io-v2/src/board_config.h 文件中,具体如下:
- 蓝灯 (LED_BLUE):
- 引脚:
PB14 - 定义:
#define GPIO_LED_BLUE (GPIO_OUTPUT|GPIO_CNF_OUTOD|GPIO_MODE_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN14) - 注意: 此引脚在 Pixhawk 2.1 上也用作 IMU 温度控制。
- 引脚:
- 琥珀色灯 (LED_AMBER):
- 引脚:
PB15 - 定义:
#define GPIO_LED_AMBER (GPIO_OUTPUT|GPIO_CNF_OUTOD|GPIO_MODE_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN15)
- 引脚:
- 安全灯 (LED_SAFETY):
- 引脚:
PB13 - 定义:
#define GPIO_LED_SAFETY (GPIO_OUTPUT|GPIO_CNF_OUTOD|GPIO_MODE_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN13)
- 引脚:
- 绿灯 (LED_GREEN):
- 引脚:
PA11 - 定义:
#define GPIO_LED_GREEN (GPIO_OUTPUT|GPIO_CNF_OUTOD|GPIO_MODE_50MHz|GPIO_OUTPUT_SET|GPIO_PORTA|GPIO_PIN11)
- 引脚:
这些引脚配置为 开漏输出 (Open Drain) 模式 (GPIO_CNF_OUTOD),这意味着 LED 通常是低电平点亮(Active Low),但具体取决于外部电路的上拉连接方式。
代码位置:
[boards/px4/io-v2/src/board_config.h]
#define GPIO_LED_BLUE (GPIO_OUTPUT|GPIO_CNF_OUTPP|GPIO_MODE_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN14) // IO-LED_BLUE or IMU_TEMPERATURE_CONTROL on Pixhawk 2.1
#define GPIO_LED_AMBER (GPIO_OUTPUT|GPIO_CNF_OUTPP|GPIO_MODE_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN15) // IO-LED_AMBER
#define GPIO_LED_SAFETY (GPIO_OUTPUT|GPIO_CNF_OUTPP|GPIO_MODE_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN13) // IO-LED_SAFETY
#define GPIO_LED_GREEN (GPIO_OUTPUT|GPIO_CNF_OUTPP|GPIO_MODE_50MHz|GPIO_OUTPUT_SET|GPIO_PORTA|GPIO_PIN11) // IO-LED_POWER_BREATHING
下载程序不能运行?
先将bootloader.bin下载到单片机中,注意下载地址从0x8000000开始,文件地址为:
/PX4-Autopilot/boards/px4/io-v2/extras/px4_io-v2_bootloader.bin
然后将编译好的px4_io-v2_default.bin下载到单片机中,注意下载地址从0x80001000开始,文件地址为:
PX4-Autopilot/build/px4_io-v2_default/px4_io-v2_default.*
然后就可以正常运行IO控制器的固件!
测试
打开QGC,在Analysis中,输入以下命令:
px4io status

可以看到px4io控制器的一些状态,此时io控制器与fmu控制器连接上,通信连接后,io控制器的蓝色led会闪烁,橙色led会熄灭
如果橙色led常亮,则没有建立好连接
更多推荐
所有评论(0)