펌웨어 소스는 받았는데 빌드가 되지 않는다. 컴파일러 버전이 다르고 프로젝트 설정 파일 하나가 빠져 있다. 개발을 맡았던 업체는 담당자가 바뀌었다. 보드는 창고에 쌓여 있는데 새 버전을 올릴 방법이 없다.
받은 게 코드뿐이면 대개 이렇게 된다.
펌웨어 개발 외주란 보드 위에서 도는 코드를 만들어 넘겨받는 일이다. 넘겨받아야 하는 건 코드가 아니라, 그 코드를 다시 빌드해 현장 장비에 올릴 수 있는 상태다. 둘은 다르다.
보드와 펌웨어를 따로 맡기면 어디서 막히나
증상은 애매하게 시작한다. 센서 값이 가끔 튀거나, 전원을 넣을 때마다 초기화가 한 번씩 실패한다.
이 자리에서 회로 업체와 펌웨어 업체의 말이 갈린다. 회로 쪽은 도면대로 만들었다고 하고, 펌웨어 쪽은 신호가 이상하다고 한다. 양쪽 주장에 거짓은 없다. 문제는 그 경계에서 재현 실험을 할 사람이 아무도 없다는 것이다. 오실로스코프를 보는 사람과 코드를 읽는 사람이 다른 회사에 있으면, 한 번 확인할 일에 메일이 사흘씩 오간다. 그러는 동안 양산 일정은 그대로 밀린다.
회로와 펌웨어는 리비전 단위로 계속 붙어 다닌다. 보드가 한 번 바뀌면 핀 배치와 타이밍이 같이 바뀌고, 펌웨어도 따라 바뀐다.
여기를 가르면 회의가 개발보다 길어진다.
구간을 어디까지 묶을지는 따로 정리해 두었다. → 맞춤 장비 개발, 어디까지 한 팀에 맡겨야 하나
인수인계 때 무엇까지 받아야 하나
계약서에 “소스코드 일체”라고 적혀 있어도 그것만으론 부족하다. 같은 바이너리를 다시 만들어낼 수 있어야 인수가 끝난 것이다.

| 받아야 하는 것 | 빠졌을 때 생기는 일 |
|---|---|
| 소스 전체와 빌드 스크립트 | 코드는 있는데 실행 파일이 안 나온다 |
| 툴체인 종류와 버전 | 빌드는 되는데 동작이 미묘하게 달라진다 |
| 부트로더와 업로드 절차 | 현장에서 못 올려 장비를 회수한다 |
| 버전 체계와 보드 리비전 대응표 | 어느 보드에 어느 파일인지 모른다 |
| 설정값의 의미와 허용 범위 | 잘못된 값을 걸러낼 기준이 없다 |
부트로더가 특히 잘 빠진다. 바이너리만 있고 올리는 방법이 없으면, 장비를 뜯어 디버거를 물려야 한다. 현장에 나가 있는 장비라면 그때부터는 출장비 문제가 된다.
버전 체계도 미루기 쉬운 항목이다. 처음엔 파일명 뒤에 날짜를 붙이는 정도로 시작하고, 모델이 세 종을 넘어가는 무렵 무너진다.
임베디드 개발과 보드 제작을 함께 보는 이야기는 따로 있다. → 부산 임베디드 개발 업체, PCB·펌웨어까지 한 팀이 맡아야 하는 이유
코드를 다 받았는데 왜 업로드가 남는가
펌웨어는 한 번 짜서 끝나는 물건이 아니다. 모델이 갈리고 리비전이 갈리면 파일도 같이 갈라진다.

장비 제조사 한 곳이 그랬다. 모델마다 설정과 펌웨어가 달라서 업로드를 사람이 직접 했다. 파일 목록에서 맞는 걸 골라 한 대씩 올리는 방식이었다. 손이 많이 가는 것보다 잘못된 파일을 올릴 위험이 더 컸다.
한 번 잘못 올라간 펌웨어는 조용하다. 당장 켜지긴 하니까.
장비 인식과 자동 매칭, 설정 검증, 일괄 업로드, 이력 관리를 하나의 프로그램으로 묶고 나서야 그 위험이 정리됐다. 순서가 핵심이다. 연결된 장비의 모델과 리비전을 먼저 읽고, 거기에 맞는 파일을 프로그램이 고르고, 설정값이 허용 범위 안인지 확인한 다음 올린다. 사람이 파일을 고르는 단계가 사라지면 잘못 고를 일도 같이 사라진다.
검증을 업로드 앞에 두는 게 중요하다. 올린 뒤에 확인하면 이미 장비가 그 값으로 돌고 있다.
업로드 이력은 나중에 무엇을 증명하나
이력은 개발 단계에서 가장 뒤로 밀리는 항목이다. 값어치는 몇 달 뒤에 드러난다.
불량이 접수되면 질문은 하나로 좁혀진다. 그 장비에 어떤 버전이 언제 올라갔는가. 기록이 없으면 같은 시기에 나간 물량 전체를 의심해야 하고, 회수 범위도 그만큼 넓어진다. 기록이 있으면 해당 버전이 올라간 대수만 추려 조치한다. 납품처 감사에서도 결국 같은 질문을 받는다. 작업자와 시각, 올라간 버전, 검증 통과 여부가 한 줄로 남아 있으면 그 자리에서 끝난다.
나중에 끼워 넣기가 가장 어려운 것도 이 부분이다. 이미 나간 장비의 과거 이력은 복구할 방법이 없다.
GrowSpace는 이 구간을 한 팀으로 다룬다. 보드 설계와 펌웨어, 업로드 프로그램, 기존 ERP·MES 연동까지 같은 인력이 이어받는다. → 맞춤 SW·HW 개발
자주 묻는 질문
다른 업체가 만든 펌웨어를 이어받을 수 있나요? 소스와 빌드 환경이 있으면 대부분 가능하다. 둘 중 하나라도 없으면 동작을 먼저 분석하는 작업이 앞에 붙는다. 보드 회로도가 남아 있는지가 기간을 크게 가른다.
소스코드는 누구 것이 되나요? 계약할 때 정할 항목이다. 인도 범위에 소스와 빌드 환경, 부트로더를 명시해 두는 편이 낫다. 나중에 유지보수 업체를 바꿀 때 그 문장 하나가 기준이 된다.
장비가 몇 대 안 되는데 업로드 프로그램이 필요한가요? 모델이 한 종이고 대수도 적으면 당장은 필요 없다. 다만 모델이 늘어날 계획이 있다면 이력 구조만이라도 먼저 잡아두는 편이 낫다. 나중에 붙이는 비용이 처음 만드는 비용보다 크다.
발주서를 쓰기 전에 한 가지만 정해두면 된다. 이 코드를 2년 뒤에 누가, 어떤 환경에서 다시 빌드해 올릴 것인가.



