프로젝트 배경
1) 문제점 - 양산 펌웨어에 16개 차종 ID, 5종 MCU 타입, 4종 ItemType 등 사용하지 않는 다중 제품 분기가 누적되어 실제 동작 경로 추적이 어려움. - 색상 변환 핵심 함수가 137줄 모놀리식 구조에 변수명이 l_mRB, l_rgbP 등으로 의미 파악이 불가능, 단위 테스트·디버깅이 사실상 불가. - 매직 넘버(0.73f, 0.0049f), 파일명 불일치 헤더 가드, 오타 상수명(FA
프로젝트 성과
137줄 모놀리식 함수 → 7-Stage 파이프라인으로 분해
색상 변환 핵심 함수를 입력 검증→좌표 로드→색역 비율→광량/전류 비율→온도 보정→PWM 환산→2단계 전류 제한의 7단계 헬퍼로 재구성. 명명 상수·구조체·Doxygen 주석 도입으로 유지보수성 회복.
Flash 마모 0회 — 8섹터 erase/write → 1바이트 레지스터 패킹
PDC 리셋 저장을 Flash 8섹터 순환 erase/write에서 Always-on RETAIN0 레지스터 1바이트 비트필드 패킹으로 전환. Flash 마모 0, 부팅 시 8섹터 스캔이 단일 read로 단축.
LIN OTA 펌웨어 다운로드 57KB / 100초 실측
LIN 20kbps 한 가닥만으로 차량 라인에서 펌웨어 업데이트 가능. ISO 15765 스타일 PCI + 패키지(≤256B)별 CRC32 + 이미지 전체 CRC32 이중 검증으로 무결성 보장.
105 커밋 / dead-code 21개 파일 제거 / 신규 모듈 8개
+6,831 / −20 라인 변경. 각 커밋이 독립적으로 빌드/동작 가능하도록 단계적 리팩토링. 16개 차종 ID 혼재 코드를 NH 단일 제품으로 정리.
기술 문서 20종 / 10,572 lines 작성
아키텍처·모듈별 분석·LIN 프로토콜 가이드·부트로더 학습 가이드·리팩토링 정리 등 Markdown 기술 문서 일체.
핵심 기능
진행 단계
1단계 — 기존 코드 분석 & 아키텍처 재정의
2025.09.
다중 제품 분기·MCU 분기·dead code 식별, 3-Layer(Application/Service/Vendor SDK) 아키텍처 재정의, 모듈 분리 계획 수립.
프로젝트 상세
[프로젝트 개요] 국내 완성차 OEM 향 차량 실내 무드램프(Mood Lamp) 제어기의 양산 펌웨어를 단일 제품 기준으로 전면 리팩토링하고, 부재했던 LIN 기반 Bootloader를 신규 설계·구현하였으며, 이를 검증·배포할 Python LIN 진단 라이브러리까지 처음부터 끝까지 1인이 개발한 임베디드 풀스택 프로젝트입니다. [대상 시스템] - MCU: iND83213A (ARM Cortex-M0







