Infineon XMC4800 IoT 연결 키트 시작하기 - 무료RTOS

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

Infineon XMC4800 IoT 연결 키트 시작하기

중요

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

이 자습서에서는 Infineon XMC4800 IoT Connectivity Kit를 시작하기 위한 지침을 제공합니다. Infineon XMC4800 IoT 연결 키트가 없는 경우 AWS 파트너 디바이스 카탈로그를 방문하여 파트너로부터 구매하세요.

로깅 및 디버깅 정보를 보기 위해 보드와의 직렬 연결을 열려면 Adafruit의 CP2104 Friend와 같은 보드에서 널리 사용할 수 있는 3.3V USB/Serial converter, in addition to the XMC4800 IoT Connectivity Kit. The CP2104 is a common USB/Serial 변환기가 필요합니다.

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

개요

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

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

  2. 무료RTOS 데모 애플리케이션을 바이너리 이미지로 교차 컴파일합니다.

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

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

개발 환경 설정

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

DAVE 설치

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

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

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

    참고

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

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

자세한 내용은 DAVE 빠른 시작 안내서를 참조하세요.

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

직렬 연결 설정

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

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

  1. “RX<P0.0”이라는 레이블이 지정된 핀을 USB/직렬 변환기의 “TX” 핀에 연결합니다.

  2. “TX>P0.1”이라고 표시된 핀을 USB/직렬 변환기의 “RX” 핀에 연결합니다.

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

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

참고

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

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

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

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

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

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

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

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

무료RTOS 데모 프로젝트 빌드 및 실행

로 무료RTOS 데모 가져오기 DAVE

  1. Start DAVE.

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

  3. DAVE 프로젝트 가져오기 창에서 루트 디렉터리 선택을 선택하고 찾아보기를 선택한 다음 XMC4800 데모 프로젝트를 선택합니다.

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

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

  4. 마침을 클릭합니다.

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

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

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

무료RTOS 데모 프로젝트 실행

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

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

  3. Project Explorer에서를 마우스 오른쪽 버튼으로 클릭하고 디버그 Asaws_demos선택한 다음 DAVE C/C++ 애플리케이션을 선택합니다.

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

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

AWS IoT 콘솔에서 4~5단계의 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----

를 사용하여 무료RTOS 데모 빌드 CMake

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

참고

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

를 사용하여 무료RTOS 데모를 빌드하려면 CMake
  1. GNU Arm Embedded Toolchain을 설정합니다.

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

      참고

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

    2. 다운로드한 도구 체인 설치 프로그램을 열고 설치 마법사의 지시에 따라 도구 체인을 설치합니다.

      중요

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

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

    지침은 CMake 사전 조건을 참조하세요.

  3. 생성된 빌드 파일(build-folder).

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

    cmake -DVENDOR=infineon -DBOARD=xmc4800_iotkit -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

      애플리케이션 로그는 보드에서 설정한 직렬 연결을 통해 볼 수 있어야 합니다.

문제 해결

아직 하지 않았다면 AWS IoT 및 무료RTOS 다운로드를 구성하여 디바이스를 AWS 클라우드에 연결해야 합니다. 자세한 내용은 첫 번째 단계 섹션을 참조하세요.

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