그라운드 임베디드 유튜브 구독

노트 / MCU 펌웨어

개발 환경: LED 하나 켜기까지

STM32CubeIDE, 컴파일러, 디버거를 갖추고 첫 펌웨어를 올립니다. 첫 LED가 켜지면 툴체인 전체가 확인된 것입니다.

GROUND EMBEDDED · 정리 노트펌웨어 01개발 환경 1while (1) { 2 HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_… 3 HAL_Delay(500); 4}

필요한 것

구성 예
IDE STM32CubeIDE, VS Code + 확장
컴파일러 arm-none-eabi-gcc (IDE에 포함)
디버거 ST-LINK (Nucleo 보드에 내장), J-Link
설정 도구 STM32CubeMX (핀, 클럭 설정 후 코드 생성)
보드 Nucleo-F411RE 같은 개발 보드

첫 프로젝트 순서

  1. 보드 이름으로 새 프로젝트 생성
  2. CubeMX 화면에서 LED 핀(예: PA5)을 GPIO_Output으로 설정
  3. 코드 생성 후 while(1) 안에 토글 코드 추가
  4. 빌드 → 디버그 실행 → LED 깜빡임 확인
while (1) {
    HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
    HAL_Delay(500);
}

LED가 안 켜질 때

  • 보드 회로도에서 LED가 정말 그 핀에 연결됐는지
  • 디버거 연결이 되는지 (ST-LINK 펌웨어 업데이트가 필요할 때가 많음)
  • 생성된 코드의 /* USER CODE BEGIN */ 블록 밖에 코드를 써서 재생성 때 지워지지 않았는지

이 단계가 되면 컴파일러, 링커, 스타트업, 디버거가 모두 정상이라는 뜻입니다.