Display
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"로 제한됨).
- BW (1bpp)
- Grey2 (2bpp)
- Grey4 (4bpp)
- ABRG2222 (8bpp)
- ARGB2222 (8bpp)
- BGRA2222 (8bpp)
- RGBA2222 (8bpp)
- RGB565 (16bpp)
- RGB888 (24bpp)
- ARGB8888 (32bpp)
- XRGB8888 (32bpp)
Note
프레임 버퍼 스트라이드
디스플레이의 실제 너비보다 프레임 버퍼 스트라이드(stride)가 더 큰 일부 디스플레이 인터페이스(예: MIPI-DSI)의 경우, 더 큰 스트라이드가 데이터 패킷 크기에 더 적합하면 디스플레이로의 데이터 전송 속도가 빨라질 수 있습니다. 더 큰 프레임 버퍼 스트라이드의 사용은 다음과 같이 구성할 수 있습니다.
- No - 프레임 버퍼 스트라이드와 디스플레이 너비의 크기가 같습니다.
- Yes - 사용자가 프레임 버퍼 스트라이드 길이를 지정할 수 있습니다.
버퍼링 전략 및 위치
TouchGFX Generator를 통해 다음과 같은 프레임 버퍼 전략을 구성할 수 있습니다.
- Single Buffer - 하나의 애플리케이션 프레임 버퍼만 사용합니다. 성능에 제약이 있을 수 있지만, 메모리는 덜 사용합니다. "Buffer Location" 구성과 함께 사용해서 내부 RAM에 배치할 수 있습니다. 추가 최적화를 위해 사용자는 디스플레이 컨트롤러에서 처리 중인 현재 라인을 반환하는 함수를 정의할 수 있습니다. 이 메서드를 사용하면 프레임워크에서 이 프레임 동안 디스플레이로 이미 전송된 메모리에 업데이트를 허용할 수 있습니다.
- Double Buffer - 두 개의 프레임 버퍼를 사용합니다. 일반적으로 비용 대비 메모리 성능이 더 뛰어납니다
- 부분 버퍼 - GRAM 디스플레이 - 디스플레이의 GRAM으로 전송되는 하나 이상의 사용자 정의 메모리 청크(chunk)를 프레임 버퍼로 사용합니다. 이 전략은 외부 RAM에 의존하지는 않지만ㅡ 전체 프레임 버퍼가 가용 메모리를 초과하는 디스플레이가 있는 저가 솔루션을 대상으로 합니다.
- 부분 버퍼 - LTDC 기반 디스플레이 - 1/2, 1/4 또는 1/8 등, 디스플레이 크기의 이진 분수인 단일 메모리 블록을 사용합니다. 이 전략은 외부 RAM 및/또는 높은 디스플레이 해상도를 갖추지 못한 플랫폼을 대상으로 합니다. 이 전략에는 LTDC 기반 디스플레이 및 GFXMMU가 필요합니다.
단일 버퍼, 이중 버퍼, 부분 버퍼 - LTDC 기반 디스플레이의 경우, 사용자가 다음 옵션을 제공하는 "버퍼 위치" 구성을 통해 그 위치를 구성할 수 있습니다:
- By Allocation - 링커 스크립트에 따라 링커가 프레임 버퍼 메모리를 배치하도록 합니다. 내부 RAM이 기본값입니다.
- By Address - 사용자가 1개(단일) 또는 2개(이중) 프레임 버퍼 주소를 정의할 수 있습니다.
부분 버퍼 - GRAM 디스플레이 전략을 사용하면 사용자가 다음 매개변수를 정의할 수 있습니다:
- 블록 수(항상 내부 RAM에 위치)
- 블록 크기(바이트)
부분 버퍼 - LTDC 기반 디스플레이 전략을 사용하면 사용자가 다음 매개변수를 정의할 수 있습니다:
- 부분 블록의 수(기본값은 4이며 이는 프레임버퍼 블록이 디스플레이 크기의 1/4에 해당한다는 의미임)
프레임 버퍼 전략에 관한 일부 핵심 개념을 이해하려면 프레임 버퍼 전략 문서를 참조하세요.
일부 시나리오는 구체적인 예시를 이용해 다양한 디스플레이 인터페이스와 프레임 버퍼 전략을 시작하는 방법을 안내합니다: