

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

# Nordic nRF52840-DK 시작하기
<a name="getting_started_nordic"></a>

**중요**  <a name="deprecation-message"></a>
이 라이브러리는 더 이상 사용되지 않는 Amazon-FreeRTOS 리포지토리에서 호스팅됩니다. 새 프로젝트를 생성할 때는 [여기서 시작](freertos-getting-started-modular.md)하는 것이 좋습니다. 현재 사용되지 않는 Amazon-FreeRTOS 리포지토리를 기반으로 하는 기존 FreeRTOS 프로젝트가 이미 있는 경우에는 [Amazon-FreeRTOS Github 리포지토리 마이그레이션 가이드](github-repo-migration.md) 섹션을 참조하세요.

이 자습서에서는 Nordic nRF52840-DK를 시작하기 위한 지침을 제공합니다. Nordic nRF52840-DK가 없는 경우 AWS 파트너 디바이스 카탈로그를 방문하여 [파트너](https://devices.amazonaws.com/detail/a3G0L00000AANtrUAH/nRF52840-Development-Kit)에서 구매하세요.

시작하려면 [FreeRTOS Bluetooth Low Energy용 AWS IoT 및 Amazon Cognito 설정](ble-demo.md#set-up-ble-demo-aws) 단원을 수행해야 합니다.

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

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

## 개요
<a name="getting_started_nordic-overview"></a>

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

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

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

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

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

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

## Nordic 하드웨어 설정
<a name="nordic-setup-hardware"></a>

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

Nordic nRF52840-DK 설정에 대한 자세한 내용은 [nRF52840 Development Kit 사용 설명서](http://infocenter.nordicsemi.com/pdf/nRF52840_DK_User_Guide_v1.2.pdf)를 참조하십시오.

## 개발 환경 설정
<a name="nordic-setup-env"></a>

### Segger Embedded Studio 다운로드 및 설치
<a name="install-embedded-studio"></a>

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

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

**Segger Embedded Studio를 다운로드하고 설치하려면**

1. [Segger Embedded Studio Downloads](https://www.segger.com/downloads/embedded-studio/) 페이지로 이동하고 해당 운영 체제의 Embedded Studio for ARM 옵션을 선택합니다.

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

### FreeRTOS Bluetooth Low Energy Mobile SDK 데모 애플리케이션 설정
<a name="install-mobile-sdks"></a>

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

**FreeRTOS Bluetooth Low Energy Mobile SDK 데모 애플리케이션을 설정하려면**

1. [FreeRTOS 블루투스 디바이스용 모바일 SDK](freertos-ble-mobile.md)의 지침에 따라 모바일 플랫폼용 SDK를 다운로드하여 호스트 컴퓨터에 설치합니다.

1. [FreeRTOS 블루투스 로우 에너지 모바일 SDK 데모 애플리케이션](ble-demo.md#ble-sdk-app)의 지침에 따라 모바일 디바이스에서 데모 모바일 애플리케이션을 설정합니다.

## 직렬 연결 설정
<a name="nordic-serial-connection"></a>

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

**Segger Embedded Studio와 직렬 연결을 설정하려면**

1. Segger Embedded Studio를 엽니다.

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

1. 상단 메뉴에서 **도구**, **Terminal Emulator(터미널 에뮬레이터)**, **속성**을 선택하고 속성을 [터미널 에뮬레이터 설치](gsg-troubleshooting.md#uart-term)의 지침에 따라 설정합니다.

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

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

## FreeRTOS 다운로드 및 구성
<a name="nordic-download-and-configure"></a>

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

### FreeRTOS 다운로드
<a name="nordic-download"></a>

Nordic nRF52840-DK용 FreeRTOS를 다운로드하려면 [FreeRTOS GitHub 페이지](https://github.com/aws/amazon-freertos)로 이동하고 리포지토리를 복제합니다. 자세한 내용은 [README.md](https://github.com/aws/amazon-freertos/blob/main/README.md) 파일을 참조하십시오.

**중요**  
이 주제에서는 FreeRTOS 다운로드 디렉터리의 경로를 `freertos`이라고 합니다.
`freertos` 경로의 공백 문자로 인해 빌드 실패가 발생할 수 있습니다. 리포지토리를 복제하거나 복사할 때 생성하는 경로에 공백 문자가 없어야 합니다.
Microsoft Windows에서 파일 경로의 최대 길이는 260자입니다. FreeRTOS 다운로드 디렉터리 경로가 길면 빌드 오류가 발생할 수 있습니다.
소스 코드에 심볼 링크가 포함될 수 있으므로 Windows를 사용하여 아카이브를 추출하는 경우 다음을 수행해야 할 수 있습니다.  
[개발자 모드](https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development)를 활성화합니다. 또는,
관리자 권한으로 승격된 콘솔을 사용합니다.
이렇게 하면 Windows에서 아카이브를 추출할 때 심볼 링크를 제대로 생성할 수 있습니다. 그렇지 않으면 심볼 링크는 심볼 링크의 경로를 텍스트로 포함하는 일반 파일 또는 비어 있는 일반 파일로 작성됩니다. 자세한 내용은 [Symlinks in Windows 10\$1](https://blogs.windows.com/windowsdeveloper/2016/12/02/symlinks-windows-10/) 블로그 항목을 참조하세요.  
Windows에서 Git을 사용하는 경우 개발자 모드를 활성화하거나 다음을 수행해야 합니다.  
다음 명령을 사용하여 `core.symlinks`를 true로 설정합니다.  

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

### 프로젝트 구성
<a name="nordic-freertos-config-project"></a>

데모를 활성화하려면 작업할 프로젝트를 구성해야 합니다 AWS IoT. 작업할 프로젝트를 구성하려면 AWS IoT디바이스를 AWS IoT 사물로 등록해야 합니다. [FreeRTOS Bluetooth Low Energy용 AWS IoT 및 Amazon Cognito 설정](ble-demo.md#set-up-ble-demo-aws)을 수행할 때 디바이스가 등록되어 있어야 합니다.

**AWS IoT 엔드포인트를 구성하려면**

1. [AWS IoT 콘솔](https://console.aws.amazon.com/iotv2/)에 로그인합니다.

1. 탐색 창에서 **설정**을 선택합니다.

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

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

1.  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 )`를 정의문 목록에 추가합니다.

1. `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
   ```

1. Nordic 칩에는 RAM(250KB)이 거의 없으므로 각 속성의 크기에 비해 더 큰 GATT 테이블 항목을 허용하도록 BLE 구성을 변경해야 할 수도 있습니다. 이런 방법으로 애플리케이션이 얻는 메모리의 양을 조정할 수 있습니다. 이렇게 하려면 파일 `freertos/vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/sdk_config.h`에서 다음 속성을 재정의합니다.
   + NRF\$1SDH\$1BLE\$1VS\$1UUID\$1COUNT

     공급 업체별 UUID의 수입니다. 새 공급업체별 UUID를 추가할 때 이 수를 1씩 늘립니다.
   + NRF\$1SDH\$1BLE\$1GATTS\$1ATTR\$1TAB\$1SIZE

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

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

## FreeRTOS 데모 프로젝트 빌드 및 실행
<a name="nordic-build-and-run-example"></a>

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` 프로젝트 파일로 이동합니다.

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

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

1. **Project Explorer**에서 `aws_demos` 데모 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 **빌드**를 선택합니다.
**참고**  
Segger Embedded Studio를 처음 사용하는 경우 "No license for commercial use"라는 경고가 표시될 수 있습니다. Segger Embedded Studio는 Nordic Semiconductor 디바이스에서 무료로 사용할 수 있습니다. [무료 라이선스를 요청](http://license.segger.com/Nordic.cgi)한 다음 설치 중에 **무료 라이선스 활성화**를 선택하고 지침을 따릅니다.

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

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

1. [MQTT over Bluetooth Low Energy 데모 애플리케이션](https://docs.aws.amazon.com/freertos/latest/userguide/ble-demo.html#ble-demo-mqtt)에 대한 지침에 따라 FreeRTOS Bluetooth Low Energy Mobile SDK 데모 애플리케이션을 모바일 MQTT 프록시로 사용하여 데모를 완료합니다.

## 문제 해결
<a name="nordic-troubleshooting"></a>

FreeRTOS 시작하기에 대한 일반 문제 해결 정보는 [시작하기 문제 해결](gsg-troubleshooting.md) 섹션을 참조하세요.