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

STM32CubeMXプロジェクトへのファイルの追加

プロジェクト生成のための追加設定

STM32CubeMXでは、ユーザが.extSettingsファイルを介して追加のプロジェクト設定を指定できます。 追加された設定は、CubeMXコードの生成時に、指定されたプロジェクトに適用されます。 .extSettingsファイルは、.iocファイルと同じプロジェクト・フォルダ内の同じ階層に配置する必要があります。

エントリと構文

  • ProjectFiles ProjectFilesセクション内のフィールドを使用して、追加のインクルード・ディレクトリを指定します。 構文は次のとおりです。

    HeaderPath = <include directory 1 path>;< include directory 2 path >
  • Groups Groupsセクション内のフィールドを使用して、ファイルの新しいグループを作成したり、グループにファイルを追加したりします。 構文は次のとおりです。

    <Group name> = <file pathname1>;< file pathname2>
  • Others Othersセクション内のフィールドを使用して、HALモジュールを有効にしたり、プリプロセッサのdefineステートメントを指定したりします。 構文は次のとおりです。

    Define = <define1_name>;<define2_name>

次の例では、STM32H735G-DKプロジェクトの追加設定を指定しています。

STM32H735G-DK用の.extSettingsファイル
[ProjectFiles]
HeaderPath=../Drivers/BSP/Components/Common;../Drivers/BSP/STM32H735G-DK
[Groups]
Drivers/BSP/STM32H735G-DK=../Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_ospi.c;../Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_ts.c;../Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_bus.c
Drivers/BSP/Components=../Drivers/BSP/Components/s70kl1281/s70kl1281.c;../Drivers/BSP/Components/mx25lm51245g/mx25lm51245g.c;../Drivers/BSP/Components/ft5336/ft5336.c;../Drivers/BSP/Components/ft5336/ft5336_reg.c
Application/User/TouchGFX/target=../TouchGFX/target/CortexMMCUInstrumentation.cpp
[Others]
Define=USE_STM32H735G_DK
HALModule=I2C

次の例では、STM32H747I-DKプロジェクトの追加設定の方法を示しています。

Tip
マルチコア構成に対する設定の場合、ファイルまたは設定を追加するコアをユーザが指定する必要があります。
STM32H747I-DISCO用の.extSettingsファイル
[CortexM7:ProjectFiles]
HeaderPath=../Drivers/BSP/Components/Common;../Drivers/BSP/STM32H747I-Discovery
[CortexM7:Groups]
Application/User/CM7/TouchGFX/target=../CM7/TouchGFX/target/STM32H7Instrumentation.cpp
Drivers/BSP/Components=../Drivers/BSP/Components/otm8009a/otm8009a.c;../Drivers/BSP/Components/otm8009a/otm8009a_reg.c;../Drivers/BSP/Components/ft6x06/ft6x06.c;../Drivers/BSP/Components/ft6x06/ft6x06_reg.c;../Drivers/BSP/Components/mt25tl01g/mt25tl01g.c;../Drivers/BSP/Components/is42s32800j/is42s32800j.c
Drivers/BSP/STM32H747I-Discovery=../Drivers/BSP/STM32H747I-Discovery/stm32h747i_discovery_bus.c;../Drivers/BSP/STM32H747I-Discovery/stm32h747i_discovery_qspi.c;../Drivers/BSP/STM32H747I-Discovery/stm32h747i_discovery_sdram.c;../Drivers/BSP/STM32H747I-Discovery/stm32h747i_discovery_ts.c;
[CortexM7:Others]
Define=USE_STM32H747I_DISCO
HALModule=I2C

生成済みのプロジェクトへの影響

CubeMXからのプロジェクト生成時に、この.extSettingsファイルが存在する場合は以下の更新がトリガされます。

  • STM32CubeIDEフォルダにあるIDEプロジェクトの.projectファイル
プロジェクトの `.project` ファイル(STM32CubeIDE IDE)の更新
        <link>
<name>Drivers/BSP/Components/ft5336.c</name>
<type>1</type>
<locationURI>$%7BPARENT-1-PROJECT_LOC%7D/Drivers/BSP/Components/ft5336/ft5336.c</locationURI>
</link>
<link>
<name>Drivers/BSP/Components/ft5336_reg.c</name>
<type>1</type>
<locationURI>$%7BPARENT-1-PROJECT_LOC%7D/Drivers/BSP/Components/ft5336/ft5336_reg.c</locationURI>
</link>
<link>
<name>Drivers/BSP/Components/mx25lm51245g.c</name>
<type>1</type>
<locationURI>$%7BPARENT-1-PROJECT_LOC%7D/Drivers/BSP/Components/mx25lm51245g/mx25lm51245g.c</locationURI>
</link>
<link>
<name>Drivers/BSP/Components/s70kl1281.c</name>
<type>1</type>
<locationURI>$%7BPARENT-1-PROJECT_LOC%7D/Drivers/BSP/Components/s70kl1281/s70kl1281.c</locationURI>
</link>
<link>
<name>Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_bus.c</name>
<type>1</type>
<locationURI>$%7BPARENT-1-PROJECT_LOC%7D/Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_bus.c</locationURI>
</link>
<link>
<name>Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_ospi.c</name>
<type>1</type>
<locationURI>$%7BPARENT-1-PROJECT_LOC%7D/Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_ospi.c</locationURI>
</link>
<link>
<name>Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_ts.c</name>
<type>1</type>
<locationURI>$%7BPARENT-1-PROJECT_LOC%7D/Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_ts.c</locationURI>
</link>
...
<link>
<name>Application/User/TouchGFX/target/CortexMMCUInstrumentation.cpp</name>
<type>1</type>
<locationURI>$%7BPARENT-1-PROJECT_LOC%7D/TouchGFX/target/CortexMMCUInstrumentation.cpp</locationURI>
</link>
  • このプロジェクトのInc(インクルード)フォルダにあるstm32h7xx_hal_conf.hファイル(.extsettingsファイルにI2Cモジュールが存在するため)
stm32h7xx_hal_conf.hファイルを、選択されたHALモジュール(I2C)を有効化するために更新
/* #define HAL_PSSI_MODULE_ENABLED */
/* #define HAL_DTS_MODULE_ENABLED */
#define HAL_GPIO_MODULE_ENABLED
#define HAL_DMA_MODULE_ENABLED
#define HAL_MDMA_MODULE_ENABLED
#define HAL_RCC_MODULE_ENABLED
#define HAL_FLASH_MODULE_ENABLED
#define HAL_EXTI_MODULE_ENABLED
#define HAL_PWR_MODULE_ENABLED
#define HAL_I2C_MODULE_ENABLED
#define HAL_CORTEX_MODULE_ENABLED
/* #define HAL_HSEM_MODULE_ENABLED */
  • STM32CubeIDEユーザ・インタフェースのプロジェクト・ビューは、次の図のようになります。

    BSP Driversのグループとファイルがプロジェクト・グループに新しく追加される

MCU Instrumentationのグループとファイルがプロジェクト・グループに新しく追加される

Note
.extSettingsファイルによって参照されるファイルは、ユーザがSTM32CubeMXプロジェクトのフォルダに手動で追加する必要があります。

上記のSTM32H735G-DKの例では、CortexMMCUInstrumentation.cppファイルが指定された場所(/TouchGFX/target/CortexMMCUInstrumentation.cpp)に存在する必要があります。

Further reading
UM1718 : STM32CubeMX for STM32 configuration and initialization C code generationのセクション6.4を参照してください。