STM32H7 Inter-processor communication (2) - OpenAMP

이 섹션에서는 STM32CubeH7 펌웨어와 함께 사용할 수 있는 프로세서 간 통신 라이브러리(OpenAMP 및 RPmsg API, FreeRTOS™ 메시지 버퍼 및 스트림 버퍼 API)에 대한 일반 정보를 제공합니다.

또한 STM32H745/755 및 STM32H747/757 하드웨어 리소스를 사용하는 몇 가지 기본 IPCC를 제공합니다.

OpenAMP and RPMsg

이 섹션에서는 OpenAMP(개방형 비대칭 다중 처리) 및 RPMsg(원격 프로세서 메시징) 라이브러리에 대한 정보를 제공합니다.

OpenAMP는 AMP(Asymmetric Multi-Processing) 시스템용 애플리케이션 개발에 필요한 소프트웨어 구성 요소를 제공하는 프레임워크입니다. remoteproc 및 RPMsg와 같은 오픈 소스 구성 요소를 통해 이기종 임베디드 시스템에서 운영 환경 간의 상호 작용을 표준화합니다.

RPMsg는 OpenAMP 프레임워크의 구성요소입니다. 다른 CPU에서 실행되는 응용 프로그램 간의 프로세서 간 통신을 허용합니다. 마스터 프로세서의 RTOS 및 베어메탈 애플리케이션이 원격 CPU 펌웨어와 상호 작용하고 표준 API를 사용하여 통신할 수 있도록 하는 가상 I/O 기반 메시징 라이브러리입니다.

마스터 및 슬레이브 용어는 OpenAMP 프레임워크로 정의됩니다.

가상 I/O는 공유 메모리 관리를 위한 표준을 구현합니다. OpenAMP는 원격 프로세서 펌웨어 리소스 테이블을 통해 게시된 정보를 사용하여 시스템 리소스를 할당하고 가상 I/O 장치를 만듭니다. RTOS 또는 베어메탈 환경에서 RPMsg 구현의 예는 다음 그림에 나와 있습니다.

CPU1에서 CPU2로 메시지를 보내는 데 사용되는 순서는 다음과 같습니다.

데이터를 전송하는 마스터 코어인 CPU1은 전송에 사용되는 공유 메모리에서 버퍼를 할당하고 여기에 RPMsg 헤더와 데이터 페이로드를 씁니다. 마지막으로 링 버퍼의 버퍼를 대기열에 넣어 CPU2에서 사용할 수 있도록 합니다. 이 순서는 다음과 같습니다.

* STM32H7 F/W Package 내에서 해당 예제를 제공하고 있습니다.

 

<계속>