STM32CubeMX 프로젝트에 파일 추가
프로젝트 생성을 위한 추가 설정
STM32CubeMX를 사용하면 사용자가 .extSettings
파일을 통해 추가 프로젝트 설정을 지정할 수 있습니다. 이러한 설정은 CubeMX 코드 생성 시 지정된 프로젝트에 적용됩니다. .extSettings
파일은 .ioc
파일과 동일한 수준에서 동일한 프로젝트 폴더에 배치되어야 합니다.
엔트리 및 구문
ProjectFiles ProjectFiles 섹션의 필드를 사용하여 추가로 포함시킬 디렉토리를 지정합니다. Syntax:
HeaderPath = <include directory 1 path>;< include directory 2 path >
Groups Groups 섹션의 필드를 사용해 새 파일 그룹을 생성하거나 그룹에 파일을 추가합니다. Syntax:
<Group name> = <file pathname1>;< file pathname2>
Others Others 섹션의 필드를 사용하여 HAL 모듈을 활성화하거나 사전 프로세서 정의문을 지정합니다. Syntax:
Define = <define1_name>;<define2_name>
예제
다음 예제에서는 STM32H735G-DK 프로젝트를 위한 추가 설정을 지정합니다.
.extSettings file for STM32H735G-DK
[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
멀티 코어 구성의 경우, 파일이나 설정을 추가할 코어를 사용자가 반드시 지정해야 합니다.
.extSettings file for STM32H747I-DISCO
[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
파일
Update of the project `.project` file (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>
.extsettings
파일에 I2C 모듈이 있기 때문에 프로젝트Inc
(include) 폴더의stm32h7xx_hal_conf.h
파일이 업데이트됩니다.
Update of stm32h7xx_hal_conf.h file to enable selected HAL modules (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
사용자 인터페이스 내 프로젝트 보기는 아래 그림과 같습니다.
Note
.extSettings 파일에서 참조하는 파일들은 사용자가 STM32CubeMX 프로젝트 폴더에 수동으로 추가해야 합니다.
위의 STM32H735G-DK 예제의 경우, CortexMMCUInstrumentation.cpp 파일이 표시된 위치 /TouchGFX/target/CortexMMCUInstrumentation.cpp 안에 있어야 합니다.
Further reading
UM1718의 섹션 6.4 STM32 구성 및 초기화 C 코드 생성을 위한 STM32CubeMX를 참조하십시오.