# NuttX 板移植指南

要将 NuttX 上的 PX4 移植到新的硬件目标,该硬件目标必须得到 NuttX 的支持。NuttX 项目维护着一个出色的 移植指南 (打开新窗口) 用于将 NuttX 移植到新的计算平台。

以下指南假定您使用的是已受支持的硬件目标机或已将 NuttX(包括 PX4 基础层 (打开新窗口))了。

所有电路板的配置文件,包括链接器脚本和其他必要设置,都位于 /板 (打开新窗口) 在供应商和电路板特定的目录中(即 板/供应商/型号/)).

下面的示例使用的是 FMUv5,因为它是最近的版本。 参考配置 用于基于 NuttX 的飞行控制器:

# NuttX Menuconfig 设置

要修改 NuttX 操作系统的配置,可以使用 菜单 (打开新窗口) 使用 PX4 快捷键:

生产 px4_fmu-v5_default menuconfig
生产 px4_fmu-v5_default qconfig

在 Ubuntu 上重新安装 PX4 时,使用 ubuntu.sh (打开新窗口) 您还需要安装 kconfig 工具 NuttX 工具 (打开新窗口).

备注

如果使用 px4-dev-nuttx (打开新窗口) docker 容器,或使用我们的正常说明安装到 macOS(因为这些说明包括kconfig-mconf).

从任意目录运行以下命令:

Git 克隆 https://bitbucket.org/nuttx/tools.git
CD tools/kconfig-frontends
苏都 适切 安装 gperf ./configure --enable-mconf --disable-nconf --disable-gconf --enable-qconf --prefix=/usr
生产
苏都 生产 安装

--prefix=/usr 确定具体的安装位置(必须在 路径 环境变量)。环境变量 --启用--配置--启用--qconf 选项将启用 菜单qconfig 选项。

运行 qconfig 您可能需要安装其他 Qt 依赖项。

# 启动程序

首先,您需要一个引导加载程序,这取决于硬件目标:

# 固件移植步骤

  1. 确保您的 开发设置 并安装了 NuttX menuconfig 工具(见上文)。
  2. 下载源代码并确保可以构建现有目标:
    Git clone --recursive https://github.com/PX4/PX4-Autopilot.git
    CD PX4-自动驾驶仪
    生产 px4_fmu-v5
    
  3. 查找使用相同(或密切相关)CPU 类型的现有目标,然后复制它。例如 STM32F7:
    mkdir 板/制造商
    cp -r boards/px4/fmu-v5 boards/manufacturer/my-target-v1
    
    改变 生产商 到制造商名称和 我的目标-v1 到您的板名。

接下来,您需要查看 板/制造商/我的目标-V1 并根据电路板进行更新。

  1. 固件原型更新板 ID 和名称
  2. default.cmake:更新 供应商型号 以匹配目录名称 (我的目标-v1).配置串行端口。
  3. 配置 NuttX (定义通过 make manufacturer_my-target-v1 menuconfig:调整 CPU 和芯片,配置外设(UART、SPI、I2C、ADC)。
  4. nuttx-config/include/board.h:配置 NuttX 引脚。对于所有具有多个引脚选项的外设,NuttX 需要知道引脚。它们在芯片特定的引脚映射头文件中定义,例如 stm32f74xx75xx_pinmap.h (打开新窗口).
  5. 来源文件:查看 来源 并根据需要进行更新,特别是 board_config.h.
  6. init/rc.board_sensors:启动连接到电路板上的传感器。