임베디드/임베디드리눅스(15)
-
빌드 시스템
설치한 툴체인을 기반으로 타깃에 필요한 다양한 도구, 응용 프로그램, 라이브러리를 크로스 컴파일 할 것이다 이 과정 속에서 사용되는 것이 빌드시스템이다. 상당수는 오픈소스 패키지며, 자신만의 독특한 컴파일 방법이 존재한다 흔히 쓰이는 빌드 시스템은 총 3가지다 1. 툴체인이 주로 make 변수 CROSS_COMPILE로 제어되는 순수한 makefile들 2. GNU 빌드 시스템인 Autotools 3. CMake COPYRIGHT 임베디드 리눅스 프로그래밍 완전정복 / 크리스 시먼즈
2019.04.21 -
툴체인을 설치하는 방법
1. 미리 빌드된(pre-build) 툴체인을 받는 방법 2. crosstool-ng 도구를 사용해서 자신이 사용하려는 환경에 맞춰 소스코드들을 조합한 후 빌드해서 툴체인을 받는 방법 3. buildroot 혹은 Yocto 빌드 시스템의 일부로 툴체인을 얻는 방법 1, 2, 3은 편리함과 유지보수와 관련해서 각각 장단점들이 존재한다 개발자들은 3번을 선호하는 편이다 장단점들은 경험 후에 정리해보고자 한다
2019.04.21 -
컴파일 과정
컴파일의 자세한 과정은 -v 옵션으로 확인할 수 있다. 간략하게 4가지 과정을 거쳐 실행파일이 만들어진다 C pre processor가 전처리과정을 거치면서 .i 파일을 생성한다 .i 파일을 어셈블리로 컴파일하면서 .s파일을 생성한다 .s파일은 어셈블러로 .o 파일을 생성한다 외부 라이브러리에 있는 symbol을 링크해서 실행파일을 생성한다
2019.04.21 -
툴체인 조합
gnu는 대시로 구분된 3~4개의 요소로 툴체인을 정의한다 cpu : ARM, MIPS, x86_64같은 cpu 아키텍처. little-endian을 지원한다면 el, big-endian을 지원한다면 eb를 붙여서 구별한다. 만일 little-endian MIPS 아키텍처는 mipsel, big-endian ARM은 armeb다 벤더 : 툴체인 공급자를 나타낸다. buildroot, poky, unknown이 있다. 생략이 가능하다 커널 : 리눅스 커널에선 linux 운영체제 : gnu나 musl일 수 있다. 여기에 ABI를 붙여서 쓴다. 예를 들어 ARM 툴체인의 경우 gnueabi, gnueabihf, musleabi, musleabi
2019.04.19 -
[BBB로 임베디드 시스템 구축] 툴체인 설치
툴체인은 임베디드 리눅스의 첫 번째 요소로, 타겟보드에서 실행될 소스로 컴파일 가능케하는 도구다 툴체인의 조건으로는 1. 툴체인은 해당 프로세서를 위한 최적의 명령어 세트를 사용함으로써 하드웨어를 효과적으로 사용할 수 있어야 한다 2. 프로젝트에 필요한 언어를 지원해야 하고, POSIX(Portable Operating System Interface 및 기타 시스템 인터페이스) 에 대한 믿음직한 구현을 갖고 있어야 한다 3. 툴체인을 공급하는 회사에서 버그 혹은 결함에 대한 업데이트를 꾸준히 진행하는지 확인해야 한다 4. 툴체인은 프로젝트 내내 바뀌지 않아야 한다. 즉, 한 번 툴체인을 정하면 끝까지 고수해야 한다. 프로젝트 도중 일관성 없이 컴파일러와 개발 라이브러리를 바꾸면 감지하기 힘든 버그를 낳는..
2019.04.18 -
[BBB로 임베디드 시스템 구축] 준비
블루투스, 와이파이 모듈을 지원하는 비글본 최신버전이 아닌 이전 버전도 리눅스 환경을 구성하기엔 하드웨어 스펙이 충분할뿐더러 보다 저렴하기에 선택했다 호스트 PC는 안정적인 ubuntu 16.04로 택했다 https://smartstore.naver.com/makeitfun/products/4141857705?NaPm=ct%3Djump316g%7Cci%3Dcheckout%7Ctr%3Dppc%7Ctrx%3D%7Chk%3D105d6867eef391c941bf329a06e65bb74af50e9f
2019.04.18