주요 내용으로 건너뛰기

개발 활동 소개

이 섹션에는 구조, 워크플로 및 도구를 포함해 TouchGFX 애플리케이션을 개발하는 방법에 대한 정보가 포함되어 있습니다.

주요 활동

TouchGFX 프로젝트에는 개발 단계에서 수행하게 될 일련의 활동들이 포함되어 있습니다. 각 활동에서 어떤 노력을 기울이냐는 프로젝트의 목표에 달려 있습니다. UI 프로토타이핑을 수행하는 경우, 애플리케이션의 주요 부분에서 미리 제작된 코드를 사용할 수 있기 때문에 이러한 활동의 대부분을 건너뛰어서 프로젝트 개발을 가속화할 수 있습니다. 맞춤형 보드를 기반으로 전체 프로젝트를 수행하는 경우, 프로젝트에서 각 활동을 처리하게 됩니다.

TouchGFX 프로젝트의 주요 활동

주요 구성 요소

TouchGFX 프로젝트는 5개의 주요 소프트웨어 및 하드웨어로 구성되어 있습니다. 각각의 활동은 TouchGFX 프로젝트의 주요 구성 요소 중 하나를 생성합니다. TouchGFX 엔진은 주요 활동의 결과물이 아니고 TouchGFX 프로젝트의 시작점으로, 다운로드 및 설치 시에 사용할 수 있습니다.

TouchGFX 프로젝트의 주요 구성 요소

다음 섹션에서는 활동 및 구성 요소 각각에 대해 간략하게 살펴보겠습니다. 각각의 활동은 이 챕터의 나머지 섹션에 자세히 설명되어 있습니다.

하드웨어 선택

이 활동은 TouchGFX 프로젝트의 초기 활동입니다. 애플리케이션을 실행할 하드웨어를 선택하고, 필요한 하드웨어 구성 요소와 이들이 TouchGFX 애플리케이션에 미치는 영향을 결정합니다. 이 단계를 마치면 TouchGFX 프로젝트에 사용할 수 있는 디스플레이 보드가 생깁니다.

프로토타이핑

UI 프로토타이핑을 수행하는 경우에 신속한 시작과 실행을 위해서는 STM32 평가 키트를 선택하는 것이 가장 적합합니다. 하드웨어 구성 요소, 보드를 연결하는 방법 또는 유사 문제에 대해 고려해야 할 사항은 없습니다. 이 경우, 하드웨어 선택 활동에서는 제공되는 STM32 평가 키트 가운데 MCU 성능, 메모리 설정 및 디스플레이 크기 측면에서 최종 제품과 가장 잘 일치하는 것을 선택하면 됩니다.

맞춤형 하드웨어

자체 하드웨어 솔루션을 개발하고 있는 경우에는 선택 사항과 고려 사항이 많습니다. 하드웨어 선택 섹션은 다양한 질문에 대한 답을 제공하고 여러분이 선택한 하드웨어가 TouchGFX 애플리케이션에 어떤 영향을 미치는지 설명하는 등 하드웨어 선택 작업에 도움이 될 것입니다.

프로젝트에서 최종 하드웨어가 너무 늦게 준비되는 경우가 종종 있습니다. 이 경우에는 최종 보드와 유사한 STM32 평가 키트를 선택하고, 이를 UI 개발의 첫 단계에서 사용하는 것이 매우 일반적입니다. 최종 보드가 없는 경우에는 PC에서 실행되는 TouchGFX Simulator를 사용해 시작할 수도 있습니다.

이 단계에 대한 전체 설명은 하드웨어 선택 섹션에서 찾아보실 수 있습니다.

보드 브링업

이 활동은 TouchGFX가 보드에서 실행될 수 있게 해주는 핵심 작업입니다. 출력 구성 요소를 보드 초기화 코드라고 하는데, MCU와 모든 주변 장치를 설정해서 애플리케이션 실행 준비를 시키는 일반 초기화 코드입니다. 이 초기화 코드는 TouchGFX와 독립적이며 순수 하드웨어 설정만 처리합니다.

STM32CubeMX

이 활동의 주요 도구인 STM32CubeMX는 MCU를 구성하고 일반 스타트업 코드를 생성하는 데 도움이 됩니다. 외부 RAM 및 디스플레이 같은 주변 장치의 경우, 초기화 코드와 특정 주변 장치 드라이버를 직접 추가하게 됩니다. STM32CubeMX를 사용하지 않고 전체 보드 초기화 코드를 실행할 수도 있지만, STM32 및 보드 브링업에 대한 전문가적 지식이 없다면 이 방법을 권장하지 않습니다.

TBS(TouchGFX Board Setup)

UI 프로토타이핑을 수행 중이거나 TouchGFX를 시험 사용해보고 싶은 경우에는 TouchGFX Designer에서 사용할 수 있는 표준 STM32 평가 키트 중 하나에서 기존 TBS를 기반으로 애플리케이션을 생성할 수 있습니다. 여기에는 필요한 모든 보드 초기화 코드가 포함됩니다. TBS는 STM32CubeMX 구성을 기반으로 하기 때문에 더 많은 주변 장치에 대한 액세스를 실험하거나 추가하려는 경우에는 구성을 수정할 수 있습니다.

이 단계에 대한 전체 설명은 Board Bring Up 섹션에서 찾아보실 수 있습니다.

TouchGFX AL 개발

이 활동은 완전히 초기화된 디스플레이 보드(디스플레이 보드 + 보드 초기화 코드)를 기반으로 TouchGFX Engine을 실행시키는 데 있어 중요합니다. TouchGFX AL(Abstraction Layer)이라고 하는 출력 구성 요소는 하드웨어를 추상화한 소프트웨어 계층으로서 TouchGFX Engine을 보드에서 실행할 수 있게 해줍니다.

TouchGFX Generator

이 활동의 주요 도구인 TouchGFX Generator는 TouchGFX AL 코드의 대부분을 구성 및 생성할 수 있게 해주는 STM32CubeMX 플러그인입니다. 개발자가 TouchGFX AL의 일부를 코드로 직접 작성할 수도 있습니다. TouchGFX Generator는 구현할 빈 함수를 생성함으로써 이 단계에서 도움을 줄 것입니다.

TouchGFX AL이 작동하려면 보드 초기화 코드가 올바르게 수행되고 MCU, 외부 RAM, 디스플레이 등이 올바르게 구성되어 있어야 합니다.

UI 프로토타이핑을 수행 중이거나 TouchGFX를 시험 사용해보고 싶은 경우에는 TouchGFX Designer에서 사용할 수 있는 표준 STM32 평가 키트 중 하나에서 기존 TBS를 기반으로 애플리케이션을 생성할 수 있습니다. 여기에는 필요한 TouchGFX AL 코드가 모두 포함됩니다. TBS는 CubeMX 및 TouchGFX Generator 구성을 기반으로 하기 때문에 나중에 실험을 해보고 싶은 경우에 구성을 수정할 수 있습니다.

이 단계에 대한 전체 설명은 TouchGFX AL Development 섹션에서 찾아보실 수 있습니다.

UI 개발

아마도 개발자는 프로젝트 개발 시간의 대부분을 이 활동에 할애할 것입니다. 여기서는 TouchGFX UI Application이라는 구성 요소와 같이 TouchGFX 프로젝트에서 눈에 보이는 부분을 구성하는 사용자 인터페이스 코드를 생성하게 됩니다.

TouchGFX Designer

TouchGFX Designer와 개발자가 즐겨 사용하는 IDE 또는 텍스트 편집기가 이 활동의 주요 도구입니다. TouchGFX Designer에서 애플리케이션의 화면을 설정, 디자인 및 생성하고 TouchGFX UI Application의 주요 부분을 C++ 코드로 작성합니다. 애플리케이션 로직(이벤트 처리, 시스템에서 UI가 아닌 부분과의 통신)에서 IDE 또는 텍스트 편집기를 사용해 TouchGFX Designer에서 생성된 코드와 공존 및 상호 작용하는 C++ 코드를 작성하게 됩니다.

TBS(TouchGFX Board Setup)

UI 프로토타이핑을 수행 중이거나 TouchGFX를 시험 사용하고 다른 활동들을 수행하는 데 시간을 소요하고 싶지 않은 경우에는 PC 기반 TouchGFX Simulator를 토대로 애플리케이션을 개발하거나, 표준 STM32 평가 키트 중 하나에서 기존 TBS 중 하나를 사용할 수 있습니다. 어떤 경우든 TouchGFX UI Application 개발을 즉시 시작할 수 있습니다.

데모 및 예시

어떤 것을 실행해보고 싶거나 다른 사례를 참조하고 싶은 경우에는 TouchGFX Designer에서 새 프로젝트를 생성할 때 나타나는 TouchGFX 데모 또는 예시 중 하나를 선택할 수 있습니다. 이렇게 하면 다른 작업 없이 컴파일 및 플래싱을 해서 실행만 하면 됩니다.

맞춤형 하드웨어

다른 모든 활동을 이미 완료하여 TouchGFX Application에서 실행할 보드가 준비된 경우에는 처음부터 시작하거나, 예시 또는 데모 중 하나를 선택할 수 있습니다. 맞춤형 보드의 해상도와 예시가 일치하면 예시나 데모가 맞춤형 보드에서도 실행이 됩니다.

이 단계에 대한 전체 설명은 UI Development 섹션에서 찾아보실 수 있습니다.

작업 흐름

보시다시피 TouchGFX 개발에는 많은 활동과 도구가 관여합니다. 하지만, 한 번에 모든 작업을 수행할 필요가 없고 UI 개발을 시작하기 전에 디스플레이 보드, 보드 초기화 코드 및 TouchGFX AL이 반드시 필요한 것은 아니라는 점에 유의하시기 바랍니다. STM32 평가 키트나 TouchGFX Simulator를 사용해 이를 수행할 수 있습니다.

TouchGFX Designer 작업 흐름

생성된 코드 및 사용자 코드

보드 브링업, TouchGFX AL 개발, UI 개발 등 세 가지 소프트웨어 활동에서 각기 코드를 생성하는 도구를 사용하게 됩니다. 이러한 도구들은 보통 개발자가 필요로 하는 모든 코드를 생성하지 않으며, 개발자가 사용자 작성 코드를 프로젝트에 추가하게 됩니다. 세 가지 도구 모두에서 도구 사용 모드와 코드 작성 모드 간을 전환할 수 있습니다. 생성된 코드와 사용자 코드는 독립적이기 때문에 별도로 업데이트가 가능합니다.

개발자는 때에 따라 활동 간을 전환하면서 서로 다른 도구를 사용하기도 합니다. 매우 간단한 TouchGFX UI를 사용해 TouchGFX AL을 테스트하는 TouchGFX AL 개발 활동을 수행할 때 종종 이런 경우가 발생합니다. 그러나 도구, 생성 코드 및 사용자 코드가 서로 공존하고 어떤 문제도 없이 업데이트가 가능하기 때문에 활동 간을 전환하는 데 아무런 문제가 없습니다.

컴파일러/IDE 변경

개발자는 활동 중에 대상 보드에서 코드를 컴파일해야 합니다. TouchGFX에서 지원되는 컴파일러로는 IAR, ARMCC, ARMCLANG 및 GCC(STM32CubeIDE)가 있습니다. TouchGFX 프로젝트에서 선택한 툴체인은 STM32CubeMX에 구성이 되어 있기 때문에 이를 변경하고 싶으면 STM32CubeMX에서 TouchGFX 프로젝트 .ioc 파일을 열고 툴체인 설정을 변경해야 합니다. TouchGFX Designer에서 TBS를 선택하면 하나의 툴체인이 미리 선택되기 때문에 툴체인 중 하나에 대한 프로젝트 파일만 보일 것입니다. AT에는 .ioc가 함께 제공되기 때문에 이것을 열어서 필요에 맞게 툴체인을 변경할 수 있습니다.