STM32CubeIDE for Visual Studio Code 3.9.0 버전 기준
참고로 이전 버전에서는 STM32CubeCLT를 별도 설치해줘야 했지만, 3.9.0 버전에서는 STM32 프로젝트 빌드/다운로드/디버깅에 필요한 명령줄 도구를 번들로 같이 설치하므로 STM32CubeCLT를 따로 설치할 필요가 없다.
1. STM32CubeMX 설치 (최소 6.11.0 이상 버전)
STM32CubeMX는 핀 설정, 클럭 설정 등을 하고 CMake 기반의 프로젝트 코드를 생성해 주는 역할을한다.

2. VSCode에서 STM32 확장 프로그램 설치
먼저 확장프로그램을 설치하기 전에 STM32 개발용 프로파일을 새로 만들어두는게 낫다. VSCode New Window 열때마다 STM32 확장프로그램과 번들이 실행되면 기능적으로 무거워지므로..
좌측 하단 설정 버튼 > Profile 클릭

기존 Profile을 복사해 STM32 Profile 생성

STM32 프로파일 적용 여부 확인


팝업창이 뜨면 Yes를 눌러 번들도 함께 설치한다.

사이드 STM32Cube 탭의ㅡ "STM32CUBE KEY ACTIONS"에서는 빈 프로젝트 생성, 예제 Import, STM32CubeIDE 프로젝트 변환, STM32Cube 프로젝트(CMake) 열기 등이 가능하고, "STM32CUBE RESOURCES"에선 가이드 문서 확인 ST-Link USB 드라이버 설치 등이 가능하다.

3. 프로젝트 생성
STM32CubeMX 실행
File > New Project

MCU/MPU Selector 또는 Board Selector를 통해 프로젝트 생성

Project Manager 클릭
Project Name, Project Location 입력하고 Toolchain은 CMake 선택한 뒤 GENERATE CODE

VSCode에서 File > Open Folder
해당 STM32CubeMX 프로젝트 폴더 열기

STM32Cube 확장 프로그램이 CMake 프로젝트를 감지하고 설정하겠냐는 창이 뜨면 Yes를 누른다.

빌드 구성을 선택한다.

설정 완료

STM32CUBE KEY ACTONS > Set Up STEM32Cube project(s)에서 설정된 내용을 확인할 수 있다.

4. 빌드
좌측 하단 빌드 버튼 클릭

빌드 완료

또는 사이드에서 CMAKE 탭에 들어가면
PROJECT OUTLINE > 프로젝트명 옆에 있는 Build 버튼, Clean 버튼을 눌러서 간편하게 실행할 수도 있고, 생성된 .map 파일을 통해 BUILD ANALYZER도 볼 수 있다.


build\<빌드구성이름> 디렉토리에 빌드 결과물 생성된다.

.bin 파일과 .hex 파일을 추가 생성하려는 경우 ${PROJECT_DIR}\CMakeLists.txt 맨 마지막에 다음 내용을 추가한다.
# Generate .hex and .bin after build
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_OBJCOPY} -O ihex $<TARGET_FILE:${CMAKE_PROJECT_NAME}> ${CMAKE_PROJECT_NAME}.hex
COMMAND ${CMAKE_OBJCOPY} -O binary $<TARGET_FILE:${CMAKE_PROJECT_NAME}> ${CMAKE_PROJECT_NAME}.bin
COMMENT "Generating HEX and BIN"
)
.bin과 .hex 파일 생성된 것을 확인할 수 있다.

5. 디버깅
Run and Debug 세션 시작

디버거 선택

이제 F5를 눌러 디버깅을 할 수 있고 Breakpoint, Live Watch, Call Stack, Register View 등 기능을 사용할 수 있다.

✓ .clang-format 적용하는 법
Ctrl + ,(콤마)를 눌러 설정창을 열고 enable format을 검색한다.
stm32cube-ide-clangd: Enable Formatting에 체크 해준다.

'임베디드 개발 > STM32 (ARM Cortex-M)' 카테고리의 다른 글
| STM32 ] GY-61(ADXL335) 3축 가속도센서 (0) | 2024.06.18 |
|---|---|
| STM32CubeIDE 1.15.0에서 Build Analyzer가 동작하지 않을 때 (0) | 2024.06.13 |
| STM32 ] microseconds 딜레이 함수 만들기 (1) | 2024.06.04 |
| STM32 ] TouchGFX, 하드웨어와 상호작용하기 (0) | 2023.07.18 |
| STM32 ] TouchGFX 설치하고 여러 Widget과 Interaction 사용 해보기 (0) | 2023.07.17 |