노트 / 펌웨어 설계와 품질
버전 관리: Git으로 펌웨어 이력 남기기
브랜치, 커밋 단위, 릴리스 태그, 그리고 펌웨어 바이너리에 버전을 새기는 방법.
커밋 단위
- 한 커밋에는 한 가지 변경. "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
영상으로 이어 보기RC카 만들기 시리즈 6편대기업 임베디드 개발자 Lego RC카 메이킹 시작합니다. 【RC카 개발1】PROJECT COURSE요구사항부터 소프트웨어 구조까지 한 프로젝트로 해 보고 싶다면밸런싱 로봇 하나를 요구사항, 회로와 PCB, 펌웨어, 앱까지 실무 순서대로 만드는 강의입니다. 10파트 165강.강의 살펴보기 →FREE PDF무료 전자책 3권 받기이 주제를 한 권으로 이어서 읽고 싶다면. BLDC 모터 제어, 직렬통신, 센서를 책 분량으로 묶었습니다. 이메일만 남기면 바로 받습니다.무료로 받기 →