Nordic nRF52840-DK 시작하기 - FreeRTOS

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Nordic nRF52840-DK 시작하기

중요

이 라이브러리는 더 이상 사용되지 않는 Amazon-FreeRTOS 리포지토리에서 호스팅됩니다. 새 프로젝트를 생성할 때는 여기서 시작하는 것이 좋습니다. 현재 사용되지 않는 Amazon-FreeRTOS 리포지토리를 기반으로 하는 기존 FreeRTOS 프로젝트가 이미 있는 경우에는 Amazon-FreeRTOS Github 리포지토리 마이그레이션 가이드 섹션을 참조하세요.

이 자습서에서는 Nordic nRF52840-DK를 시작하기 위한 지침을 제공합니다. Nordic nRF52840-DK가 없는 경우 AWS Partner Device Catalog를 방문하여 파트너에서 구입하시기 바랍니다.

시작하려면 FreeRTOS Bluetooth Low Energy를 위해 AWS IoT 및 Amazon Cognito 설정 단원을 수행해야 합니다.

FreeRTOS Bluetooth Low Energy 데모를 실행하려면 Bluetooth 및 Wi-Fi 기능이 있는 iOS 또는 Android 모바일 디바이스도 필요합니다.

참고

iOS 디바이스를 사용하는 경우 데모 모바일 애플리케이션을 빌드하려면 Xcode가 필요합니다. Android 디바이스를 사용하는 경우 Android Studio를 사용하여 데모 모바일 애플리케이션을 빌드할 수 있습니다.

개요

이 자습서에는 다음의 시작하기 단계에 대한 지침이 포함되어 있습니다.

  1. 보드를 호스트 시스템에 연결합니다.

  2. 마이크로 컨트롤러 보드용 내장형 애플리케이션을 개발 및 디버깅하기 위한 소프트웨어를 호스트 시스템에 설치합니다.

  3. FreeRTOS 데모 애플리케이션을 바이너리 이미지로 크로스 컴파일합니다.

  4. 애플리케이션 바이너리 이미지를 보드에 로드한 후 애플리케이션을 실행합니다.

  5. 모니터링 및 디버깅을 위해 직렬 연결로 보드에서 실행되는 애플리케이션과 상호 작용합니다.

Nordic 하드웨어 설정

호스트 컴퓨터를 J2라는 레이블이 지정된 USB 포트에 연결합니다. 이 포트는 Nordic nRF52840 보드의 코인 셀 배터리 홀더 바로 위에 있습니다.

Nordic nRF52840-DK 설정에 대한 자세한 내용은 nRF52840 Development Kit 사용 설명서를 참조하십시오.

개발 환경 설정

Segger Embedded Studio 다운로드 및 설치

FreeRTOS는 Segger Embedded Studio를 Nordic nRF52840-DK의 개발 환경으로 지원합니다.

환경을 설정하려면 호스트 컴퓨터에 Segger Embedded Studio를 다운로드하고 설치해야 합니다.

Segger Embedded Studio를 다운로드하고 설치하려면
  1. Segger Embedded Studio Downloads 페이지로 이동하고 해당 운영 체제의 Embedded Studio for ARM 옵션을 선택합니다.

  2. 설치 관리자를 실행하고 표시되는 메시지에 따라 완료합니다.

FreeRTOS Bluetooth Low Energy Mobile SDK 데모 애플리케이션 설정

Bluetooth Low Energy에서 FreeRTOS 데모 프로젝트를 실행하려면 모바일 디바이스에서 FreeRTOS Bluetooth Low Energy Mobile SDK 데모 애플리케이션을 실행해야 합니다.

FreeRTOS Bluetooth Low Energy Mobile SDK 데모 애플리케이션을 설정하려면
  1. FreeRTOS Bluetooth 디바이스용 Mobile SDK의 지침에 따라 모바일 플랫폼용 SDK를 다운로드하여 호스트 컴퓨터에 설치합니다.

  2. FreeRTOS Bluetooth Low Energy Mobile SDK 데모 애플리케이션의 지침에 따라 모바일 디바이스에서 데모 모바일 애플리케이션을 설정합니다.

직렬 연결 설정

Segger Embedded Studio에는 보드에 대한 직렬 연결을 통해 로그 메시지를 수신하는 데 사용할 수 있는 터미널 에뮬레이터가 포함되어 있습니다.

Segger Embedded Studio와 직렬 연결을 설정하려면
  1. Segger Embedded Studio를 엽니다.

  2. 상단 메뉴에서 대상을 선택하고, Connect J-Link(J-Link 연결)를 선택합니다.

  3. 상단 메뉴에서 도구, Terminal Emulator(터미널 에뮬레이터), 속성을 선택하고 속성을 터미널 에뮬레이터 설치의 지침에 따라 설정합니다.

  4. 상단 메뉴에서 도구, Terminal Emulator(터미널 에뮬레이터), Connect port(포트 연결)(115200,N,8,1)를 선택합니다.

참고

Segger 임베디드 스튜디오 터미널 에뮬레이터는 입력 기능을 지원하지 않습니다. 이 경우 PuTTy, Tera Term 또는 GNU Screen과 같은 터미널 에뮬레이터를 사용하십시오. 터미널 에뮬레이터 설치의 지침에 따라 터미널을 직렬 연결로 보드에 연결하도록 구성합니다.

FreeRTOS 다운로드 및 구성

하드웨어와 환경을 설정한 후 FreeRTOS를 다운로드할 수 있습니다.

FreeRTOS 다운로드

Nordic nRF52840-DK용 FreeRTOS를 다운로드하려면 FreeRTOS GitHub 페이지로 이동하고 리포지토리를 복제합니다. 자세한 내용은 README.md 파일을 참조하십시오.

중요
  • 이 주제에서는 FreeRTOS 다운로드 디렉터리의 경로를 freertos이라고 합니다.

  • freertos 경로의 공백 문자로 인해 빌드 실패가 발생할 수 있습니다. 리포지토리를 복제하거나 복사할 때 생성하는 경로에 공백 문자가 없어야 합니다.

  • Microsoft Windows에서 파일 경로의 최대 길이는 260자입니다. FreeRTOS 다운로드 디렉터리 경로가 길면 빌드 오류가 발생할 수 있습니다.

  • 소스 코드에 심볼 링크가 포함될 수 있으므로 Windows를 사용하여 아카이브를 추출하는 경우 다음을 수행해야 할 수 있습니다.

    • 개발자 모드를 활성화합니다. 또는

    • 관리자 권한으로 승격된 콘솔을 사용합니다.

    이렇게 하면 Windows에서 아카이브를 추출할 때 심볼 링크를 제대로 생성할 수 있습니다. 그렇지 않으면 심볼 링크는 심볼 링크의 경로를 텍스트로 포함하는 일반 파일 또는 비어 있는 일반 파일로 작성됩니다. 자세한 내용은 Symlinks in Windows 10! 블로그 항목을 참조하세요.

    Windows에서 Git을 사용하는 경우 개발자 모드를 활성화하거나 다음을 수행해야 합니다.

    • 다음 명령을 사용하여 core.symlinks를 true로 설정합니다.

      git config --global core.symlinks true
    • 시스템에 쓰는 git 명령(예: git pull, git clonegit submodule update --init --recursive)을 사용할 때마다 관리자 권한으로 승격되는 콘솔을 사용하세요.

프로젝트 구성

데모를 활성화하려면 AWS IoT로 작업하도록 프로젝트를 구성해야 합니다. AWS IoT로 작업하도록 프로젝트를 구성하려면 디바이스를 AWS IoT 사물로 등록해야 합니다. FreeRTOS Bluetooth Low Energy를 위해 AWS IoT 및 Amazon Cognito 설정을 수행할 때 디바이스가 등록되어 있어야 합니다.

AWS IoT 엔드포인트를 구성하려면
  1. AWS IoT 콘솔에 로그인합니다.

  2. 탐색 창에서 설정(Settings)을 선택합니다.

    AWS IoT 엔드포인트가 디바이스 데이터 엔드포인트 텍스트 상자에 표시됩니다. URL은 1234567890123-ats.iot.us-east-1.amazonaws.com와 같아야 합니다. 이 엔드포인트를 기록해 둡니다.

  3. 탐색 창에서 Manage(관리)를 선택한 다음 Things(사물)를 선택합니다. 디바이스의 AWS IoT 사물 이름을 기록해 둡니다.

  4. AWS IoT 엔드포인트와 AWS IoT 사물 이름을 기록했으면 IDE에서 freertos/demos/include/aws_clientcredential.h를 열고 다음 #define 상수의 값을 지정합니다.

    • clientcredentialMQTT_BROKER_ENDPOINT AWS IoT 엔드포인트

    • clientcredentialIOT_THING_NAME 보드의 AWS IoT 사물 이름

데모를 활성화하려면
  1. Bluetooth Low Energy GATT 데모가 활성화되어 있는지 확인합니다. vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/iot_ble_config.h로 이동하여 #define IOT_BLE_ADD_CUSTOM_SERVICES ( 1 )를 정의문 목록에 추가합니다.

  2. vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/aws_demo_config.h를 열고 CONFIG_OTA_MQTT_BLE_TRANSPORT_DEMO_ENABLED 또는 CONFIG_OTA_HTTP_BLE_TRANSPORT_DEMO_ENABLED를 이 예제와 같이 정의합니다.

    /* To run a particular demo you need to define one of these. * Only one demo can be configured at a time * * CONFIG_BLE_GATT_SERVER_DEMO_ENABLED * CONFIG_MQTT_BLE_TRANSPORT_DEMO_ENABLED * CONFIG_SHADOW_BLE_TRANSPORT_DEMO_ENABLED * CONFIG_OTA_MQTT_BLE_TRANSPORT_DEMO_ENABLED * CONFIG_OTA_HTTP_BLE_TRANSPORT_DEMO_ENABLED * CONFIG_POSIX_DEMO_ENABLED * * These defines are used in iot_demo_runner.h for demo selection */ #define CONFIG_OTA_MQTT_BLE_TRANSPORT_DEMO_ENABLED
  3. Nordic 칩에는 RAM(250KB)이 거의 없으므로 각 속성의 크기에 비해 더 큰 GATT 테이블 항목을 허용하도록 BLE 구성을 변경해야 할 수도 있습니다. 이런 방법으로 애플리케이션이 얻는 메모리의 양을 조정할 수 있습니다. 이렇게 하려면 파일 freertos/vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/sdk_config.h에서 다음 속성을 재정의합니다.

    • NRF_SDH_BLE_VS_UUID_COUNT

      공급 업체별 UUID의 수입니다. 새 공급업체별 UUID를 추가할 때 이 수를 1씩 늘립니다.

    • NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE

      속성 테이블 크기(바이트)입니다. 크기는 4의 배수여야 합니다. 이 값은 속성 테이블(특성 크기 포함) 전용으로 설정된 메모리 양을 나타내므로 프로젝트마다 다릅니다. 속성 테이블의 크기를 초과하면 NRF_ERROR_NO_MEM 오류가 발생합니다. NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE를 수정하는 경우 일반적으로 RAM 설정도 다시 구성해야 합니다.

    (테스트의 경우 파일의 위치는 freertos/vendors/nordic/boards/nrf52840-dk/aws_tests/config_files/sdk_config.h입니다.)

FreeRTOS 데모 프로젝트 빌드 및 실행

FreeRTOS를 다운로드하고 데모 프로젝트를 구성하면 보드에서 데모 프로젝트를 빌드하고 실행할 준비가 된 것입니다.

중요

이 보드에서 처음으로 데모를 실행하는 경우 데모를 실행하려면 먼저 부트로더를 보드로 플래시해야 합니다.

부트로더를 빌드 및 플래시하려면 아래 단계를 따르십시오. 그러나 projects/nordic/nrf52840-dk/ses/aws_demos/aws_demos.emProject 프로젝트 파일 대신 projects/nordic/nrf52840-dk/ses/aws_demos/bootloader/bootloader.emProject를 사용합니다.

Segger Embedded Studio에서 FreeRTOS Bluetooth Low Energy 데모를 빌드하고 실행하려면
  1. Segger Embedded Studio를 엽니다. 상단 메뉴에서 파일을 선택하고 Open Solution(솔루션 열기)을 선택한 후 projects/nordic/nrf52840-dk/ses/aws_demos/aws_demos.emProject 프로젝트 파일로 이동합니다.

  2. Segger Embedded Studio 터미널 에뮬레이터를 사용하는 경우 상단 메뉴에서 도구를 선택한 후 Terminal Emulator(터미널 에뮬레이터), Terminal Emulator(터미널 에뮬레이터)를 선택하여 직렬 연결에서 정보를 표시합니다.

    다른 터미널 도구를 사용하는 경우 직렬 연결에서 출력할 도구를 모니터링할 수 있습니다.

  3. Project Explorer에서 aws_demos 데모 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 빌드를 선택합니다.

    참고

    Segger Embedded Studio를 처음 사용하는 경우 "No license for commercial use"라는 경고가 표시될 수 있습니다. Segger Embedded Studio는 Nordic Semiconductor 디바이스에서 무료로 사용할 수 있습니다. 무료 라이선스를 요청한 다음 설치 중에 무료 라이선스 활성화를 선택하고 지침을 따릅니다.

  4. 디버깅을 선택한 다음 이동을 선택합니다.

    데모가 시작되면 Bluetooth Low Energy를 통해 모바일 장치와 페어링되기를 기다립니다.

  5. MQTT over Bluetooth Low Energy 데모 애플리케이션에 대한 지침에 따라 FreeRTOS Bluetooth Low Energy Mobile SDK 데모 애플리케이션을 모바일 MQTT 프록시로 사용하여 데모를 완료합니다.

문제 해결

FreeRTOS 시작하기에 대한 일반 문제 해결 정보는 시작하기 문제 해결 섹션을 참조하세요.