macOS에서 SPRESENSE SDK를 사용한 개발 환경 준비

SONY로부터 발매되고 있는 SPRESENSE를 사용해 보고 싶어졌으므로 개발 환경을 준비했습니다.

공식적으로는 Arduino Library와 SPRESENSE SDK와 2개의 개발 환경이 준비되어 있습니다.

Arduino Library는 Arduino IDE에서 개발하므로 macOS, Linux, Windows 및 멀티 플랫폼에서 개발할 수 있습니다.
한편, SPRESENSE의 멀티 코어를 이용한 개발 등, 고급 개발은 할 수 없습니다.

SPRESENSE SDK를 사용하면 SPRESENSE의 모든 기능을 사용할 수 있지만 개발 환경은 Ubuntu에만 대응하고 있습니다.

이번은 Docker를 이용하는 것으로, macOS 위에서 빌드를 실시해, 마이크로 컴퓨터에의 기입까지가 할 수 있도록(듯이) 시험해 보고 싶습니다.

기본적으로는 공식 SPRESENSE SDK 자습서에 따라 작업을 진행해 나가겠습니다만, Ubuntu용의 설명이 되어 있기 때문에 개변하면서 진행해 갑니다.

사전 준비


  • git 명령이 필요합니다. Xcode를 설치하고 git을 사용할 수 있도록하십시오.
  • Homebrew가 필요합니다. 여기 문서에 따라 설치하십시오.
  • Docker가 필요합니다. Docker Desktop for Mac을 설치하십시오.
  • USB 시리얼 변환 칩 드라이버가 필요합니다. 여기 에서 CP210x USB to serial driver for Macintosh OSX를 다운로드하여 설치합니다.
  • Python3계

  • kconfig-frontends 설치



    SPRESENSE SDK에서는 빌드 환경의 설정 등에 kconfig를 이용하고 있습니다.
    Homebrew로 설치할 수 있었으므로 설치합니다.
    brew tap PX4/homebrew-px4
    brew update
    brew install kconfig-frontends
    

    SPRESENSE SDK 다운로드


    git clone --recursive https://github.com/sonydevworld/spresense.git
    

    샘플 애플리케이션 빌드 설정



    구성은 mac에서 수행됩니다.
    cd spresense/sdk
    tools/config.py --kernel release
    tools/config.py examples/hello
    

    도중에 uname 오류가 발생하지만 괜찮습니다. (Cygwin의 체크에만 -o 옵션은 사용되지 않습니다)

    작동하면 마지막으로 다음과 같은 펌웨어를 쓰는 지시가 출력됩니다.
    WARNING: New loader v1.2.1 is required, please download and install.
             Download URL   : https://developer.sony.com/file/download/download-spresense-firmware-v1-2-001
             Install command:
                              1. Extract loader archive into host PC.
                                 ./tools/flash.sh -e <download zip file>
                              2. Flash loader into Board.
                                 ./tools/flash.sh -l /Users/chibiegg/Downloads/spresense/firmware/spresense -c <port>
    

    샘플 애플리케이션 빌드



    빌드는 Docker 이미지와 시작 스크립트가 준비되어 있으므로 그 쪽을 사용합니다.
    cd ../
    source ./spresense_env.sh 
    spresense make -j8 buildkernel
    spresense make -j8
    
    spresense_env.sh 를 로드하면 spresense 명령이 Alias에서 제공됩니다.spresense 다음에 실행할 명령을 지정하면 Docker 이미지에서 실행되도록 만들어집니다.

    실행할 때는 ./spresense 디렉토리가 현재 디렉토리여야 합니다.

    잘하면 sdk/nuttx.spk 파일이 생성되었습니다.

    부트 로더 쓰기



    방금 출력에 표시된 URL( htps : //로 ゔぇぺぺr. 그 ny. 코 m / 후 ぇ / 도 w ぉ 아 d / 드 w ぉ 아 d sp )에서 ZIP을 다운로드합니다.

    표시된 대로 명령을 실행하여 부트 로더를 씁니다.
    cd sdk
    ./tools/flash.sh -e /Users/chibiegg/Downloads/spresense-binaries-v1.2.1.zip
    ./tools/flash.sh -l /Users/chibiegg/Downloads/spresense/firmware/spresense -c /dev/tty.SLAB_USBtoUART
    

    잘 쓸 수 있으면 다음과 같은 출력이 나옵니다.
    >>> Install files ...
    install -b 115200
    Install /Users/chibiegg/Downloads/spresense/firmware/spresense/loader.espk
    |0%-----------------------------50%------------------------------100%|
    ######################################################################
    
    118832 bytes loaded.
    Package validation is OK.
    Saving package to "loader"
    updater# install -b 115200
    Install /Users/chibiegg/Downloads/spresense/firmware/spresense/AESM.espk
    |0%-----------------------------50%------------------------------100%|
    ######################################################################
    
    28944 bytes loaded.
    Package validation is OK.
    Saving package to "AESM"
    updater# install -b 115200
    Install /Users/chibiegg/Downloads/spresense/firmware/spresense/gnssfw.espk
    |0%-----------------------------50%------------------------------100%|
    ######################################################################
    
    450768 bytes loaded.
    Package validation is OK.
    Saving package to "gnssfw"
    updater# install -b 115200
    Install /Users/chibiegg/Downloads/spresense/firmware/spresense/dnnrt-mp.espk
    |0%-----------------------------50%------------------------------100%|
    ######################################################################
    
    88352 bytes loaded.
    Package validation is OK.
    Saving package to "dnnrt-mp"
    updater# sync
    updater# Restarting the board ...
    reboot
    

    애플리케이션 쓰기



    방금 작성한 샘플 프로그램을 작성합니다.
    ./tools/flash.sh -c /dev/tty.SLAB_USBtoUART nuttx.spk 
    

    이런 느낌의 출력이 나옵니다.
    >>> Install files ...
    install -b 115200
    Install nuttx.spk
    |0%-----------------------------50%------------------------------100%|
    ######################################################################
    
    154304 bytes loaded.
    Package validation is OK.
    Saving package to "nuttx"
    updater# sync
    updater# Restarting the board ...
    reboot
    

    실행



    그리고는, 원의 튜토리얼대로 minicom등으로 시리얼 포트에 접속해, hello 커멘드를 실행할 수 있으면 OK입니다.

    minicom도 brew로 설치할 수 있습니다.
    brew install minicom
    

    좋은 웹페이지 즐겨찾기