주요 내용으로 건너뛰기

Display

Display 그룹에는 인터페이스, 크기, 버퍼링 전략 등 디스플레이와 관련된 구성이 포함되어 있습니다.

TouchGFX Generator Display 설정

인터페이스 및 치수

현재 STM32 마이크로컨트롤러와 함께 여러 디스플레이 인터페이스를 사용할 수 있습니다.

  • 병렬 RGB (LTDC)
  • MIPI DSI
  • FMC
  • SPI

LTDC 또는 FMC에 연결된 디스플레이가 있는 MCU의 경우, TouchGFX Generator는 프레임 버퍼를 연결된 디스플레이로 전송하는 코드를 생성할 수 있습니다. DSI 및 SPI 인터페이스 드라이버는 개발자가 직접 구현해야 합니다.

Further reading
다양한 디스플레이 인터페이스에 대한 구체적인 코드 예제는 시나리오 섹션을 참조하십시오.

Framebuffer Pixel Format

현재 TouchGFX Generator에서는 다음과 같은 프레임 버퍼 픽셀 형식이 지원됩니다. "Custom" 디스플레이 인터페이스를 사용할 때 모든 옵션을 사용할 수 있습니다. 그렇지 않으면 옵션이 디스플레이 컨트롤러 설정으로 제한됩니다(예: LTDC Framebuffer 형식을 "RGB565"로 설정하면 TouchGFX Generator에서 옵션이 "RGB565"로 제한됨).

  1. BW (1bpp)
  2. Grey2 (2bpp)
  3. Grey4 (4bpp)
  4. ABRG2222 (8bpp)
  5. ARGB2222 (8bpp)
  6. BGRA2222 (8bpp)
  7. RGBA2222 (8bpp)
  8. RGB565 (16bpp)
  9. RGB888 (24bpp)
  10. ARGB8888 (32bpp)
  11. XRGB8888 (32bpp)
Note
일부 픽셀 형식은 ChromART(DMA2D)를 지원하지 않거나 일부만 지원합니다.

프레임 버퍼 스트라이드

디스플레이의 실제 너비보다 프레임 버퍼 스트라이드(stride)가 더 큰 일부 디스플레이 인터페이스(예: MIPI-DSI)의 경우, 더 큰 스트라이드가 데이터 패킷 크기에 더 적합하면 디스플레이로의 데이터 전송 속도가 빨라질 수 있습니다. 더 큰 프레임 버퍼 스트라이드의 사용은 다음과 같이 구성할 수 있습니다.

  • No - 프레임 버퍼 스트라이드와 디스플레이 너비의 크기가 같습니다.
  • Yes - 사용자가 프레임 버퍼 스트라이드 길이를 지정할 수 있습니다.

버퍼링 전략 및 위치

TouchGFX Generator를 통해 다음과 같은 프레임 버퍼 전략을 구성할 수 있습니다.

  • Single Buffer - 하나의 애플리케이션 프레임 버퍼만 사용합니다. 성능에 제약이 있을 수 있지만, 메모리는 덜 사용합니다. "Buffer Location" 구성과 함께 사용해서 내부 RAM에 배치할 수 있습니다. 추가 최적화를 위해 사용자는 디스플레이 컨트롤러에서 처리 중인 현재 라인을 반환하는 함수를 정의할 수 있습니다. 이 메서드를 사용하면 프레임워크에서 이 프레임 동안 디스플레이로 이미 전송된 메모리에 업데이트를 허용할 수 있습니다.
  • Double Buffer - 두 개의 프레임 버퍼를 사용합니다. 일반적으로 비용 대비 메모리 성능이 더 뛰어납니다
  • Partial Buffer - GRAM display - Use one or more user defined chunks of memory as the frame buffer, which are transferred to the GRAM on the display. 이 전략은 외부 RAM에 의존하지는 않지만ㅡ 전체 프레임 버퍼가 가용 메모리를 초과하는 디스플레이가 있는 저가 솔루션을 대상으로 합니다.
  • Partial Buffer - LTDC driven display - Use a single block of memory that a power-of-2 fraction of the display size, e.g., 1/2, 1/4 or 1/8. This strategy is targeted platforms that do not have external RAM and/or large display resolutions. A LTDC driven display and GFXMMU is required for this strategy.

In the case of Single Buffer, Double Buffer, and Partial Buffer - LTDC driven display users are allowed to configure their location through the "Buffer Location" configuration which offers the following options:

  • By Allocation - 링커 스크립트에 따라 링커가 프레임 버퍼 메모리를 배치하도록 합니다. 내부 RAM이 기본값입니다.
  • By Address - 사용자가 1개(단일) 또는 2개(이중) 프레임 버퍼 주소를 정의할 수 있습니다.

The Partial Buffer - GRAM display strategy allows the user to define the following parameters:

  • 블록 수(항상 내부 RAM에 위치)
  • 블록 크기(바이트)

The Partial Buffer - LTDC driven display strategy allows the user to define the following parameter:

  • Number of Partial Blocks (default is 4, meaning a framebuffer block 1/4 the size of the display)

To understand some core concepts regarding framebuffer strategies, refer to the Framebuffer Strategies article.

Several scenarios describe how to get started with different display interfaces and framebuffer strategies with concrete examples: