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は、C:/TouchGFX/4.18.0/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
ターゲット・ハードウェア向けのコンパイル
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は、C:/TouchGFX/4.18.0/env/MinGW/msys/1.0/msys.bat
から起動するか、Windowsスタート・メニューに追加された"TouchGFX x.y.z Environment"というショートカットから起動することができます。
TouchGFX Environmentを起動し、プロジェクトのルート・フォルダに移動した後、次に示す簡単なコマンドを実行して、ターゲット・ハードウェア向けにプロジェクトをコンパイルできます。
make -f gcc/Makefile
Note
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
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/intflash.hex
にあります。
TouchGFX Board Setupでは、TouchGFX DesignerがRun Targetコマンドによって、プロジェクトをフラッシュできるように設定することもできます。 TouchGFX Designerがフラッシュのために使用するコマンドは、TouchGFX DesignerのConfig ViewのBuildセクションに表示され、オーバーライドできます。
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/EWARM/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は、ユーザ固有の外部メモリのフラッシュ・ロード・メカニズムが必ずしも付属しているわけではありません。 しかし、カスタム・フラッシュ・ローダを作成することができます。 詳細については、ユーザマニュアルの外部メモリ向けにカスタマイズされたローダの開発に関する記述を参照してください。