跳轉到主要內容

編譯與燒錄

本節描述如何完成從TouchGFX應用程式碼到程式執行這一過程,即如何在特定的設置中進行編譯和燒錄。

編譯TouchGFX應用程式

當編譯一個TouchGFX應用程式時,有兩個選項:對PC模擬器進行編譯,或對目標硬體進行編譯。

對PC模擬器進行編譯

對PC模擬器編譯專案時有兩個選項:GCC和Visual Studio。
這兩個選項始終可用,因為它們是由TouchGFX Designer生成的。

GCC

Makefile位於<touchgfx_application_root_folder>/simulator/gcc/Makefile

TouchGFX包含一個MinGW環境,該環境安裝了一個GCC編譯器和GNU Make,可以輕鬆執行對PC模擬器生成的Makefile。

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

也可以從TouchGFX Designer編譯和啟動PC Simulator,方法是使用Run Simulator指令。

Visual Studio

要使用Visual Studio編譯PC Simulator,只需使用Visual Studio打開位於<touchgfx_application_root_folder>/simulator/msvs/Application.sln的已生成解決檔。

可以直接從Visual Studio啟動PC Simulator,啟用程式碼除錯

Note
在運用GCC或Visual Studio進行編譯之前,從TouchGFX Designer運行Generate指令。

對目標硬體進行編譯

對於基於TouchGFX開發版設置的應用程式來說,對STM32評估套件進行專案編譯是非常簡單的。

每個TouchGFX開發版設置包含對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嵌入式工具鏈,可以輕鬆執行目標硬體所包含的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
在運用GCC、STM32CubeIDE、IAR或Keil進行編譯之前,從TouchGFX Designer執行Generate指令。

燒錄STM32評估套件

因為專案基於預先完成的TouchGFX開發板設置,將專案燒錄到STM32評估套件是非常輕鬆的。

每個專案在構建之後都會生成一個二進位檔案,該檔可以通過ST Link UtilitySTM32CubeProgrammer燒錄

因此,必須安裝這些工具,才能進行燒錄。

建議將這些工具安裝到默認位置。

  • ST Link Utility默認安裝位置:
    C:/Program Files (x86)/STMicroelectronics/STM32 ST-LINK Utility/ST-LINK Utility
  • STM32CubeProgrammer默認安裝位置:
    C:/Program Files/STMicroelectronics/STM32Cube/STM32CubeProgrammer
Note
TouchGFX開發板設置不提供任何flash loader,用於直接從IAR、Keil、STM32CubeIDE或其他IDE進行燒錄。

GCC與TouchGFX Designer

Makefile(包含在位於<project_root_folder>/gcc/MakeFile的TouchGFX開發版設置中)內置一條燒錄指令(如下所示),使用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

TouchGF開發板設置同樣為TouchGFX Designer提供了配置,以便能夠Run Target指令燒錄專案。 被TouchGFX Designer用於進行燒錄的指令可以在TouchGFX Designer中配置視圖構建部分看見並覆蓋。

STM32CubeIDE

TouchGFX開發板設置使用STM32CubeIDE輸出的.elf檔支援通過STM32CubeProgrammer對用STM32CubeIDE編譯的專案進行燒錄。

.elf文件位於<project_root_folder>/STM32CubeIDE/Debug/<STM32_evaluation_kit_name>.elf

e.g. C:/TouchGFXProjects/MyApplication/STM32CubeIDE/Debug/STM32F746G_DISCO.elf

IAR

TouchGFX開發板設置使用IAR輸出的.hex檔支援通過STM32CubeProgrammer對用IAR編譯的專案進行燒錄。

.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開發版設置使用Keil輸出的.hex檔支援通過STM32CubeProgrammer對用Keil編譯的專案進行燒錄。

.hex文件位於<project_root_folder>/MDK-ARM/<STM32_evaluation_kit_name>/<STM32_evaluation_kit_name>.hex

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

燒錄自訂硬體

如果需要燒錄的是自訂硬體,而不是STM32評估套件這樣的預定義硬體設置,則仍然可以使用STM32CubeProgrammer。 STM32CubeProgrammer不一定帶有對特定外部記憶體的flash載入機制。 然而,可以創建一個自訂的flash loader。 參閱關於如何為外部記憶體開發自訂載入器的用戶手冊可瞭解更多資訊。