1. TouchGFX?
- TouchGFX는 STM32 마이크로컨트롤러를 위한 고성능 그래픽 소프트웨어 프레임워크
- 이 프레임워크는 리소스가 제한된 임베디드 시스템에서도 고해상도 GUI를 구현할 수 있도록 설계되었음
- 효율적인 메모리 관리와 하드웨어 가속 기능을 통해 부드러운 애니메이션과 빠른 터치 반응을 제공
- 주요 구성 요소로는 Chrom-ART Accelerator, Chrom-GRC, JPEG 코덱이 있으며, 그래픽 데이터의 처리와 압축을 가속화
- 프레임워크는 다양한 사용자 정의 위젯과 그래픽 효과를 지원하여 디자인의 유연성을 극대화
- 자동 C++ 코드 생성을 통해 개발 과정을 간소화하고 유지보수 용이
- TouchGFX는 하드웨어 자원을 최적화하여 배터리로 구동되는 장치에서도 긴 배터리 수명을 지원합니다.
- TouchGFX는 X-Cube-TouchGFX라는 하나의 X-Cube 패키지로 제공
- TouchGFX는 두 개의 도구와 한 개의 프레임워크라는 세 가지 주요 부분으로 구성
공식 홈페이지
1-1. TouchGFX Designer
: TouchGFX 애플리케이션의 시각적 모양을 만들 수 있는 TouchGFX의 사용하기 쉬운 GUI 빌더
1-2. TouchGFX Generator
: 사용자가 STM32 기반 하드웨어를 위한 맞춤형 TouchGFX 추상화 계층(AL)을 구성하고 생성할 수 있는 STM32CubeMX 플러그인
1-3. TouchGFX Engine
: UI 애플리케이션을 구동하는 TouchGFX C++ 프레임워크. 화면 업데이트, 사용자 이벤트 및 타이밍을 처리. 고급 TouchGFX 기술은 STM32 마이크로컨트롤러에 최적화되어 최소한의 CPU 부하와 메모리 사용량으로 최대 성능을 제공

X-CUBE-TOUCHGFX
X-CUBE-TOUCHGFX - TouchGFX advanced and free of charge graphical framework optimized for STM32 microcontrollers, X-TOUCHGFX-MPU, X-CUBE-TOUCHGFX, STMicroelectronics
www.st.com
2. 그래픽 포트폴리오

3. 기능
Smartphone animations
- TouchGFX (available as X-CUBE-TOUCHGFX Expansion Package) enables smartphone animations such as swipe, scroll, 3D effects, video playback, and others
- Supports transparency, alpha blending, antialiased fonts, and kerning
- Instant interaction from touch-panel display or hard-keys at the user's choice
Easy programing
- TouchGFX Designer offers drag-and-drop programming with automatic code generation
- More than 30 widgets (such as swipe container, animated image, shapes, clock, scroll list, and others)
- Custom triggers and actions
- Easy addition of an own C++ developer code for the creation of any unique UI application
- Support of a variety of IDEs such as IAR Systems® IAR Embedded Workbench®, Arm® Keil® MDK-ARM, and GCC-based IDEs such as STM32CubeIDE
- Easy interfacing with any C code using the Model-View-Presenter pattern
Minimum CPU load and footprints
- Taking full benefit of STM32 graphic hardware accelerators
- Optimized library footprints requiring from 20 Kbytes of flash memory and 10 Kbytes of RAM
- Partial frame buffering minimizing graphic buffer sizes and enabling graphic UI support from lowest-cost STM32 options
- Running with RTOS or on bare metal, supporting the STM32 microcontrollers based on the Arm® Cortex®-M0+, M3, M4, M33, and M7 processors
Fast start of UI development
- STM32 display kits are fully supported (one click) in TouchGFX Designer
- TouchGFX Generator helps users start on their own STM32 hardware
- Reference demo examples demonstrate achievable UI performance
Part of STM32 ecosystem
- TouchGFX Engine compiled library running on any STM32 microcontroller
- Smooth interoperability with STM32Cube MCU Packages, STM32CubeMX, and STM32CubeIDE
- TouchGFX project examples using STM32CubeMX, STM32CubeIDE, and STM32Cube MCU Packages
Support and documentation
- TouchGFX knowledge base for technical literature
- Active TouchGFX community for online support and graphical discussions
- Videos and webinars addressing embedded graphic topics
4. 주요 그래픽 가속기
4-1. 기본 2D 그래픽 가속기
(1) Chrom-ART Accelerator (DMA2D)
- Chrom-ART Accelerator는 DMA2D라고도 불리며, STM32 MCU의 2D 그래픽 하드웨어 가속기
- 이 하드웨어는 2D 그래픽 작업을 가속화하여 CPU의 부하를 줄이고, 더 빠르고 부드러운 그래픽 렌더링을 가능케 함
주요 특징
- 이미지 블렌딩 : 두 개 이상의 이미지를 하드웨어 수준에서 섞어서 처리(복사, 변환, 크기 조정, 색상 변경, 회전, 알파 블랜딩)
- 컬러 포맷 변환 : 다양한 컬러 포맷(예: RGB565, ARGB8888) 간의 변환을 빠르게 처리.
- 알파 블렌딩 : 반투명 효과를 쉽게 구현.
- 메모리 복사 가속 : CPU 개입 없이 그래픽 연산을 하드웨어에서 처리하여 그래픽 데이터나 이미지의 복사를 빠르게 수행
Chrom-ART는 주로 GUI 라이브러리(예: TouchGFX)와 함께 사용되며, 그래픽 렌더링 성능을 높여 사용자 인터페이스의 부드러움과 응답성을 개선하는 데 기여
(2) Chrom-GRC (Graphics Resource Compression)
- Chrom-GRC는 STM32 MPU(Microprocessor Unit) 시리즈에 포함된 고급 그래픽 처리 하드웨어
- Chrom-ART와는 다른 계층에서 작동하며, 복잡한 그래픽 애플리케이션에 필요한 고급 기능을 제공
- Chrom-GRC의 주요 역할은 그래픽 사용자 인터페이스에서 창 관리와 화면 구성을 하드웨어적으로 처리
이를 통해, 복잡한 레이아웃과 다양한 화면 효과를 더 효율적으로 구현
주요 특징
- 다중 레이어 처리 : 여러 그래픽 레이어를 관리하며, 각 레이어는 독립적으로 조정 및 렌더링
- 고급 메모리 관리 : 그래픽 데이터의 효율적인 메모리 관리 및 디스플레이에 필요한 메모리 대역폭 최적화
Chrom-GRC는 복잡한 그래픽 시스템에서 더 나은 성능을 제공하는 하드웨어 모듈로, 메모리 사용 최소화, 고해상도 그래픽 유지, 대용량 그래픽 데이터를 효율적으로 관리하고 처리하여 GUI 성능 최적화에 도움
4-2. 고급 그래픽 가속기 (GPU)
(1) NeoChrom GPU
- NeoChrom GPU는 주로 저전력 SoC(시스템 온 칩)에 사용되는 2D 그래픽 처리용 하드웨어 가속기
- 임베디드 시스템에서 2D 그래픽 렌더링을 빠르고 효율적으로 수행할 수 있도록 설계
- 이 GPU는 저전력 소모와 고성능을 동시에 제공하는 것이 특징으로, 임베디드 장치나 소형 전자 기기에서 고해상도 그래픽을 처리 가능
주요 특징
- 2D 그래픽 렌더링 : 다양한 2D 그래픽 요소를 빠르게 처리하여 화면에 표시
- 고속 그래픽 처리 : 저전력 시스템에서도 고속으로 그래픽 연산을 수행, 화면 전환 및 애니메이션을 부드럽게 구현
- 텍스처 처리 : 텍스처 맵핑과 같은 그래픽 작업을 빠르게 처리하여 이미지의 품질을 높임
- 메모리 대역폭 최적화 : 메모리 사용을 효율적으로 관리하여 그래픽 성능을 최적화
NeoChrom GPU는 임베디드 시스템에서 사용자 인터페이스(UI) 및 간단한 2D 그래픽 작업을 빠르게 처리하는 데 사용됨. 저전력 환경에서 성능을 최적화하여 배터리 기반 장치에서도 고품질 그래픽을 제공하게함
(2) NeoChromVG GPU
-NeoChromVG GPU는 벡터 그래픽 처리에 특화된 GPU로, 임베디드 시스템에서 벡터 그래픽 렌더링을 하드웨어 수준에서 가속화하는 장치
- 벡터 그래픽은 해상도에 관계없이 선명한 이미지를 제공하는데, NeoChromVG는 이러한 그래픽 작업을 고속으로 처리 가능
주요 특징
- 벡터 그래픽 렌더링 : 선, 곡선, 다각형 등과 같은 벡터 그래픽 요소를 빠르게 처리하여 스케일링, 회전, 변형 등의 작업을 원활하게 수행
- 스케일링 및 변형 : 벡터 이미지를 확대하거나 축소할 때, 품질 손실 없이 부드러운 그래픽을 제공
- 다중 그래픽 레이어 처리 : 여러 벡터 그래픽 레이어를 동시에 처리하여 복잡한 UI 레이아웃을 효율적으로 관리
- 저전력 벡터 처리 : 저전력 소모로 복잡한 벡터 그래픽을 빠르고 효율적으로 처리
NeoChromVG GPU는 벡터 그래픽 기반 UI, 아이콘, 고해상도 화면에서 스케일링과 같은 작업을 많이 사용하는 시스템에서 주로 활용됨. 애니메이션, 차트, 다양한 해상도를 지원해야 하는 화면에서 특히 유용
4-3. 이미지 및 멀티미디어 가속기
(1) JPEG Codec (Hardware JPEG Accelerator)
- JPEG Codec은 STM32 시리즈에서 제공되는 하드웨어 JPEG 인코더 및 디코더
- JPEG는 이미지 압축 표준 중 하나로, 그래픽 및 사진 데이터를 압축하거나 압축 해제하는 데 사용
- 하드웨어 JPEG Codec은 소프트웨어 기반 처리에 비해 더 빠르고 에너지 효율적으로 JPEG 이미지를 처리 가능
주요 특징
- JPEG 압축(Encoding) : 이미지를 JPEG 포맷으로 압축하여 저장하거나 전송 가능
- JPEG 해제(Decoding) : 압축된 JPEG 이미지를 빠르게 디코딩하여 디스플레
- 저전력 소모: 하드웨어 기반이기 때문에 소프트웨어보다 전력 소비가 적고, CPU 부하도 줄어듦
JPEG Codec은 특히 고속 이미지 처리가 필요한 애플리케이션(예: 카메라, 동영상 재생 등)에서 성능 향상에 중요한 역할
'ST > TouchGFX' 카테고리의 다른 글
STM32CubeIDE에서 TouchGFX code Import (0) | 2025.03.22 |
---|---|
TouchGFX 설치 및 image 띄우기 (0) | 2025.03.22 |