Skip to content

NuttX 보드 포팅 가이드

NuttX의 PX4를 포팅하려면, 하드웨어가 NuttX를 지원하여야 합니다. NuttX 프로젝트는 NuttX를 새로운 플랫폼으로 포팅하기 위한 포팅 가이드를 제공합니다.

다음 가이드에서는 기존 지원 하드웨어를 사용하거나, NuttX(PX4 기본 레이어 포함)를 이미 포팅하였다고 가정합니다.

모든 보드를 대상으로 한 설정 파일, 링커 스크립트와 기타 필요한 설정은 제조사별 보드별 디렉터리 /boards in a vendor- and board-specific directory (i.e. boards/VENDOR/MODEL/)).

다음 예는 NuttX 비행 콘트롤러에 대한 최근 참조 설정인 FMUv5를 사용합니다.

NuttX 메뉴 구성 설정

NuttX OS 구성을 수정하려면, PX4 단축키를 사용하여 menuconfig를 사용할 수 있습니다.

sh
make px4_fmu-v5_default menuconfig
make px4_fmu-v5_default qconfig

ubuntu.sh을 사용하여 Ubuntu에 PX4를 설치하려면, NuttX 도구에서 kconfig 도구를 설치하여야 합니다. you will also need to install kconfig tools from NuttX tools.

The following steps are not required if using the px4-dev-nuttx docker container or have installed to macOS using our normal instructions (as these includekconfig-mconf).

임의의 디렉터리에서 다음 명령어를 실행합니다.

sh
git clone https://bitbucket.org/nuttx/tools.git
cd tools/kconfig-frontends
sudo apt install gperf
./configure --enable-mconf --disable-nconf --disable-gconf --enable-qconf --prefix=/usr
make
sudo make install

--prefix=/usr은 특정 설치 위치를 결정합니다(PATH 환경 변수에 있어야 함). --enable-mconf--enable-qconf 옵션은 각각 menuconfigqconfig 옵션을 활성화합니다.

qconfig를 실행하려면, 추가 Qt 종속성을 설치하여야 합니다.

부트로더

먼저 하드웨어 대상에 적합한 부트로더가 필요합니다.

펌웨어 포팅 단계

  1. 작동 중인 개발 설정 여부와 NuttX menuconfig 도구를 설치여부를 확인하십시오(위 참조).

  2. 소스 코드를 다운로드하고 기존 대상을 빌드할 수 있는 지 확인합니다.

    sh
    git clone --recursive https://github.com/PX4/PX4-Autopilot.git
    cd PX4-Autopilot
    make px4_fmu-v5
  3. 동일한(또는 유사한) CPU 유형을 사용하는 기존 대상을 복사합니다. 예: STM32F7의 경우

    sh
    mkdir boards/manufacturer
    cp -r boards/px4/fmu-v5 boards/manufacturer/my-target-v1

    manufacturer를 제조업체 이름으로 변경하고, my-target-v1을 보드 이름으로 변경합니다.

다음으로 boards/manufacturer/my-target-v1 아래의 모든 파일을 살펴보고 보드에 따라 업데이트하여야 합니다.

  1. firmware.prototype: 보드 ID 및 이름 업데이트
  2. default.cmake: 디렉토리 이름(my-target-v1)과 일치하도록 VENDORMODEL을 업데이트합니다. 직렬 포트를 설정합니다.
  3. make Manufacturer_my-target-v1 menuconfig를 통한 NuttX(defconfig) 설정: CPU와 칩을 조정하고 주변 장치(UART, SPI, I2C, ADC)를 설정합니다.
  4. nuttx-config/include/board.h: NuttX 핀을 설정합니다. 여러 가지 핀 옵션이 있는 주변 장치에서는 NuttX는 핀 정보을 알아야 합니다. 칩별 핀맵 헤더 파일에 정의되어 있습니다(예: stm32f74xx75xx_pinmap.h).
  5. src: src 아래의 모든 파일을 살펴보고 필요에 따라 업데이트합니다(특히 board_config.h).
  6. init/rc.board_sensors: 보드에 부착된 센서를 시작합니다.