크로스컴파일러란?

 

http://voidpointer.maltion.com/cross-compiler-toolchain-build/

컴파일러가 실행되는 플랫폼이 아닌 다른 플랫폼에서 실행 가능한 코드를 생성할 수 있는 컴파일러입니다.

 

ex) 운영체제를 지원하지 않는 마이크로컨트롤러와 같이 컴파일이 실현 불가능한 플랫폼에 컴파일하는데 사용

 

임베디드 시스템 개발을 하기 위해서는 반드시 크로스 컴파일러가 필요하죠.

 

C코드를 MCU에 맞게 컴파일을 해서 바이너리 파일로 만들어줍니다.

 

그렇다면 네이티브(Native) 컴파일러(호스트용 C 컴파일러)와 크로스 컴파일러의 차이는 무엇일까요?

 

우선 네이티브 컴파일러는 컴파일을 하고 나면 프로그램 실행 결과를 바로 확인할 수 있습니다.

 

프로그램이 실행되는 호스트 PC의 MCU에 맞게 실행 바이너리가 만들어지기 때문이죠.

 

크로스 컴파일러는 프로그램이 실행되는 MCU에 맞게 실행 바이너리가 만들어지기 때문에 다릅니다.

 

그리고 Startup파일도 필요합니다. 이 스타트업에 관해서 추후에 포스팅을 또 하겠습니다.

 

이러한 크로스 컴파일러는 아무래도 MCU 제작 업체에서 주로 잘 만드는 편입니다.

 

따라서 개발자는 비용이 들어가지만 MCU를 최적으로 사용하기 위해 비용을 주고 크로스 컴파일러를 구매하죠.

 

 

 

또한 리눅스에 gcc라는 좋은 컴파일러가 있습니다.

 

툴체인을 통해 원하는 프로세스의 크로스 컴파일을 합니다. ex) arm-linux-gcc

 

툴체인에 대해서도 추후에 포스팅을 하겠습니다.

 

 

 

 

 

 

 

 

http://recipes.egloos.com/5312701

 

임베디드 개발자를 위한 강좌가 있는 블로그

+ Recent posts