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

Compiling-and-Flashing(コンパイルとフラッシュ)

このセクションでは、TouchGFXアプリケーションから実行プログラムに進む方法、つまり特定のセットアップにおけるコンパイルとフラッシュの方法について説明します。

TouchGFXアプリケーションのコンパイル

TouchGFXのアプリケーションをコンパイルする場合には2つのオプションがあります。PCシミュレータ向けのコンパイルとターゲット・ハードウェア向けのコンパイルです。

PCシミュレータ向けのコンパイル

PCシミュレータ向けにプロジェクトをコンパイルする場合、GCCとVisual Studioの2つのオプションがあります。
これらのオプションはどちらもTouchGFX Designerによって生成されるので、常に使用可能です。

GCC

Makefileは、<touchgfx_application_root_folder>/simulator/gcc/Makefileにあります。

TouchGFXにはMinGW環境が含まれており、GCCコンパイラやGNU Makeと共にプリインストールされています。これにより、生成済みのMakefileをPCシミュレータ向けに容易に実行できます。

TouchGFX Environmentは、<touchgfx_installation_directory>/env/MinGW/msys/1.0/msys.batから起動するか、Windowsスタート・メニューに追加された"TouchGFX x.y.z Environment"(x、y、zはバージョン番号)という名前のショートカットから起動することができます。

TouchGFX Environmentを起動し、TouchGFX Applicationルート・フォルダに移動した後、次に示す簡単なコマンドを実行してsimulator.exeファイルを生成できます。

make -f simulator/gcc/Makefile

さらに、TouchGFX Environmentから次のコマンドを使用して、このシミュレータ実行可能ファイルを起動できます。

./build/bin/simulator.exe

PCシミュレータは、Run Simulatorコマンドを使用してTouchGFX Designerからコンパイルおよび起動することもできます。

Visual Studio

Visual Studioを使用してPCシミュレータをコンパイルするには、単純に、Visual Studioを使用して<touchgfx_application_root_folder>/simulator/msvs/Application.slnにある生成済みのソリューション・ファイルを開きます。

PCシミュレータをVisual Studioから直接起動して、コードのデバッグが可能です。

Note
GCCまたはVisual Studioによるコンパイルを可能にするには、あらかじめTouchGFX DesignerでGenerateコマンドを実行しておきます。

ターゲット・ハードウェア向けのコンパイル

STM32評価キット向けのプロジェクトのコンパイルは、TouchGFX Board Setupベースのアプリケーションの場合は極めて簡単です。

各々のTouchGFX Board Setupには、GCC、STM32CubeIDE、IAR、Keil向けのプロジェクト・ファイルが含まれています。

  • GCC: <project_root_folder>/gcc/MakeFile
  • STM32CubeIDE: <project_root_folder>/STM32CubeIDE/.cproject
  • IAR: <project_root_folder>/EWARM/Project.eww
  • Keil: <project_root_folder>/MDK-ARM/<STM32_evaluation_kit_name>.uvprojx

アクティブなツール・チェーンは、デフォルトではSTM32CubeMXからSTM32CubeIDEに向けて設定されます。 すべてのプロジェクト・ファイルが、同時に存在するわけではないことに注意してください。 生成されるプロジェクト・ファイルは、STM32CubeMXで選択されるツール・チェーンによって異なります。

TouchGFXにはMinGW環境が含まれており、ArmおよびGNU Make用のGNU Embedded Toolchainがプリインストールされています。これにより、含まれているMakefileをターゲット・ハードウェア向けに容易に実行できます。

TouchGFX Environmentは、<touchgfx_installation_directory>/env/MinGW/msys/1.0/msys.batから起動するか、Windowsスタート・メニューに追加された"TouchGFX x.y.z Environment"というショートカットから起動することができます。

TouchGFX Environmentを起動し、プロジェクトのルート・フォルダに移動した後、次に示す簡単なコマンドを実行して、ターゲット・ハードウェア向けにプロジェクトをコンパイルできます。

make -f gcc/Makefile
Note
GCC、STM32CubeIDE、IAR、またはKeilによるコンパイルを可能にするには、あらかじめTouchGFX DesignerでGenerateコマンドを実行しておきます。

STM32評価キットへのフラッシュ

STM32評価キットへのプロジェクトのフラッシュは、事前作成されたTouchGFX Board Setupをベースにしたプロジェクトを使用すると極めて簡単です。

各プロジェクトでは構築時にバイナリが生成され、このバイナリはST Link UtilityまたはSTM32CubeProgrammerのいずれかによってフラッシュできます。

したがって、フラッシュを行うにはこれらのツールをインストールする必要があります。

これらのツールはデフォルトの場所にインストールすることをお勧めします。

  • ST Link Utilityのデフォルトのインストール場所:
    C:/Program Files (x86)/STMicroelectronics/STM32 ST-LINK Utility/ST-LINK Utility
  • STM32CubeProgrammerのデフォルトのインストール場所:
    C:/Program Files/STMicroelectronics/STM32Cube/STM32CubeProgrammer
Note
TouchGFX Board Setupでは、IAR、Keil、STM32CubeIDE、またはその他のIDEから直接フラッシュするためのフラッシュ・ローダは提供されません。

GCCとTouchGFX Designer

<project_root_folder>/gcc/MakeFileにあるTouchGFX Board Setupに含まれるMakefileには、次に示すフラッシュ・コマンドが組み込まれています。このコマンドは、ST Link UtilityまたはSTM32CubeProgrammer(ATによって異なる)を使用してSTM32評価キットをフラッシュします。 もちろんデスクトップ・バージョンのフラッシュ・ツールを使用して、ボードと生成された.hexファイルをフラッシュすることもできます。

make -f gcc/Makefile flash

.hexファイルは、<project_root_folder>/TouchGFX/build/bin/target.hexにあります。

内部Flashのみに書き込み、外部Flashをスキップすることもできます。 大容量の画像セットがある場合、これによってフラッシュ時間を大幅に短縮できます。 ただし、外部Flashへの前回の書込み以降に、外部Flashのコンテンツが変更されていないことを確認する必要があります。 変更があり、再フラッシュしなかった場合、異常な動作になります。 この場合には、内部Flashと外部Flashの両方を再フラッシュします。

make -f gcc/Makefile intflash

.hexファイルは、<project_root_folder>/TouchGFX/build/bin/inttarget.hexにあります。

TouchGFX Board Setupでは、TouchGFX DesignerがRun Targetコマンドによって、プロジェクトをフラッシュできるように設定することもできます。 TouchGFX Designerがフラッシュのために使用するコマンドは、TouchGFX DesignerのConfig ViewBuildセクションに表示され、オーバーライドできます。

STM32CubeIDE

TouchGFX Board Setupでは、STM32CubeIDEによってコンパイルされたプロジェクトをフラッシュすることができます。このためには、STM32CubeProgrammerで、STM32CubeIDEから出力された.elfファイルを使用します。

.elfファイルは、<project_root_folder>/STM32CubeIDE/Debug/<STM32_evaluation_kit_name>.elfにあります。

例: C:/TouchGFXProjects/MyApplication/STM32CubeIDE/Debug/STM32F746G_DISCO.elf

IAR

TouchGFX Board Setupでは、IARによってコンパイルされたプロジェクトをフラッシュすることができます。このためには、STM32CubeProgrammerで、IARから出力された.hexファイルを使用します。

.hexファイルは、<project_root_folder>/EWARM/<STM32_evaluation_kit_name>/Exe/<STM32_evaluation_kit_name>.hexにあります。

例: C:/TouchGFXProjects/MyApplication/MDK-ARM/STM32F469I-DISCO/STM32F469I-DISCO.hex

Keil

TouchGFX Board Setupでは、Keilによってコンパイルされたプロジェクトをフラッシュすることができます。このためには、STM32CubeProgrammerで、Keilから出力された.hexファイルを使用します。

.hexファイルは、<project_root_folder>/MDK-ARM/<STM32_evaluation_kit_name>/<STM32_evaluation_kit_name>.hexにあります。

例: C:/TouchGFXProjects/MyApplication/MDK-ARM/STM32F469I-DISCO/STM32F469I-DISCO.hex

カスタム・ハードウェアのフラッシュ

STM32評価キットなどの事前定義されたハードウェア・セットアップではなく、カスタム・ハードウェアをフラッシュする必要がある場合でも、STM32CubeProgrammerを使用できます。 STM32CubeProgrammerは、ユーザ固有の外部メモリのフラッシュ・ロード・メカニズムが必ずしも付属しているわけではありません。 しかし、カスタム・フラッシュ・ローダを作成することができます。 詳細については、ユーザマニュアルの外部メモリ向けにカスタマイズされたローダの開発に関する記述を参照してください。