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 마이크로컨트롤러와 소프트웨어 아키텍처에 대한 릴리스 제약은 보다 발전된 소프트웨어 솔루션의 가능성을 열어줍니다. 고급 소프트웨어 응용 프로그램은 독립적인 구성 요소를 동시에 실행해야 합니다..
이번에 Azure RTOS에 대한 기사가 떴네요. 본문 번역해서 올려봅니다. 이제 Azuer RTOS가 MS를 떠나 Eclipse Foundation 관리 하에 오픈소스 모델로 전환된다는 것이 핵심입니다. -- 구글번역 -- 전 세계적으로 120억 개 이상의 장치에 배포된 ThreadX 실시간 운영 체제가 포함된 개발 제품군인 Azure RTOS에 관한 중요한 업데이트를 공유하게 된 것을 기쁘게 생각합니다. 혁신과 커뮤니티 협업에 대한 약속을 강화하기 위해 Azure RTOS는 오픈 소스 IoT 프로젝트 호스팅 분야의 리더로 인정받는 Eclipse Foundation의 관리 하에 오픈 소스 모델로 전환할 예정입니다. Eclipse Foundation을 새로운 홈으로 사용하면 Azure RTOS는 리소스가..
USB는 많이 사용되고 있는 Peripheral입니다. 이번 장에서는 어떻게 USB를 회로에 적용해야 하는지 알아보겠습니다. 이번장은 [AN4879] USB hardware and PCB guidelines using STM32 MCUs Application note를 참조하였습니다. https://www.st.com/resource/en/application_note/an4879-usb-hardware-and-pcb-guidelines-using-stm32-mcus-stmicroelectronics.pdf 사용하는 USB의 스피드와 버전에 따라서 명칭과 하드웨어 구성이 달라질 수 있으니 사용하려는 버전과 스피드 그리고 STM32에서 지원여부를 먼저 확인 하여야 합니다. 아래는 STM32 에서 제..
STM32에서 MCU에 심장과 같은 역할을 하는 오실레이터(OSC, 발진기)에 대해 알아보도록 하겠습니다. 대부분의 STM32가 내부 오실레이터와 외부 오실레이터(패키지에 따라서 없는 디바이스도 있음)를 지원합니다. 회로에 관한 내용이기에 이번 포스트에서 알아볼 것은 외부 오실레이터의 구성입니다. STM32에서는 보통 외부 오실레이터 HSE(High Speed External oscillator), 와 LSE(Low Speed External oscillator)을 제공합니다. 따라서 원하는 주파수의 크리스탈이나 레조네이터 혹은 오실레이터를 외부에 달아주면 됩니다. HSE - 외부 고속 발진기 STM32G4 Datasheet 에서 발췌 HSE를 사용할 때 주의해야 할 점 1. MCU 마다 허용되는..