STM32CubeH7 패키지에는 OpenAMP 및 FreeRTOS™ 메시지 버퍼를 사용한 프로세서 간 통신을 포함하여 듀얼 코어 애플리케이션을 위한 몇 가지 예가 포함되어 있습니다. 다음 섹션에서는 OpenAMP 및 FreeRTOS™를 사용하는 몇 가지 예와 하드웨어 세마포어를 사용하는 기타 예를 설명합니다. OpenAMP 다음 그림은 CPU1을 마스터로, CPU2를 슬레이브로 정의한 예를 보여줍니다. 시스템 초기화 후 두 CPU 모두 OpenAMP 프레임워크 초기화를 담당하는 MX_OPENAMP_Init() 함수를 실행합니다. CPU2(슬레이브)는 엔드포인트 생성을 담당하며 이는 OPENAMP_create_endpoint() API를 사용하여 수행됩니다. 엔드포인트가 생성되자마자 마스터 CPU(..
경량 프로세서 간 통신 채널은 STM32H745/755 또는 STM32H747/757 장치에 내장된 사용 가능한 주변 장치를 사용하여 구현할 수 있습니다. 예를 들어, 인터럽트 라인은 이벤트를 알리거나 데이터 가용성을 전달하는 데 사용할 수 있습니다. DMA 채널과 같은 다른 주변 장치를 사용하여 데이터를 전송하고 한쪽에서 다른 쪽으로 전송 종료 알림을 생성할 수 있습니다. 이 솔루션은 맞춤형 솔루션이며 OpenAMP 또는 FreeRTOS™ 원격 메시징 구현만큼 일반적이지 않습니다. Hardware semaphore STM32 마이크로컨트롤러에 구현된 하드웨어 세마포어 주변 장치를 사용하면 두 CPU 간에 알림 및 이벤트 교환을 구현할 수 있습니다(아래 그림 참조). HSEM 주변 장치에서 CPU..
FreeRTOS message buffer and stream buffer 버전 10.0.0부터 FreeRTOS™에는 프로세서 간 통신 API를 구현되어 있습니다. 다음 섹션에서는 메시지 버퍼 및 스트림 버퍼 API에 대해 설명합니다. Message buffers 메시지 버퍼를 사용하면 인터럽트 서비스 루틴에서 작업으로 또는 한 작업에서 다른 작업으로 다양한 길이의 이산 메시지를 전달할 수 있습니다. 예를 들어, 길이가 10, 20, 123바이트인 메시지는 모두 동일한 메시지 버퍼에 쓰고 읽을 수 있습니다. 10바이트 메시지는 개별 바이트가 아닌 10바이트 메시지로만 읽을 수 있습니다. 메시지 버퍼는 스트림 버퍼 구현 위에 구축됩니다. 메시지 버퍼는 페이로드 데이터 크기를 저장하기 위해 단어가 필..
이 섹션에서는 STM32CubeH7 펌웨어와 함께 사용할 수 있는 프로세서 간 통신 라이브러리(OpenAMP 및 RPmsg API, FreeRTOS™ 메시지 버퍼 및 스트림 버퍼 API)에 대한 일반 정보를 제공합니다. 또한 STM32H745/755 및 STM32H747/757 하드웨어 리소스를 사용하는 몇 가지 기본 IPCC를 제공합니다. OpenAMP and RPMsg 이 섹션에서는 OpenAMP(개방형 비대칭 다중 처리) 및 RPMsg(원격 프로세서 메시징) 라이브러리에 대한 정보를 제공합니다. OpenAMP는 AMP(Asymmetric Multi-Processing) 시스템용 애플리케이션 개발에 필요한 소프트웨어 구성 요소를 제공하는 프레임워크입니다. remoteproc 및 RPMsg와..
STM32H7 시리즈 중에 Cortex-M7, Cortex-M4 Dual Core로 되어 있는 제품이 있습니다. 두개의 Core는 같은 버스를 공유하기도 하고 이에 따라 여러 자원들을 공유하게 됩니다. 하지만 이러한 이유 때문에 동시에 같은 자원을 점유하는 통일성에 문제가 생길 수도 있습니다. AN5617은 STM32H7 Dual Core의 Inter-processor communications를 다루고 있으며 이번 포스트에서는 영문 번역으로 축약해서 올려보고자 합니다. Introduction 고성능 STM32 마이크로컨트롤러와 소프트웨어 아키텍처에 대한 릴리스 제약은 보다 발전된 소프트웨어 솔루션의 가능성을 열어줍니다. 고급 소프트웨어 응용 프로그램은 독립적인 구성 요소를 동시에 실행해야 합니다..