NuttX 보드 이식 안내

새 대상 하드웨어에 NuttX용 PX4를 이식하려면, 해당 대상 하드웨어가 NuttX에서 지원해야합니다. NuttX 프로젝트는 NuttX를 새 처리 플랫폼에 이식하는 최상의 이식 안내서를 관리하고 있습니다.

다음 안내서에서는 이미 지원 하드웨어 대상을 선정했고, 해당 하드웨어에 NuttX(와 PX4 기반 계층)를 이식 했음을 가정합니다.

모든 보드를 대상으로 한 설정 파일, 링커 스크립트와 기타 필요한 설정은 제조사별 보드별 디렉터리(i.e. boards/VENDOR/MODEL/)의 /boards에 있습니다.

다음 예제는 NuttX 기반 비행체 제어 장치 용도로 최신 기준 참고 설정인 FMUv5를 활용합니다:

NuttX 메뉴 설정을 통한 설치

NuttX 운영체제 설정을 수정하려면 PX4 단축 설정을 활용하여 menuconfig 를 실행할 수 있습니다:

make px4_fmu-v5_default menuconfig
make px4_fmu-v5_default qconfig

ubuntu.sh 스크립트를 활용하여 PX4를 우분투에 깔끔하게 설치하려면 NuttX 도구kconfig 도구도 설치해야합니다.

px4-dev-nuttx 도커 컨테이너나 공식적으로 안내하는 macOS용 일반 설치 절차를 따랐다면, (kconfig-mconf를 이미 가지고 있으므로) 이 단계는 굳이 필요하지 않습니다.

어떤 디렉터리에서든 다음 명령을 실행하십시오.

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. development setup이 동작하는지 NuttX 메뉴 설정 도구를 설치했는지 확인하십시오(위 참고).
  2. 소스 코드를 다운로드한 후 기존 대상에 빌드할 수 있는지 확인하십시오:
    git clone --recursive https://github.com/PX4/Firmware.git
    cd Firmware
    make px4_fmu-v5
    
  3. 기존 대상과 동일한(또는 거의 근접한) CPU 형식을 찾아 복사하십시오. 예를 들면 STM32F7의 경우:
    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)과 일치하는 VENDOR, MODEL 값을 업데이트하십시오. (그다음) 직렬 포트를 설정하십시오.
  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: 보드에 붙은 센서를 시작하십시오.

results matching ""

    No results matching ""