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

노트 / 펌웨어 설계와 품질

버전 관리: Git으로 펌웨어 이력 남기기

브랜치, 커밋 단위, 릴리스 태그, 그리고 펌웨어 바이너리에 버전을 새기는 방법.

GROUND EMBEDDED · 정리 노트설계·품질 06버전 관리 1const char fw_version[] = "1.2.0"; 2const char fw_git[] = GIT_HASH;// 빌드 …

커밋 단위

  • 한 커밋에는 한 가지 변경. "PWM 주파수 20kHz로 변경"과 "로그 포맷 수정"은 따로
  • 메시지는 무엇을, 왜: motor: PWM 16kHz→20kHz (가청 소음 제거)
  • 빌드가 깨진 상태로 커밋하지 않기

브랜치 전략 (작은 팀)

브랜치 용도
main 항상 빌드되고 검증된 상태
feature/xxx 기능 개발, 리뷰 후 병합
release/1.2 출시 준비, 버그 수정만

펌웨어에 버전 새기기

현장에서 돌아오는 기기가 어떤 코드로 동작했는지 알 수 있어야 합니다.

const char fw_version[] = "1.2.0";
const char fw_git[] = GIT_HASH;      // 빌드 스크립트가 -DGIT_HASH="a1b2c3d"로 넣음

부팅 로그, 진단 명령, 통신 응답에서 버전과 해시를 읽을 수 있게 합니다. 출시한 바이너리는 태그(v1.2.0)와 함께 보관합니다.

저장소에 넣을 것과 뺄 것

  • 넣기: 소스, 링커 스크립트, CubeMX .ioc 파일, 빌드 스크립트, 회로도와 PCB 파일(버전별)
  • 빼기: 빌드 산출물(.o, .elf), IDE 개인 설정 → .gitignore