주요 내용으로 건너뛰기

임베디드 그래픽

임베디드 그래픽이란 많은 의미를 가지고 있습니다.

먼저 임베디드에 대한 해석은 사람들마다 다릅니다. 어떤 사람들은 임베디드 시스템을 운영 체제가 없고, RAM, ROM 또는 GPIO도 거의 없이 정말로 신뢰할 수 있는 구형의 8비트 마이크로컨트롤러라고 생각하는가 하면, 또 어떤 사람들은 모든 것을 기가바이트 수준으로 높인 최신 스마트폰으로 여깁니다.

두 번째, 그래픽이라는 표현에 대해서도 해석이 엇갈립니다. 즐겨 사용하는 페인팅 프로그램에 원하는 픽셀을 그리는 것이라고 해석하는 사람이 있는가 하면, 게이밍 콘솔에서 실행되는 3D 렌더링 소프트웨어라고 해석하는 사람들도 있습니다.

TouchGFX에게 임베디드 시스템이란 STM32 마이크로컨트롤러 기반의 시스템을 총칭합니다. 또한 그래픽이란 초당 60프레임으로 실행되는 사용자 인터페이스를 탑재한 대화형 애플리케이션을 말합니다.

4가지 주요 요소

이러한 플랫폼에서 그래픽 애플리케이션을 실행하려면 먼저 직접 관련된 4가지 주요 구성요소를 고려합니다. 그 밖에도 여러 가지 구성요소가 임베디드 시스템에 포함될 수 있지만 그래픽 디스플레이에 대한 관련성은 비교적 적습니다.

MCU, RAM, 플래시 및 디스플레이

요약 하자면, TouchGFX는 MCU를 사용해 플래시에서 요소들을 조합하여 이미지를 생성한 후 RAM에 업데이트합니다. 이렇게 조합된 이미지는 디스플레이로 전송됩니다. 이러한 프로세스가 필요한 만큼 최대한 많이 반복됩니다.

MCU

MCU는 위의 프로세스에서 중요한 역할을 하는데, 플래시에서 이미지를 읽어와서 RAM에 작성합니다. 예를 들어 반투명 빨간색 텍스트를 병합할 경우 해당하는 색상을 계산하여 RAM에 저장합니다. 또한 원의 픽셀을 모두 렌더링하여 RAM에 저장하고, RAM의 이미지를 디스플레이로 전송합니다.

MCU는 CPU, 내부 플래시, 내부 RAM 등을 제공합니다.

STM32 MCU는 LTDC, Chrom-ART, Chrom-GRC 등 그래픽을 구현하는 데 도움이 되는 전용 기능들을 제공합니다.

Further reading
자세한 내용은 MCU 선택 가이드MCU 설정에 대한 보드 브링 업 가이드를 참조하십시오.

RAM

RAM은 최종적으로 계산된 이미지(프레임버퍼)가 저장되는 공간입니다. 그래픽이 업데이트되었을 때 이러한 RAM에 저장된 이미지를 읽고 쓰는 것은 MCU입니다. 이후 최종 이미지를 디스플레이로 전송할 때 한 번 더 읽어옵니다.

대부분 경우 최종 이미지는 MCU의 내부 RAM에 저장됩니다. 다만 최종 이미지를 내부 RAM에 저장할 수 없는 경우에는 외부 RAM을 구성에 추가할 수 있습니다.

Further reading
자세한 내용은 RAM 선택 가이드RAM 설정에 대한 보드 브링 업 가이드를 참조하십시오.

플래시

플래시는 모든 정적 데이터가 저장되는 공간으로, 이미지, 글꼴, 텍스트가 여기에 해당합니다. 플래시에 저장된 내용은 MCU에서 읽어와서 RAM에 작성되거나, RAM과 조합됩니다.

내부 플래시는 보통 그래픽 애셋을 모두 저장할 만큼 용량이 크지 않기 때문에 외장 플래시를 구성에 추가하는 경우가 대부분입니다. 매우 단순한 애플리케이션에서는 내부 플래시만으로도 충분합니다.

플래시는 메모리 매핑을 지원하는 것이 좋은데, 이는 플래시에서 픽셀을 직접 읽어와서 RAM에 작성할 수 있기 때문입니다. 그렇지 않고 플래시가 메모리 매핑을 지원하지 않는다면 플래시 내용을 RAM으로 전송하여 해당 위치에서 읽어올 수 있습니다.

Further reading

디스플레이

디스플레이는 이미지를 사람들에게 실제로 보여주는 공간입니다.

계산된 이미지(프레임버퍼)가 RAM에 저장된 후 MCU를 통해 주기적으로 디스플레이에 전송됩니다.

Further reading
Further reading
  • 가능한 하드웨어 선택 옵션에 대한 자세한 내용은 하드웨어 선택을 참조하십시오.
  • 보드 및 구성요소 설정에 대한 자세한 내용은 보드 브링 업을 참조하십시오.