본문 바로가기
임베디드 관련/STM32

[STM32] VSCode에서 오류 모음

by minhyeok.lee 2025. 4. 26.
반응형

VSCode에서 STM32CubeMX로 개발환경 구축할때 오류 모음


❌ ../Core/Startup/startup_stm32f746zgtx.s:61: Error: junk at end of line, first unrecognized character is \

🔍 원인

  • 해당 .s 파일이 CRLF 줄바꿈 형식으로 저장됨
  • 또는 비정상적인 특수문자(\ 등)가 포함되어 있음

✅ 해결 방법

  • LF로 줄바꿈 변경 (VSCode 우측 하단 → CRLFLF로 변경)
  • 또는 dos2unix startup_stm32f746zgtx.s 명령 사용

❌ fatal error: stdint.h: No such file or directory

🔍 원인

  • macOS에 설치된 arm-none-eabi-gccnewlib 라이브러리를 제대로 참조하지 못함
  • 특히 /opt/homebrew/bin에 있는 버전이 macOS 시스템 경로와 충돌 가능

✅ 해결 방법

  • brew 버전 대신 ST 공식 toolchain 사용:
# CubeIDE toolchain 사용 예시
/opt/gcc-arm-none-eabi/bin/arm-none-eabi-gcc
  • Makefile 또는 build.sh에서 GCC_PATH=/opt/gcc-arm-none-eabi/bin으로 지정 필요

❌ Upload failed - Timeout / Wrong USB port / Serial error

🔍 원인

  • 보드가 DFU 모드나 시리얼 부트로 잘못 부팅됨
  • 또는 SWD 대신 UART로 업로드 시도 중

✅ 해결 방법

  • upload.sh에서 ST-LINK를 명확하게 지정
"$CUBEPROG_CLI" -c port=SWD -d build/led_test.bin 0x08000000 -rst
  • 부트 핀(BOOT0, BOOT1) 설정 확인 → BOOT0을 GND에 연결
  • 보드 USB 케이블 재연결 또는 RESET 버튼 수동 누름도 유효

❌ F5로 빌드 안 되고 입력 키 오류 발생

🔍 원인

  • F5디버깅용 실행이므로 launch.json 설정이 필요
  • 그러나 STM32는 일반적인 gdb만으로 실행되지 않음 (펌웨어 직접 업로드 필요)

✅ 해결 방법

  • F5 대신 Cmd + Shift + B (VSCode Build Task 실행)
  • tasks.jsonbuild.shupload.sh 자동 실행 설정 가능
  • F5는 Cortex-Debug를 통한 GDB 디버깅 용도로만 유지
반응형

댓글