티스토리 뷰

 임베디드 프로그램을 개발하기 위해서는 반드시 크로스컴파일러가 필요하다. 크로스 컴파일러는 프로그래밍 소스코드를 개발대상 임베디드 시스템에 맞게 컴파일해서 바이너리 파일로 만들어주는 역할을 한다. 윈도우가 설치되어 있는 PC에서 사용하는 C컴파일러는 크로스 컴파일러라고 표현하지 않는다. 즉 MS의 Visual Stuidio.NET은 크로스 컴파일러 도구가 아니다.
 크로스 컴파일을 해야 하는 이유는 우리가 소스코드를 개발하기 위해 사용하는 윈도우가 설치된 컴퓨터와 실제 개발된 실행파일이 실행될 임베디드 시스템은 확연히 다른 기계이기 때문이다. 따라서 임베디드 시스템을 위한 프로그래밍을 하기 위해서는 임베디드용 컴파일러를 별도로 설치해야 하는데, 이러한 컴파일러를 크로스 컴파일러라고 한다.

 예륻들어 설명하면 Arm Cortex LM3S8962라는 코어를 가진 MCU의 Firmware를 개발한다고 했을 때, 실제 C언어로 Firmware를 작성하는 곳은 MCU가 아니고 호스트컴퓨터이다. Eclipse나 Editplus 같은 IDE를 이용하여 Firmware개발을 하게 되는데 실제동작은 MCU에서 일어나기 때문에 MCU에서 실행될 수 있도록 바꿔야 한다.
 그 과정이 소스코드의 입력 .c 혹은 .h파일 -> 컴파일(오브젝트파일 .obj) -> 링크(임베디드 시스템용 실행파일) -> 타겟보드로 다운로드 와 같이 일어난다. 이때 컴파일은 Arm용 컴파일러를 사용해야 하며(Sourcery G++이나 Winarm)이 컴파일과정이 크로스컴파일이다.

참고: Do it! bada 모바일 프로그래밍 by 여인춘
댓글
댓글쓰기 폼