OTA 에이전트 라이브러리 - FreeRTOS

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

OTA 에이전트 라이브러리

중요

이 문서는 FreeRTOS 릴리스 202012.00에서 사용하기 위한 FreeRTOS 사용 설명서의 보관 버전입니다. 이 문서의 최신 버전은 FreeRTOS 사용 설명서를 참조하세요.

개요

OTA 에이전트 라이브러리를 사용하면 HTTP 또는 MQTT를 프로토콜로 사용하는 FreeRTOS 디바이스에 대한 펌웨어 업데이트의 알림, 다운로드 및 검증을 관리할 수 있습니다. OTA 에이전트 라이브러리를 사용하여 디바이스에서 실행 중인 애플리케이션과 펌웨어 업데이트를 논리적으로 분리할 수 있습니다. OTA 에이전트는 네트워크 연결을 애플리케이션과 공유할 수 있습니다. 네트워크 연결을 공유하여 잠재적으로 많은 양의 RAM을 절약할 수 있습니다. 또한 OTA 에이전트 라이브러리를 사용하여 펌웨어 업데이트를 테스트, 커밋 또는 롤백하기 위한 애플리케이션별 로직을 정의할 수 있습니다.

FreeRTOS를 통한 OTA 업데이트 설정에 대한 자세한 내용은 FreeRTOS 무선 업데이트(OTA) 섹션을 참조하세요.

Features

전체 OTA 에이전트 인터페이스는 다음과 같습니다.

OTA_AgentInit

OTA 에이전트를 초기화합니다. 호출자가 메시징 프로토콜 컨텍스트, 선택적 콜백 및 제한 시간을 제공합니다.

OTA_AgentShutdown

OTA 에이전트를 사용한 이후에 리소스를 정리합니다.

OTA_GetAgentState

OTA 에이전트의 현재 상태를 가져옵니다.

OTA_ActivateNewImage

OTA를 통해 수신된 최신 마이크로 컨트롤러 펌웨어 이미지를 활성화합니다. 이제 상세 작업 상태가 자체 테스트됩니다.

OTA_SetImageState

현재 실행 중인 마이크로 컨트롤러 펌웨어 이미지의 확인 상태(테스트 중, 수락됨, 거부됨)를 설정합니다.

OTA_GetImageState

현재 실행 중인 마이크로 컨트롤러 펌웨어 이미지의 상태(테스트 중, 수락됨, 거부됨)를 가져옵니다.

OTA_CheckForUpdate

OTA 업데이트 서비스에서 사용 가능한 다음 OTA 업데이트를 요청합니다.

OTA_Suspend

모든 OTA 에이전트 작업을 일시 중단합니다.

OTA_Resume

OTA 에이전트 작업을 재개합니다.

API 참조

자세한 내용은 OTA 에이전트 API 참조를 참조하세요.

사용 예

MQTT 프로토콜을 사용하는 일반적인 OTA 지원 디바이스 애플리케이션은 다음과 같은 API 호출 시퀀스를 사용하여 OTA 에이전트를 구동합니다.

  1. AWS IoT MQTT 브로커에 연결합니다. 자세한 내용은 coreMQTT 라이브러리 단원을 참조하십시오.

  2. OTA_AgentInit을 호출하여 OTA 에이전트를 초기화합니다. 애플리케이션에서 사용자 지정 OTA 콜백 함수를 정의하거나 NULL 콜백 함수 포인터를 지정하여 기본 콜백을 사용할 수 있습니다. 또한 초기화 시간 제한을 입력해야 합니다.

    콜백은 OTA 업데이트 작업을 완료한 이후에 실행되는 애플리케이션별 로직을 구현합니다. 시간 제한은 초기화를 완료하는 동안 대기하는 시간을 정의합니다.

  3. 에이전트가 준비되기 이전에 OTA_AgentInit이 시간 초과된 경우 OTA_GetAgentState를 호출하여 에이전트가 초기화되고 예상한 대로 작동하는지 확인할 수 있습니다.

  4. OTA 업데이트가 완료되면 FreeRTOS는 accepted, rejected, self test 이벤트 중 하나를 사용하여 작업 완료 콜백을 호출합니다.

  5. 유효성 검사 오류 등으로 인해 새 펌웨어 이미지가 거부된 경우 애플리케이션에서는 일반적으로 알림을 무시하고 다음 업데이트를 대기할 수 있습니다.

  6. 업데이트가 유효하고 수락됨으로 표시된 경우 OTA_ActivateNewImage를 호출하여 디바이스를 재설정하고 새 펌웨어 이미지를 부팅합니다.

이식

OTA 기능을 플랫폼으로 이식하는 방법에 대한 자세한 내용은 FreeRTOS 이식 안내서의 OTA 라이브러리 이식을 참조하세요.

메모리 사용

AWS IoT OTA의 코드 크기(ARM Cortex-M용 GCC로 생성된 예)
파일 -O1 최적화 -Os 최적화
ota.c 8.0K 7.2K
ota_interface.c 0.1K 0.1K
ota_base64.c 0.6K 0.6K
ota_mqtt.c 2.3K 2.2K
ota_cbor.c 0.8K 0.6K
ota_http.c 0.3K 0.3K
총 추정치 12.1K 11.0K