| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- nucleo
- yocto
- esp32
- atmel
- Arduino
- avr-gcc
- 아두이노
- 디버깅
- 회로
- Debug
- Linux
- vscode
- raspberrypi
- UART
- STM32
- c#
- bare metal
- buildroot
- 리눅스
- GPIO
- Raspberry
- QEMU
- AArch64
- Visual Studio
- Debugging
- 라즈베리파이
- Visual Studio Code
- WPF
- C++
- AVR
- Today
- Total
임베디드를 좋아하는 조금 특이한 개발자?
[STM32] VisualStudio Code에서 개발 환경 구축 본문
1. 서론
STM32 MCU를 개발 할 때 대부분은 STM32CubeIDE나 IAR EWARM를 사용할 것 입니다. 하지만 저는 Visual Studio Code에서 자주 사용하기 떄문에 다른 개발 환경에서 개발하는 것이 힘들 때가 있습니다. 다행스럽게도 STM32에서는 꾸준히 Visual Studio Code에서 개발할 수 있도록 Extension를 개발하고 업데이트 하고 있습니다. 그리고 드디어 이제 사용할 만한 수준까지 도달하였습니다. 그렇기에 이번 포스트에서는 Visual Studio Code에서 STM32를 개발 할 수 있는 개발환경을 구축하는 방법에 대해 소개하려합니다.
- 참고 사항
Window, Linux, MacOS 운영체제에서 사용 가능하다는 것을 확인했습니다.
설치하는 환경에 한글이 있으면 안됩니다.
2. 사전 설치 프로그램
2.1. STM32 CubeMX
버전은 크게 상관없습니다. 최신 버전으로 다운로드하여 설치하시면 됩니다.
https://www.st.com/en/development-tools/stm32cubemx.html
STM32CubeMX | Software - STMicroelectronics
STM32CubeMX is a graphical tool that allows a very easy configuration of STM32 microcontrollers and microprocessors, as well as the generation of the...
www.st.com
2.2. STM32 CubeIDE
VisualStudio Code에서 개발할 건데 굳이 설치할 필요가 없다고 생각하시겠지만 CubeIDE를 설치하지 않으면 VisualStudio Code에서 STLink를 인식하지 않는 문제가 있습니다.
https://www.st.com/en/development-tools/stm32cubeide.html
STM32CubeIDE | Software - STMicroelectronics
STM32CubeIDE is a multi-OS, C/C++ integrated development environment for STM32 code development.
www.st.com
2.3. Visual Studio Code
Visual Studio Code - The open source AI code editor
Visual Studio Code redefines AI-powered coding with GitHub Copilot for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.
code.visualstudio.com
3. Visual Studio Code의 Extension 설치
3.1. C++ Exension Pack
STM32에서 개발할 때 C, C++를 사용하여 개발을 합니다. 해당 언어를 개발하면서 필요한 기능을 제공해주는 Extension입니다.
https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools-extension-pack
C/C++ Extension Pack - Visual Studio Marketplace
Extension for Visual Studio Code - Popular extensions for C++ development in Visual Studio Code.
marketplace.visualstudio.com
3.2. STM32CubeIDE for Visual Studio Code
STM32에서 Visual Studio 개발 환경을 구축할 수 있도록 해주는 Extension입니다. 해당 Extension이 있어야 STLink연결 및 디버깅 그리고 빌드를 할 수 있습니다.
https://marketplace.visualstudio.com/items?itemName=stmicroelectronics.stm32-vscode-extension
STM32CubeIDE for Visual Studio Code - Visual Studio Marketplace
Extension for Visual Studio Code - STM32 embedded development support added to Visual Studio Code.
marketplace.visualstudio.com
4. STM32 CubeMX로 프로젝트 생성
일반적으로 프로젝트를 생성하면 되지만 주의할 사항은 Toolchain을 반드시 CMake로 해주셔야 합니다.

5. Visual Studio Code 개발 환경 설정
이제 STM32 CubeMX로 생성한 프로젝트를 Visual Studio Code로 열어줍니다.

그럼 프로젝트를 Debug로 설정합니다.

이제 맨 처음 설정해주어야 하는 것은 Visual Studio Code에서 개발 보드와 Toolchain를 다시 설정해 주어야 합니다.


6. 프로젝트 빌드
단축키를 이용해 빌드를 하거나 아니면 상태 바를 통해 빌드할 수 있습니다.
6.1. 단축키로 빌드
Window, Linux : Ctrl + Shift + B
Max : Command + Shift + B
위 단축키를 통해 프로젝트를 빌드 할 수 있습니다.

6.2. 상태 바를 통해 빌드

7. ST Link로 업로드 및 디버깅
먼저 Run -> Start Debugging를 선택 또는 F5 단축키를 통해 디버깅을 시작합니다.

디버깅 세팅으로 "STM32Cube: STLink GDB Server"를 선택합니다.

그렇다면 자동적으로 빌드 후 펌웨어를 업데이트하고 디버깅 까지 자동적으로 실행됩니다.

8. 결론
지금까지 VisualStudio Code로 개발하면서 STM32CubeIDE에 비해 부족한점을 크게 느끼지 못했습니다. 대부분의 기능들은 지원하며 오히려 자동완성 기능이 너무 잘 작동하여 개발할 때 큰 만족감을 줍니다. 더 나아가 Codex 또는 Copilot 연동으로 펌웨어 개발에 AI 지원까지 강력하여 앞으로 개발 효율성이 크게 증가되었습니다. 물론 아직 Extension 기능이 완전하지 않아 부족한점도 있지만 이정도로 개발 할 수 있다면 더할 나위 없다고 생각합니다.
'Embedded > STM32' 카테고리의 다른 글
| [STM32] PWM를 통한 SG-90 서보 모터 제어 (1) | 2025.04.10 |
|---|---|
| [STM32] 외부 인터럽트(EXTI : EXTernal Interrupt)를 통해 버튼의 입력 감지 (0) | 2025.04.06 |
| [STM32] USART / UART를 통한 데이터 송수신 (0) | 2025.04.06 |
| [STM32] GPIO 레지스터를 주소로 직접 접근하여 GPIO 제어 (0) | 2025.04.05 |
| [STM32] GPIO로 버튼 및 LED 입출력 실습 (0) | 2025.04.05 |
