반응형

임베디드 리눅스 프로그래밍 완전정복

 

 

툴체인

  • 소스 코드를 타깃 장치에서 실행할 수 있는 실행 파일
  • 컴파일러, 링커, 런타임 라이브러리를 포함하는 컴파일 도구들의 집합
  • 리눅스 시스템의 나머지 세 가지 요소 (부트로더, 커널, 루트파일시스템)를 빌드하기 위해 툴체인이 필요
  • 리눅스용 툴체인은 대부분 GNU 프로젝트에서 만들어진 요소에 기반을 두고 있다.

GNU 툴체인 세 가지 주요 요소

  • Binutils: 어셈블리와 링커를 포함하는 바이너리 유틸리티의 집합
  • GCC: C와 여러 언어를 위한 컴파일러, 공통 백엔드를 사용해 어셈블리 코드를 만들고, GNU 어셈블러로 넘긴다.
  • C 라이브러리: POSIX 규격에 기반을 둔 표준 API

종류

 

CPU 아키텍처

  • CPU 종류: ARM, MIPS, x86_64 등
  • Big endian / Little endian: 두 가지 모드로 동작 할 수 있는 CPU가 있지만, 기계어 코드가 다르다.
  • ABI ( Application Binary Interface): 함수 호출간에 인자를 넘기는 호출 규칙

 

Ubuntu 20.04 LTS 에 설치하는 명령어

$ sudo apt-get install autoconf automake bison bzip2 cmake \ 
flex g++ gawk gcc gettext git gperf help2man libncurses5-dev libstdc++6 libtool \ 
libtool-bin make
patch python3-dev rsync texinfo unzip wget xz-utils

 

권장 설치 명령어 예시

$sudo apt-get update
$sudo add-apt-repository universe
$sudo apt-get install autoconf automake bison bzip2 cmake \
$flex g++ gawk gcc gettext git gperf help2man libncurses5-dev \
$libstdc++6 libtool make patch python3-dev rsync texinfo unzip wget xz-utils

 

반응형

+ Recent posts