

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

# Infineon XMC4800 IoT 연결 키트 시작하기
<a name="getting_started_infineon"></a>

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

이 자습서에서는 Infineon XMC4800 IoT 연결 키트를 시작하기 위한 지침을 제공합니다. Infineon XMC4800 IoT 연결 키트가 없는 경우 AWS파트너 디바이스 카탈로그를 방문하여 [ 파트너](https://devices.amazonaws.com/detail/a3G0L00000AANsbUAH/XMC4800-IoT-Amazon-FreeRTOS-Connectivity-Kit-WiFi)에서 구매하세요.

보드와 직렬 연결을 열고 로깅 및 디버깅 정보를 보려는 경우 XMC4800 IoT Connectivity Kit 외에 3.3V USB/직렬 변환기도 필요합니다. CP2104는 Adafruit의 [CP2104 Friend](https://www.adafruit.com/product/3309)와 같은 보드에서 널리 사용되는 일반적인 USB/직렬 변환기입니다.

시작하기 전에 AWS IoT및 FreeRTOS 다운로드를 구성하여 디바이스를 AWS클라우드에 연결해야 합니다. 자세한 내용은 [첫 번째 단계](freertos-prereqs.md) 섹션을 참조하세요. 이 자습서에서는 FreeRTOS 다운로드 디렉터리의 경로를 `freertos`라고 합니다.

## 개요
<a name="w2aac31b9b7c25c27c13"></a>

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

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

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

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

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

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

FreeRTOS는 Infineon의 DAVE 개발 환경을 사용하여 XMC4800을 프로그래밍합니다. 온보드 디버거와 통신하려면 시작하기 전에 DAVE와 몇 가지 J-Link 드라이버를 다운로드하여 설치해야 합니다.

### DAVE 설치
<a name="install-dave"></a>

1. Infineon의 [DAVE 소프트웨어 다운로드](https://infineoncommunity.com/dave-download_ID645) 페이지로 이동합니다.

1. 운영 체제에 맞는 DAVE 패키지를 선택하고 등록 정보를 제출합니다. Infineon에 등록한 후 .zip 파일의 다운로드 링크가 포함된 확인 이메일을 수신해야 합니다.

1. DAVE 패키지 .zip 파일(`DAVE_version_os_date.zip`)을 다운로드하고 DAVE를 설치하려는 위치(예: `C:\DAVE4`)에 파일의 압축을 풉니다.
**참고**  
일부 Windows 사용자는 Windows 탐색기를 사용하여 파일의 압축을 푸는 동안 문제를 보고했습니다. 7-Zip과 같은 타사 프로그램을 사용하는 것이 좋습니다.

1. DAVE를 시작하려면 압축을 푼 `DAVE_version_os_date.zip` 폴더에 있는 실행 파일을 실행합니다.

자세한 내용은 [DAVE 빠른 시작 가이드](https://www.infineon.com/dgdl/Infineon-DAVE_Quick_Start-GS-v02_00-EN.pdf?fileId=5546d4624cb7f111014d059f7b8c712d)를 참조하십시오.

### Segger J-Link 드라이버 설치
<a name="install-jlink"></a>

XMC4800 Relax EtherCAT 보드의 온보드 디버깅 프로브와 통신하려면 J-Link 소프트웨어 및 설명서 팩에 포함된 드라이버가 필요합니다. Segger의 [J-Link 소프트웨어 다운로드](https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack) 페이지에서 J-Link 소프트웨어 및 설명서 팩을 다운로드할 수 있습니다.

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

직렬 연결을 설정하는 것은 선택 사항이지만 설정하는 것이 좋습니다. 직렬 연결을 사용하면 보드가 개발 머신에서 볼 수 있는 형식으로 로깅 및 디버깅 정보를 전송할 수 있습니다.

XMC4800 데모 애플리케이션은 XMC4800 Relax EtherCAT 보드의 실크스크린에서 레이블 지정되는 P0.0 및 P0.1 핀의 UART 직렬 연결을 사용합니다. 직렬 연결을 설정하려면:

1. "RX<P0.0" 레이블이 있는 핀을 USB/직렬 변환기의 "TX" 핀에 연결합니다.

1. "TX>P0.1" 레이블이 있는 핀을 USB/직렬 변환기의 "RX" 핀에 연결합니다.

1. 직렬 변환기의 접지 핀을 보드에서 "GND" 레이블이 있는 핀 중 하나에 연결합니다. 디바이스는 일반 접지를 공유해야 합니다.

전원은 USB 디버깅 포트에서 공급되므로 직렬 어댑터의 양전압 핀을 보드에 연결하지 마십시오.

**참고**  
일부 직렬 케이블은 5V 신호 전달 수준을 사용합니다. XMC4800 보드와 Wi-Fi Click 모들에는 3.3V가 필요합니다. 보드의 IOREF 점퍼를 사용하여 보드의 신호를 5V로 변경하지 마십시오.

 케이블이 연결된 상태로 [GNU Screen](https://www.gnu.org/software/screen/)과 같은 터미널 에뮬레이터에서 직렬 연결을 엽니다. 보드 속도는 기본적으로 115200로 설정되며 8 데이터 비트, 패리티 없음, 1 정지 비트가 설정됩니다.

## 클라우드에서 MQTT 메시지 모니터링
<a name="infineon-monitor-mqtt"></a>

FreeRTOS 데모를 실행하기 전에 AWS IoT콘솔에서 MQTT 클라이언트를 설정하여 디바이스가 AWS클라우드로 보내는 메시지를 모니터링할 수 있습니다.

**MQTT 클라이언트를 사용하여 AWS IoTMQTT 주제를 구독하려면**

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

1. 탐색 창에서 **테스트**를 선택한 다음 **MQTT 테스트 클라이언트**를 선택하여 MQTT 클라이언트를 엽니다.

1. **구독 주제**에 ***your-thing-name*/example/topic**을 입력한 다음 **주제 구독**을 선택합니다.

데모 프로젝트가 디바이스에서 성공적으로 실행되면 ‘Hello World\$1’가 구독한 주제로 여러 번 전송된 것을 볼 수 있습니다.

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

### FreeRTOS 데모를 DAVE로 가져오기
<a name="infineon-freertos-import-project"></a><a name="infineon-load-project"></a>

1. DAVE를 시작합니다.

1. DAVE에서 **File(파일)**, **Import(가져오기)**를 선택합니다. **Import(가져오기)** 창에서 **Infineon** 폴더를 확장하고 **DAVE Project(DAVE 프로젝트)**를 선택한 다음 **Next(다음)**를 선택합니다.

1. **Import DAVE Projects(DAVE 프로젝트 가져오기)** 창에서 **Select Root Directory(루트 디렉터리 선택)**를 선택하고 **Browse(가져오기)**를 선택한 다음 XMC4800 데모 프로젝트를 선택합니다.

   FreeRTOS 다운로드의 압축을 푼 디렉터리에서 데모 프로젝트는 `projects/infineon/xmc4800_iotkit/dave4/aws_demos`에 있습니다.

   **Copy Projects Into Workspace(프로젝트를 작업 영역에 복사)**가 선택 해제된 상태인지 확인합니다.

1. **마침**을 클릭합니다.

   `aws_demos` 프로젝트를 작업 공간으로 가져오고 활성화한 상태여야 합니다.

1. **Project(프로젝트)** 메뉴에서 **Build Active Project(활성 프로젝트 빌드)**를 선택합니다.

   프로젝트가 오류 없이 빌드되는지 확인합니다.

### FreeRTOS 데모 프로젝트 실행
<a name="infineon-run-examples"></a>

1. USB 케이블을 사용하여 XMC4800 IoT Connectivity Kit를 컴퓨터에 연결합니다. 보드에는 두 개의 microUSB 커넥터가 있습니다. "X101" 레이블이 있는 커넥터를 사용합니다. 보드의 실크스크린에서 디버그는 이 커넥터 옆에 나타납니다.

1. **Project(프로젝트)** 메뉴에서 **Rebuild Active Project(활성 프로젝트 다시 빌드)**를 선택하여 `aws_demos`를 다시 빌드하고 구성 변경 사항이 적용되었는지 확인합니다.

1. **Project Explorer(프로젝트 탐색기)**에서 `aws_demos`를 마우스 오른쪽 버튼으로 클릭하고 **Debug As(다른 형식으로 디버그)**를 선택한 다음 **DAVE C/C\$1\$1 Application(DAVE C/C\$1\$1 애플리케이션)**을 선택합니다.

1. **GDB SEGGER J-Link Debugging(GDB SEGGER J-Link 디버깅)**을 두 번 클릭하여 디버그 확인을 생성합니다. **Debug(디버그)**를 선택합니다.

1. 디버거가 `main()`의 중단점에서 중지되면 **실행** 메뉴에서 **다시 시작**을 선택합니다.

AWS IoT콘솔에서 4\$15단계의 MQTT 클라이언트는 디바이스에서 보낸 MQTT 메시지를 표시해야 합니다. 직렬 연결을 사용하는 경우 UART 출력에 다음과 비슷한 내용이 나타납니다.

```
0 0 [Tmr Svc] Starting key provisioning...
1 1 [Tmr Svc] Write root certificate...
2 4 [Tmr Svc] Write device private key...
3 82 [Tmr Svc] Write device certificate...
4 86 [Tmr Svc] Key provisioning done...
5 291 [Tmr Svc] Wi-Fi module initialized. Connecting to AP...
.6 8046 [Tmr Svc] Wi-Fi Connected to AP. Creating tasks which use network...
7 8058 [Tmr Svc] IP Address acquired [IP Address]
8 8058 [Tmr Svc] Creating MQTT Echo Task...
9 8059 [MQTTEcho] MQTT echo attempting to connect to [MQTT Broker].
...10 23010 [MQTTEcho] MQTT echo connected.
11 23010 [MQTTEcho] MQTT echo test echoing task created.
.12 26011 [MQTTEcho] MQTT Echo demo subscribed to iotdemo/#
13 29012 [MQTTEcho] Echo successfully published 'Hello World 0'
.14 32096 [Echoing] Message returned with ACK: 'Hello World 0 ACK'
.15 37013 [MQTTEcho] Echo successfully published 'Hello World 1'
16 40080 [Echoing] Message returned with ACK: 'Hello World 1 ACK'
.17 45014 [MQTTEcho] Echo successfully published 'Hello World 2'
.18 48091 [Echoing] Message returned with ACK: 'Hello World 2 ACK'
.19 53015 [MQTTEcho] Echo successfully published 'Hello World 3'
.20 56087 [Echoing] Message returned with ACK: 'Hello World 3 ACK'
.21 61016 [MQTTEcho] Echo successfully published 'Hello World 4'
22 64083 [Echoing] Message returned with ACK: 'Hello World 4 ACK'
.23 69017 [MQTTEcho] Echo successfully published 'Hello World 5'
.24 72091 [Echoing] Message returned with ACK: 'Hello World 5 ACK'
.25 77018 [MQTTEcho] Echo successfully published 'Hello World 6'
26 80085 [Echoing] Message returned with ACK: 'Hello World 6 ACK'
.27 85019 [MQTTEcho] Echo successfully published 'Hello World 7'
.28 88086 [Echoing] Message returned with ACK: 'Hello World 7 ACK'
.29 93020 [MQTTEcho] Echo successfully published 'Hello World 8'
.30 96088 [Echoing] Message returned with ACK: 'Hello World 8 ACK'
.31 101021 [MQTTEcho] Echo successfully published 'Hello World 9'
32 104102 [Echoing] Message returned with ACK: 'Hello World 9 ACK'
.33 109022 [MQTTEcho] Echo successfully published 'Hello World 10'
.34 112047 [Echoing] Message returned with ACK: 'Hello World 10 ACK'
.35 117023 [MQTTEcho] Echo successfully published 'Hello World 11'
36 120089 [Echoing] Message returned with ACK: 'Hello World 11 ACK'
.37 122068 [MQTTEcho] MQTT echo demo finished.
38 122068 [MQTTEcho] ----Demo finished----
```

### CMake로 FreeRTOS 데모 빌드
<a name="infineon-cmake"></a>

FreeRTOS 개발용 IDE를 사용하지 않으려는 경우 CMake를 사용하여 데모 애플리케이션이나 타사 코드 편집기 및 디버깅 도구를 사용하여 개발한 애플리케이션을 빌드하고 실행할 수 있습니다.

**참고**  
이 단원에서는 MingW를 사용하여 Windows에서 CMake를 네이티브 빌드 시스템으로 사용하는 방법을 다룹니다. 다른 운영 체제 및 옵션과 함께 CMake를 사용하는 방법에 대한 자세한 내용은 [FreeRTOS에서 CMake 사용](getting-started-cmake.md) 단원을 참조하십시오. ([MinGW](https://sourceforge.net/projects/mingw-w64/files/)는 네이티브 Microsoft Windows 애플리케이션을 위한 최소한의 개발 환경입니다.)

**CMake로 FreeRTOS 데모를 빌드하려면**

1. GNU Arm Embedded Toolchain을 설정합니다.

   1. [Arm Embedded Toolchain 다운로드 페이지](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)에서 Windows 버전의 도구 체인을 다운로드합니다.
**참고**  
"8-2018-q4-major" 버전에는 "objcopy" 유틸리티에 대해 [보고된 버그](https://bugs.launchpad.net/gcc-arm-embedded/+bug/1810274)가 있으므로 해당 버전 이외의 버전을 다운로드하는 것이 좋습니다.

   1. 다운로드한 도구 체인 설치 프로그램을 열고 설치 마법사의 지시에 따라 도구 체인을 설치합니다.
**중요**  
설치 마법사의 마지막 페이지에서 **Add path to environment variable(환경 변수에 경로 추가)**를 선택하여 시스템 경로 환경 변수에 도구 체인 경로를 추가합니다.

1. CMake 및 MingW를 설치합니다.

   지침은 [CMake 사전 조건](getting-started-cmake.md#building-cmake-prereqs)을 참조하십시오.

1. 생성된 빌드 파일을 포함할 폴더(*build-folder*)를 생성합니다.

1. 디렉터리를 FreeRTOS 다운로드 디렉터리(`freertos`)로 변경하고 다음 명령을 사용하여 빌드 파일을 생성합니다.

   ```
   cmake -DVENDOR=infineon -DBOARD=xmc4800_iotkit -DCOMPILER=arm-gcc -S . -B build-folder -G "MinGW Makefiles" -DAFR_ENABLE_TESTS=0
   ```

1. 디렉터리를 빌드 디렉터리(*build-folder*)로 변경하고 다음 명령을 사용하여 바이너리를 빌드합니다.

   ```
   cmake --build . --parallel 8
   ```

   이 명령은 출력 바이너리 `aws_demos.hex`를 빌드 디렉터리로 빌드합니다.

1. [JLINK](#install-jlink)를 사용하여 이미지를 플래시 및 실행합니다.

   1. 빌드 디렉터리(*build-folder*)에서 다음 명령을 사용하여 플래시 스크립트를 생성합니다.

      ```
      echo loadfile aws_demos.hex > flash.jlink
      ```

      ```
      echo r >> flash.jlink
      ```

      ```
      echo g >> flash.jlink
      ```

      ```
      echo q >> flash.jlink
      ```

   1. JLNIK 실행 파일을 사용하여 이미지를 플래시합니다.

      ```
      JLINK_PATH\JLink.exe  -device XMC4800-2048 -if SWD -speed auto -CommanderScript flash.jlink
      ```

      애플리케이션 로그는 보드에서 설정한 [직렬 연결](#install-serial-connection)을 통해 볼 수 있어야 합니다.

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

아직 구성하지 않았다면 디바이스를 AWS클라우드에 연결하도록 AWS IoT및 FreeRTOS 다운로드를 구성해야 합니다. 자세한 내용은 [첫 번째 단계](freertos-prereqs.md) 섹션을 참조하세요.

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