Infineon OPTIGA Trust X 및 XMC4800 IoT 연결 키트 시작하기 - 무료RTOS

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

Infineon OPTIGA Trust X 및 XMC4800 IoT 연결 키트 시작하기

중요

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

이 자습서에서는 Infineon OPTIGA Trust X 보안 요소 및 XMC4800 IoT 연결 키트를 시작하기 위한 지침을 제공합니다. Infineon XMC4800 IoT 연결 키트 시작하기 자습서와 비교하여, 이 가이드는 Infineon OPTIGA Trust X 보안 요소를 사용하여 보안 자격 증명을 제공하는 방법을 보여줍니다.

다음 하드웨어가 필요합니다.

  1. 호스트 MCU - Infineon XMC4800 IoT 연결 키트. AWS Partner Device Catalog를 방문하여 파트너에서 구입하시기 바랍니다.

  2. 보안 확장 팩:

    • 보안 요소 - Infineon OPTIGA Trust X.

      AWS Partner Device Catalog를 방문하여 파트너에서 구입하시기 바랍니다.

    • 개인화 보드 - Infineon OPTIGA 개인화 보드.

    • 어댑터 보드 - Infineon MyIoT 어댑터.

여기 나와 있는 단계를 따르려면 보드와의 직렬 연결을 열어서 로깅 및 디버깅 정보를 확인해야 합니다. (한 단계에서는 보드의 직렬 디버깅 출력에서 퍼블릭 키를 복사하여 파일에 붙여 넣어야 합니다.) 이를 위해서는 XMC4800 IoT 연결 키트에 추가로 3.3V USB/직렬 변환기가 필요합니다. JBtek EL - PN-47310126 USB/직렬 변환기는 이 데모에서 작동하는 것으로 알려져 있습니다. 또한 Infineon MyIoT 어댑터 보드에 직렬 케이블을 연결하려면 3개의 수-수 점퍼 와이어(수신(RX), 전송(TX) 및 접지(GND))가 필요합니다.

시작하려면 먼저 디바이스를 AWS 클라우드에 연결하도록 AWS IoT 및 FreeRTOS 다운로드를 구성해야 합니다. 지침은 옵션 #2: 온보드 프라이빗 키 생성 단원을 참조하세요. 이 자습서에서는 FreeRTOS 다운로드 디렉터리의 경로를 freertos라고 합니다.

개요

이 자습서에 포함된 단계는 다음과 같습니다.

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

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

  3. 애플리케이션 이진 이미지를 보드에 로드한 다음 애플리케이션을 실행합니다.

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

개발 환경 설정

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

DAVE 설치

  1. Infineon의 DAVE 소프트웨어 다운로드 페이지로 이동합니다.

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

  3. DAVE 패키지 .zip 파일(DAVE_version_os_date.zip)을 다운로드하고 DAVE를 설치하려는 위치(예: C:\DAVE4)에 파일의 압축을 풉니다.

    참고

    일부 Windows 사용자는 Windows 탐색기를 사용하여 파일의 압축을 푸는 동안 문제를 보고했습니다. 7-Zip과 같은 타사 프로그램을 사용하는 것이 좋습니다.

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

자세한 내용은 DAVE 빠른 시작 가이드를 참조하십시오.

XMC4800 IoT 연결 키트의 온보드 디버깅 프로브와 통신하려면 J-Link 소프트웨어 및 설명서 팩에 포함된 드라이버가 필요합니다. Segger의 J-Link 소프트웨어 다운로드 페이지에서 J-Link 소프트웨어 및 설명서 팩을 다운로드할 수 있습니다.

직렬 연결 설정

USB/직렬 변환기 케이블을 Infineon Shield2Go 어댑터에 연결합니다. 이렇게 하면 보드가 개발 머신에서 볼 수 있는 형식으로 로깅 및 디버깅 정보를 전송할 수 있습니다. 직렬 연결을 설정하려면:

  1. RX 핀을 USB/직렬 변환기의 TX 핀에 연결합니다.

  2. TX 핀을 USB/직렬 변환기의 RX 핀에 연결합니다.

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

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

참고

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

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

클라우드에서 MQTT 메시지 모니터링

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

AWS IoT MQTT 클라이언트를 사용하여 MQTT 주제를 구독하려면
  1. AWS IoT 콘솔에 로그인합니다.

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

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

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

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

FreeRTOS 데모를 DAVE로 가져오기

  1. DAVE를 시작합니다.

  2. DAVE에서 파일을 선택한 후 가져오기를 선택합니다. Infineon 폴더를 확장하고 DAVE Project(DAVE 프로젝트)를 선택한 후다음을 선택합니다.

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

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

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

  4. [마침]을 클릭합니다.

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

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

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

FreeRTOS 데모 프로젝트 실행

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

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

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

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

여기서 옵션 #2: 온보드 프라이빗 키 생성의 퍼블릭 키 추출 단계를 계속 진행합니다. 모든 단계가 완료되면 AWS IoT 콘솔로 이동합니다. 디바이스에서 보낸 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 데모 빌드

이 단원에서는 MingW를 사용하여 Windows에서 CMake를 네이티브 빌드 시스템으로 사용하는 방법을 다룹니다. 다른 운영 체제 및 옵션과 함께 CMake를 사용하는 방법에 대한 자세한 내용은 FreeRTOS에서 CMake 사용 단원을 참조하십시오. (MinGW는 네이티브 Microsoft Windows 애플리케이션을 위한 최소한의 개발 환경입니다.)

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

CMake로 FreeRTOS 데모를 빌드하려면
  1. GNU Arm Embedded Toolchain을 설정합니다.

    1. Arm Embedded Toolchain 다운로드 페이지에서 Windows 버전의 도구 체인을 다운로드합니다.

      참고

      objcopy 유틸리티에 보고된 버그가 있으므로 "8-2018-q4-major" 이외의 버전을 다운로드하는 것이 좋습니다.

    2. 다운로드한 도구 체인 설치 관리자를 열고 마법사의 지침에 따릅니다.

    3. 설치 마법사의 마지막 페이지에서 Add path to environment variable(환경 변수에 경로 추가)를 선택하여 시스템 경로 환경 변수에 도구 체인 경로를 추가합니다.

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

    지침은 CMake 사전 조건을 참조하십시오.

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

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

    cmake -DVENDOR=infineon -DBOARD=xmc4800_plus_optiga_trust_x -DCOMPILER=arm-gcc -S . -B build-folder -G "MinGW Makefiles" -DAFR_ENABLE_TESTS=0
  5. 디렉터리를 빌드 디렉터리(build-folder)로 변경하고 다음 명령을 사용하여 바이너리를 빌드합니다.

    cmake --build . --parallel 8

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

  6. JLINK를 사용하여 이미지를 플래시 및 실행합니다.

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

      echo loadfile aws_demos.hex > flash.jlink echo r >> flash.jlink echo g >> flash.jlink echo q >> flash.jlink
    2. JLNIK 실행 파일을 사용하여 이미지를 플래시합니다.

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

      애플리케이션 로그는 보드에서 설정한 직렬 연결을 통해 볼 수 있어야 합니다. 옵션 #2: 온보드 프라이빗 키 생성의 퍼블릭 키 추출 단계로 계속 진행합니다. 모든 단계가 완료되면 AWS IoT 콘솔로 이동합니다. 디바이스에서 보낸 MQTT 메시지가 이전에 설정한 MQTT 클라이언트에 표시되어야 합니다.

문제 해결

일반적인 문제 해결 정보는 시작하기 문제 해결 단원을 참조하십시오.