기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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 에이전트를 구동합니다.
-
AWS IoT MQTT 브로커에 연결합니다. 자세한 내용은 coreMQTT 라이브러리 단원을 참조하십시오.
-
OTA_AgentInit
을 호출하여 OTA 에이전트를 초기화합니다. 애플리케이션에서 사용자 지정 OTA 콜백 함수를 정의하거나 NULL 콜백 함수 포인터를 지정하여 기본 콜백을 사용할 수 있습니다. 또한 초기화 시간 제한을 입력해야 합니다.콜백은 OTA 업데이트 작업을 완료한 이후에 실행되는 애플리케이션별 로직을 구현합니다. 시간 제한은 초기화를 완료하는 동안 대기하는 시간을 정의합니다.
-
에이전트가 준비되기 이전에
OTA_AgentInit
이 시간 초과된 경우OTA_GetAgentState
를 호출하여 에이전트가 초기화되고 예상한 대로 작동하는지 확인할 수 있습니다. -
OTA 업데이트가 완료되면 FreeRTOS는
accepted
,rejected
,self test
이벤트 중 하나를 사용하여 작업 완료 콜백을 호출합니다. -
유효성 검사 오류 등으로 인해 새 펌웨어 이미지가 거부된 경우 애플리케이션에서는 일반적으로 알림을 무시하고 다음 업데이트를 대기할 수 있습니다.
-
업데이트가 유효하고 수락됨으로 표시된 경우
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 |