メイン・コンテンツまでスキップ

開発の概要

このセクションでは、構造、ワークフロー、およびツールをはじめとするTouchGFXアプリケーションの開発方法について説明します。

主な作業

TouchGFXプロジェクトには、開発段階において取り組む一連の作業が含まれます。 各作業の工数は、プロジェクトの目標によって異なります。 UIのプロトタイプを作成する場合は、アプリケーションの大部分に既製のコードを使用できるため、作業の大半を省略し、プロジェクト開発を加速できます。 カスタム・ボードに基づくフル・プロジェクトの場合は、各作業に取り組む必要があります。

TouchGFXプロジェクトの主な作業

見出しへの直リンク

TouchGFXプロジェクトは、5つの主なソフトウェアおよびハードウェア・コンポーネントで構成されます。 各作業では、これらの主なコンポーネントを生成します。 TouchGFXエンジンは、いずれの主要作業の出力でもありません。このエンジンは、TouchGFXプロジェクトの出発点となるものであり、ダウンロードおよびインストールが完了次第、使用できます。

TouchGFXプロジェクトの主なコンポーネント

次のセクションで各作業およびコンポーネントの概要を示し、 章の後半で各作業の詳細を説明します。

ハードウェアの選択

この作業はTouchGFXプロジェクトの最初の工程です。 アプリケーションを実行するハードウェアを選択します。 必要なハードウェア・コンポーネントを決定し、それらがTouchGFXアプリケーションに与える影響を判断します。 このステップを完了すると、TouchGFXプロジェクトでディスプレイ・ボードを使用できるようになります。

プロトタイプ作成

UIのプロトタイプを作成する場合、迅速に立ち上げ、実行できるSTM32評価キットが最適の選択肢です。 このキットを使用すれば、ハードウェア・コンポーネントについて、ボードへの接続方法などの問題を考慮する必要がありません。 この場合のハードウェアの選択作業は、提供中のSTM32評価キットを選ぶだけで完了です。これは、マイクロコントローラの性能、メモリの設定、ディスプレイ・サイズという観点から、最終製品に最も合っています。

カスタム・ハードウェア

独自のハードウェア・ソリューションを作成する場合は、多数の選択肢と検討すべき課題があります。 この作業に関しては「ハードウェアの選択」のセクションを参照してください。多くの疑問に対する答えと、選択がTouchGFXアプリケーションに与える影響についての解説が示されています。

プロジェクトの終盤になるまで、最終ハードウェアを用意できないケースは少なくありません。 そのような場合には、まず最終製品のボードに近いSTM32評価キットを選択し、UI開発の初期ステップではこれを使用するという方法が一般的です。 そのようなボードがない場合は、PCで動作するTouchGFX Simulatorを使用して開発に着手することも可能です。

このステップの詳細は「ハードウェア選択」のセクションを参照してください。

ボード立ち上げ

この作業は、TouchGFXをボード上で実行できるようにするための中心的なタスクです。 出力コンポーネントはボード初期化コードと呼ばれるものです。マイクロコントローラとすべてのペリフェラルを設定する一般的な初期化コードであり、アプリケーション実行の準備を整えます。 この初期化コードはTouchGFXから独立しており、純粋にハードウェアの設定のみを行います。

STM32CubeMX

この作業の主なツールはSTM32CubeMXです。 マイクロコントローラの設定をサポートし、一般的な起動コードを生成します。 外部RAMやディスプレイなどのペリフェラルについては、ユーザが初期化コードと特定のペリフェラル用のドライバを追加します。 STM32CubeMXを使用せずに、ボード初期化コードをすべて自分で作成することも可能ですが、STM32やボードの立ち上げに関する専門知識を備えていないかぎり、この方法は推奨できません。

TouchGFX Board Setup(TBS)

UIのプロトタイプを作成する場合、または単にTouchGFXを試す場合は、TouchGFX Designerで提供されているいずれかの標準STM32評価キット向けの既存のTouchGFX Board Setup(TBS)に基づいて開発できます。 これらには、必要なボード初期化コードもすべて含まれています。 TBSはSTM32CubeMXの設定に基づいているため、試してみたい、あるいはさらにペリフェラルへのアクセスを追加したい場合は、設定を変更することも可能です。

このステップの詳細は「ボードの立ち上げ」のセクションを参照してください。

TouchGFX AL(抽象化レイヤ)開発

この作業は、完全に初期化されたディスプレイ・ボード(ディスプレイ・ボード + ボード初期化コード) 上で、TouchGFXエンジンを実行する上で重要です。 出力コンポーネントは、TouchGFX抽象化レイヤ(AL:Abstraction Layer)と呼ばれるソフトウェア・レイヤです。ハードウェアを抽象化し、TouchGFXエンジンがボード上で動作できるようにします。

TouchGFX Generator

この作業の主なツールはTouchGFX Generatorです。これはSTM32CubeMXのプラグインで、TouchGFXのALコードの大部分を設定、生成できます。 ほとんどの場合、TouchGFX ALコードの一部はユーザ自身で作成することになります。 TouchGFX Generatorは、このステップで、ユーザが内容を実装するための空の関数を作成してユーザを支援します。

TouchGFX ALが機能するには、ボード初期化コードが適切に作成され、マイクロコントローラ、外部RAM、ディスプレイ、その他が適切に設定されていることが重要です。

UIのプロトタイプを作成する場合、または単にTouchGFXを試す場合は、TouchGFX Designerで提供されているいずれかの標準STM32評価キット向けの既存のTouchGFX Board Setup(TBS)に基づいて開発できます。 これには、必要なTouchGFX ALコードもすべて含まれています。 TBSはSTM32CubeMXとTouchGFX Generatorの設定に基づいているため、後で設定を変更して試してみることも可能です。

このステップの詳細は「TouchGFX ALの開発」のセクションを参照してください。

UI開発

おそらく、プロジェクト開発の時間のほとんどが、この作業に費やされます。 ここではユーザ・インタフェース・コードを作成します。これが、TouchGFXプロジェクトのユーザの目に触れる部分である、TouchGFX UIアプリケーションと呼ばれるコンポーネントを構成します。

TouchGFX Designer

この作業の主なツールはTouchGFX Designerと、使い慣れたIDEまたはテキスト・エディタです。 TouchGFX Designerでは、アプリケーションの画面を設定、設計、作成し、UIアプリケーションの主要部分をC++コードとして生成します。 アプリケーションの論理(イベント処理、システムのUI以外の部分とのやり取り) については、IDEまたはテキスト・エディタを使用してユーザがC++コードを作成します。このコードはTouchGFX Designerが生成するコードと共存し、やり取りします。

TouchGFX Board Setup

UIのプロトタイプを作成しているか、または単にTouchGFXを試したいだけで、その他の作業に時間を割きたくない場合は、PCベースのTouchGFX Simulatorに基づいたアプリケーションにするか、標準の各STM32評価キット向けに用意された既存のTouchGFX Board Setup(TBS) のいずれかを使用できます。 いずれの場合も、ただちにUIアプリケーションの開発に着手できます。

デモおよびサンプル

単に何かを実行したい、あるいはヒントが欲しいという場合は、TouchGFX Designerで新規プロジェクトを作成する際に、提示されるTouchGFXのデモまたはサンプルを選択できます。 この場合に必要な作業は、コンパイル、書込み、実行だけです。

カスタム・ハードウェア

他の作業がすでにすべて終了し、TouchGFXアプリケーション用に動作するボードが用意できている場合は、ゼロから開始するか、いずれかのサンプルまたはデモを選択できます。 カスタム・ボードとサンプルの解像度が同じであれば、サンプルはカスタム・ボード上でも動作するはずです。

このステップの詳細は「UIの開発」のセクションを参照してください。

ワークフロー

見てのとおり、TouchGFXの開発には、多くの作業とツールが関与します。 ただし、そうした作業をすべて同時に行う必要はないことに留意することが重要です。必ずしもUI開発着手までにディスプレイ・ボード、ボード初期化コード、TouchGFX ALが必要になるとはかぎりません。 これらはSTM32評価キットまたはTouchGFX Simulatorで代用できます。

TouchGFX Designerのワークフロー

生成されるコードとユーザ・コード

ソフトウェアに関する3つの作業、つまりボードの立ち上げ、TouchGFX ALの開発、UIの開発のそれぞれでは、コードを生成するツールを使用します。 これらのツールに共通するのは、必要なコードのすべてが生成されるわけではないということです。プロジェクトには、ユーザが作成するコードも追加することになります。 これら3つのツールでは、ツールの使用とコード作成の間を自由に行き来できます。 生成されるコードとユーザ・コードは独立しており、別々に更新できます。

作業を切り替えることで使用するツールが変わる場合もあります。 そうした状況は、TouchGFX ALの開発においてしばしば発生します。ここには、TouchGFX ALをテストするための、ごく単純なTouchGFX UIがあります。 しかし、このように作業間を移動しても何の問題も生じません。ツール、生成されるコード、ユーザ・コードは問題なく共存し、更新できるからです。

コンパイラ / IDEの変更

作業中、ターゲット・ボード向けのコードをコンパイルする必要が生じます。 TouchGFXがサポートするコンパイラは、IAR、ARMCC、ARMCLANG、GCC(STM32CubeIDE)です。 TouchGFXプロジェクト用に選択されたツールチェーンはSTM32CubeMXで設定されます。したがって、それを変更する場合は、STM32CubeMXでTouchGFXプロジェクトの.iocファイルを開いて、ツールチェーンの設定を変更する必要があります。 TouchGFX DesignerでTouchGFX Board Setup(TBS)を選択した場合は、あらかじめ1つのツールチェーンが選択されているため、いずれかのツールチェーンのプロジェクト・ファイルのみが存在します。 ATには.iocファイルも付属しているため、そのファイルを開き、必要に合わせてツールチェーンに変更できます