본문 바로가기
전공 관련 (Major)/임베디드 소프트웨어 (Embedded Software)

toolchain 이란

by Jayce_choi 2021. 4. 3.
반응형

임베디드 시스템 개발을 위해서는 호스트 시스템 (Host system)과 타깃 시스템 (Target System)으로 구성이 됩니다.

호스트 시스템은 실질적으로 개발이 진행되는 곳을 의미하는데 임베디드 시스템의 제한적인 성능 때문에 큰 용량을 가지고 있지 않기 때문에 성능이 좋은 호스트 시스템을 이용하여 타깃 하는 시스템에서 동작 가능한 프로그램을 만들게 됩니다. 그리고 해당 프로그램을 동작하도록 하는데 필요한 게 교차 컴파일(Cross compile)이 되겠습니다.

* Cross Compiler : 컴파일러가 실행되는 플랫폼이 아닌 다른 플랫폼에서 실행 가능하도록 코드를 생성하는 컴파일러를 의미함.
( 예를 들어서 운영체제 자체가 들어가지 않는 MCU, 마이크로 컨트롤러와 같이 컴파일이 실현 불가능한 플랫폼에 컴파일하는데 사용됨, 즉 프로그램이 실행되는 MCU에 맞게 실행 바이너리가 만들어짐 )

여기서 타겟 시스템이란 실질적인 임베디드 시스템이 동작되는 환경을 의미합니다.

 

Toolchain

Toolchain은 타깃(Target) 시스템에서 동작하는 프로그램 개발에 필요한 호스트 시스템의 소프트웨어들 또는 개발 환경을 통칭합니다. 조금 더 구체적으로는 소스 코드를 컴파일하고 빌드하여 바이너리 실행 파일을 생성하는데 필요한 각종 유틸리티 및 라이브러리의 모음을 의미합니다.

Tool이라는 의미는 도구의 의미로써 개발 환경에 필요한 도구 모음이라는 것인데 chain이라는 단어가 붙은 이유는 하단의 그림처럼 컴파일러뿐만 아니라 링커 및 디버거 등의 역할이 연속적으로 사용되기 때문에 Chain이라는 단어가 붙게 되었습니다. 

주로 툴체인은 임베디드 시스템에서 자주 사용되는 말로 정리하면 "원하는 Target System의 소프트웨어 개발을 하기 위해서 Host System의 Compile 환경"으로 정리할수있겠습니다.

간단한 툴체인은 소스 코드 편집을 위한 문서 편집기와 소스 코드를 실행 프로그램으로 변환하는 컴파일러와 링커, 그리고 운영체제의 기능을 제공하는 라이브러리로 구성되기도 합니다.

Toolchain의 기본 구성 요소
- Assembler
- Debugger(gdb)
- Linker
- Compiler
- Library

반응형

댓글