빌드 과정: 소스가 펌웨어가 되기까지
전처리, 컴파일, 어셈블, 링크를 거쳐 실행 파일이 되는 흐름과 링크 오류를 읽는 방법.
빌드 버튼 한 번 뒤에는 네 단계가 있습니다.
| 단계 | 입력 → 출력 | 하는 일 |
|---|---|---|
| 전처리 | .c → .i | include, define 펼치기 |
| 컴파일 | .i → .s | C를 어셈블리로 |
| 어셈블 | .s → .o | 어셈블리를 기계어 목적 파일로 |
| 링크 | .o 여러 개 → .elf | 함수와 변수 주소 확정, 하나로 합치기 |
.elf에서 필요한 부분만 뽑으면 MCU에 굽는 .bin이나 .hex가 됩니다.
오류가 어느 단계에서 났는지 보기
undeclared identifier: 컴파일 단계. 헤더를 안 넣었거나 오타undefined reference to 'foo': 링크 단계. 선언은 있는데 정의가 담긴 .c 파일이 빌드에 빠짐multiple definition of 'x': 링크 단계. 헤더에 변수를 정의해서 여러 파일에 들어감region FLASH overflowed: 링크 단계. 코드가 Flash 크기를 넘음
맵 파일
링커가 남기는 .map 파일에는 함수와 변수가 어느 주소에 몇 바이트로 놓였는지 나옵니다. Flash나 RAM이 부족할 때 가장 먼저 여는 파일입니다.
영상으로 이어 보기공부법과 진로 시리즈 15편2025 임베디드 프로그래밍 공부 순서 | 공부 방법 | 로드맵PROJECT COURSEC 문법을 실제 펌웨어 코드로 써 보고 싶다면밸런싱 로봇 하나를 요구사항, 회로와 PCB, 펌웨어, 앱까지 실무 순서대로 만드는 강의입니다. 10파트 165강.강의 살펴보기 →FREE PDF무료 전자책 3권 받기이 주제를 한 권으로 이어서 읽고 싶다면. BLDC 모터 제어, 직렬통신, 센서를 책 분량으로 묶었습니다. 이메일만 남기면 바로 받습니다.무료로 받기 →