반응형
💻 VSCode + STM32CubeMX로 STM32 개발 환경 구축
🧰 [1단계] 개발환경 준비
Mac에서 VSCode(Visual Studio Code)를 사용해 STM32 NUCLEO-F746ZG 보드에 코드 업로드, 테스트하는 과정
개발 환경 설정 → 코드 작성 → 컴파일 → 업로드 → LED 깜빡임 확인
📦 설치 목록
도구 | 설치 명령 |
---|---|
Homebrew | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
ARM GCC Toolchain | (직접 설치 권장) gcc-arm-none-eabi-10.3-2021.10-aarch64-linux.tar.bz2 다운로드 후 /opt/gcc-arm-none-eabi/ 에 압축해제 |
ST-Link 도구 | brew install stlink |
VSCode | brew install --cask visual-studio-code |
🧩 VSCode 확장팩 설치 (VSCode 안에서 Ctrl+Shift+X)
- ✅ C/C++ (
ms-vscode.cpptools
) - ✅ Cortex-Debug (
marus25.cortex-debug
) - ✅ Makefile Tools (
ms-vscode.makefile-tools
)
🧱 [2단계] STM32CubeMX로 프로젝트 생성
- STM32CubeMX 실행
Board Selector
에서NUCLEO-F746ZG
선택 (사용자 보드에 맞게 선택)- 핀맵 설정:
- PB0, PB7, PB14 → GPIO_Output
- Project 설정
- Toolchain: Makefile
- Language: C
- 프로젝트 폴더: 예:
~/stm32/led_test
- [GENERATE CODE] 클릭
🗃️ [3단계] VSCode에서 프로젝트 열기
- VSCode 실행 →
led_test
폴더 열기 .vscode
폴더 생성 후launch.json
,c_cpp_properties.json
,tasks.json
설정
✍️ [4단계] 코드 작성
Core/Src/main.c
파일의 while (1)
안을 다음으로 수정:
while (1)
{
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
HAL_Delay(500);
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_7);
HAL_Delay(500);
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_14);
HAL_Delay(500);
}
📀 이 코드는 0.5초 간격으로 PB0 → PB7 → PB14를 순차 토글하며 LED 깜빡임
⚙️ [5단계] 컴파일
#!/bin/bash
GCC_PATH=/opt/gcc-arm-none-eabi/bin
make clean
make GCC_PATH=$GCC_PATH
위와 같이 build.sh을 만들고 아래 명령어 실행
./build.sh
📤 [6단계] 업로드
#!/bin/bash
CUBEPROG_CLI="/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.macos64_2.2.100.202412061334/tools/bin/STM32_Programmer_CLI"
BIN_FILE="build/led_test.bin"
ADDRESS=0x08000000
if [ ! -f "$BIN_FILE" ]; then
echo "❌ $BIN_FILE not found. 먼저 build.sh로 빌드"
exit 1
fi
echo "🚀 Uploading $BIN_FILE to STM32 via ST-LINK (SWD)..."
"$CUBEPROG_CLI" -c port=SWD -d $BIN_FILE $ADDRESS -rst
if [ $? -eq 0 ]; then
echo "✅ Upload successful!"
else
echo "❌ Upload failed!"
fi
위와 같이 upload.sh을 만들고 아래 명령어 실행
./upload.sh
✅ [7단계] 실행 확인
- 보드의 PB0, PB7, PB14에 연결된 LED가 0.5초 간격으로 순차 깜빡이면 성공
- 보드 실크 인쇄로 핀 번호 확인 가능
- 외부 LED 또는 멀티미터로 신호 확인 가능
🧪 [참고] 디버깅 설정 (VSCode + Cortex-Debug)
.vscode/launch.json
파일을 아래와 같이 설정
{
"configurations": [
{
"name": "Cortex Debug",
"cwd": "${workspaceRoot}",
"executable": "build/led_test.elf",
"request": "launch",
"type": "cortex-debug",
"servertype": "stlink",
"device": "STM32F746ZG",
"runToMain": true
}
]
}
반응형
'임베디드 관련 > STM32' 카테고리의 다른 글
[STM32] Please login to download a software package 오류 (0) | 2025.04.25 |
---|---|
Targeted Binary Type, Targeted Project Type (0) | 2025.04.24 |
VSCode + CubeMX와 CubeIDE STM32 개발 환경 비교 (0) | 2025.04.23 |
STM32CubeIDE 개발 환경 구축 (0) | 2025.04.21 |
STM32를 시작하기 전 기본지식 (0) | 2025.04.20 |
댓글