크로스 컴파일 환경 구축.

Slides:



Advertisements
Similar presentations
Embedded System Lab. II GUI Programming in Embedded Linux 경희대학교 컴퓨터공학과 조 진 성.
Advertisements

2013 년 2 학기 임베디드 프로그래밍. 권장사양  HOST PC 권장사항  리눅스 배포판이 설치된 PC - 권장 배포판 : Asianux open edition3 ( 라곤 하지만 Ubuntu, Fedora, CentOS 등 다양한 리눅스 프랫폼이 가능 )  PC.
KAIST 09 SPARCS 10 안재만 (Kuss).  OS  Kernel & Shell  OS Layer  Linux  Linux / GNU  Linux 역사  Linux 배포판  Linux Directories.
Distributed and Cloud Computing Lab. Embedded System Software 개발 환경 설정 Dept. of Computer Science and Engineering Sogang University, Seoul, KOREA 1.
Linux Debugging issues
Root File System 충북대학교 지능로봇연구실.
개발 환경 설치 Embedded System Software
EZ Board-M In-Ho, Roh Real Time System Lab.
임베디드 시스템 개발 환경 (1) Lecture #3.
임베디드 시스템 개론 8. 임베디드 시스템 개발 환경 8주차 강의 자료 Embedded System Lab.
임베디드 시스템 개발을 위한 리눅스 환경설정.
1장 유닉스 소개.
컴퓨터 네트워크 실습.
Windows CE 시스템 개발 환경 구축.
제6장 FUSING.
Cross Compiler를이용한 커널 컴파일 및 포팅
Cross Compiler를이용한 커널 컴파일 및 포팅 1
PXA270 개발환경 설정 Ubuntu 실습용.
개발 환경 개발 환경 개요 PXA270과 타겟 시스템 툴체인 환경 구축 JTAG 유틸리티 미니컴 Make 유틸리티
cafe.naver.com/embeddedcrazyboys
제16장 QT/Embedded.
Kernel Porting Lecture #7.
제4장 Cross Compiler 설치.
Install & Simulation VLSI 시스템 설계
Minicom,tftp,nfs설정,vnc설정
FUSING.
Tftp, nfs, samba 실습 임베디드 시스템 I.
[beginning] Linux & vi editor
Linux를 이용한 Embedded 장비 개발
임베디드 리눅스 시스템의 기본 개념 강의 목표 내용 임베디드 리눅스 시스템의 기본 개념과 주제 제시 1. 임베디드 시스템
목차 커널의 개념 및 기능 커널 포팅 램디스크.
기상연구소 응용 프로그램 (MM5/MPP) 시스템 별 성능 측정 결과 보고
Development Environment of Embedded System : part 1
TinyOS 사용법 및 nesC Programming
공학용 계 산 기 최 종 발 표 팀명 : won’s 팀원 : 함현식 오철원.
Visual ESTO 안정성,편리성,성능을 한단계 높였습니다! Visual ESTO IDE/Debugger/Monitor
Linux 9.X 기초에서 활용까지 Chapter 07 프로세스 관리.
컴퓨터 구조.
UNIX Unbounded A Beginning Approach
컴퓨터 네트워크 실습.
Double O to the I to the A+ 문무활, 유용승, 홍민정
임베디드 시스템 개론 3주차 Embedded System..
Embedded System Porting (2)
리눅스 명령어 실습 임베디드 시스템 I.
UNIT 02 Microprocessor 로봇 SW 교육원 조용수.
Linux Compile.
Audio, Mic, WLAN, CF, MPEG 경희대학교 컴퓨터공학과 조 진 성.
Internet Protocol and Programming
임베디드 소프트웨어 동향. 임베디드 소프트웨어 동향 임베디드 S/W 시장분류 솔루션 측면 시스템 측면 운영체제 개발도구 설계도구 테스트도구 유선통신 무선통신 정보가전 자동차제어 산업자동화 사무자동화 군사/항공우주 의료장비 솔루션 공급 업체 임베디드 S/W시장 임베디드.
개발 환경.
AVR Studio 소개 1. AVR Studio의 다운로드 - AVR Studio 관련 홈페이지 -
1장. 프로그래밍 언어, C 프로그래밍.
Cross Compiler 설치.
Host PC & Target Board 환경설정 Embedded Linux Image 올리기
HBE-SMIII-SV210 리눅스 커널과 디바이스 드라이버
IPv6 기반의 Mobile IP 기술 개발 (iSCSI 성능 분석) - 프로젝트 중간보고서 -
실시간 자원 량 정보 제공을 결합한 Heartbeat
임베디드 소프트웨어 설계.
1주차: 프로그래밍언어란 무엇인가? C 언어란? C 프로그래밍을 위한 준비
Mips cross compile OS LAB.
홈 네트워크 시뮬레이션 정 찬 번 석 성 환.
문자 디바이스 드라이버 임베디드 시스템.
2018 봄학기 Pusan National University School of CSE
망고100 보드로 놀아보자 -12 커널 디렉토리 설명
Internet Protocol and Programming
C언어 개론.
Internet Protocol and Programming
임베디드 리눅스 설치 및 동작 Lecture #5.
7주차 실습 FPGA 보드 사용법.
Eclipse를 이용한 Embedded Linux 응용 프로그램 개발
Presentation transcript:

크로스 컴파일 환경 구축

목 차 교차 개발 환경이란? Tool Chain이란? Tool Chain 설치하기 설치 점검

교차 개발 환경 (1) 교차 개발 환경이란? (1) Target system에서 응용 프로그램을 개발할 수 없다 하드웨어 구성이 소프트웨어 개발환경으로 부적합 저성능 CPU 및 메모리 용량 부족으로 컴파일 실행에 무리  소프트웨어 개발 생산성 저하 Target system 개발 방법 Target system보다 성능이 좋은 Host system을 이용하여 target system에서 동작하는 프로그램을 생성 프로그램 작성 및 컴파일은 Host system에서, 프로그램 실행은 Target system에 수행 Target system과 Host system이 서로 다른 형태의 프로세서를 사용하는 경우 cross compiler가 필요 주로 Host system이 target system의 console로 동작 이러한 개발 환경을 교차 개발 환경이라고 함 처음 하드웨어를 만들어 커널을 올리는 작업을 할 때 만들어진 하드웨어엔 아무 프로그램도 올라가 있지 않기 때문에 다른 곳에서 커널을 만들어 하드웨어에 심어줘야 한다. 그러므로 target에서 돌아가는 프로그램을 host에서 만들어 이식해 주어야 하는데, host와 target에 사용되는 processor가 다른 경우 실행은 host에서 되지만 만들어진 코드는 target system에서 돌아갈 수 있는 컴파일러가 필요해 진다. 이 때 cross 개발 환경이 필요하게 되는데 보통 cross compiler 라고 이야기를 한다. 일반적인 작업은 PC나 솔라리스 등과 같은 유닉스 시스템 혹은 워크스테이션과 같이 포팅하려는 타켓 시스템보다 성능이 좋은 시스템에서 수행되어진다. 호스트 시스템을 이용해 다른 프로세서가 잇는 타겟 시스템에서 동작하는 프로그램을 생성해야 하는데 이러한 작업을 할 ㅜ 있는 환경을 교차 개발 환경이라고 한다.

교차 개발 환경 (2) 교차 개발 환경이란? (2) 프로그램 실행 프로그램 작성 및 컴파일 수행 처음 하드웨어를 만들어 커널을 올리는 작업을 할 때 만들어진 하드웨어엔 아무 프로그램도 올라가 있지 않기 때문에 다른 곳에서 커널을 만들어 하드웨어에 심어줘야 한다. 그러므로 target에서 돌아가는 프로그램을 host에서 만들어 이식해 주어야 하는데, host와 target에 사용되는 processor가 다른 경우 실행은 host에서 되지만 만들어진 코드는 target system에서 돌아갈 수 있는 컴파일러가 필요해 진다. 이 때 cross 개발 환경이 필요하게 되는데 보통 cross compiler 라고 이야기를 한다. 일반적인 작업은 PC나 솔라리스 등과 같은 유닉스 시스템 혹은 워크스테이션과 같이 포팅하려는 타켓 시스템보다 성능이 좋은 시스템에서 수행되어진다. 호스트 시스템을 이용해 다른 프로세서가 잇는 타겟 시스템에서 동작하는 프로그램을 생성해야 하는데 이러한 작업을 할 ㅜ 있는 환경을 교차 개발 환경이라고 한다. 프로그램 작성 및 컴파일 수행 Target system 실행 상태 디스플레이 프로그램 실행

교차 개발 환경 (3) 교차 개발 환경이란? (3) Target system과 Host system 간의 인터페이스 Serial I/F – Console 연결, zmodem을 이용한 파일 전송 JTAG I/F – Hardware debugging, Flash memory programming Ethernet I/F – 빠른 속도의 파일 전송, NFS 지원 처음 하드웨어를 만들어 커널을 올리는 작업을 할 때 만들어진 하드웨어엔 아무 프로그램도 올라가 있지 않기 때문에 다른 곳에서 커널을 만들어 하드웨어에 심어줘야 한다. 그러므로 target에서 돌아가는 프로그램을 host에서 만들어 이식해 주어야 하는데, host와 target에 사용되는 processor가 다른 경우 실행은 host에서 되지만 만들어진 코드는 target system에서 돌아갈 수 있는 컴파일러가 필요해 진다. 이 때 cross 개발 환경이 필요하게 되는데 보통 cross compiler 라고 이야기를 한다. 일반적인 작업은 PC나 솔라리스 등과 같은 유닉스 시스템 혹은 워크스테이션과 같이 포팅하려는 타켓 시스템보다 성능이 좋은 시스템에서 수행되어진다. 호스트 시스템을 이용해 다른 프로세서가 잇는 타겟 시스템에서 동작하는 프로그램을 생성해야 하는데 이러한 작업을 할 ㅜ 있는 환경을 교차 개발 환경이라고 한다.

Toolchain (1) Tool Chain 이란? Target system의 소프트웨어 개발을 진행하기 위해 필요한 host system의 cross compile 환경을 뜻함 여러 다른 package로 구성 binutils : 어셈블러 및 로더 기타 툴(GNU) glibc : cross compiler 구축을 위한 library 및 일반 library gcc : compiler - 각종 source를 compile하고 build하여 실행 binary를 생성하는데 필요한 각종 utility 및 library의 모음 - 기본적으로 Assembler, linker, C compiler, C library 등으로 구성되어 있다. - 툴체인이란 프로그래밍 소스를 컴파일 하기위해 필요한 여러도구 들로 합쳐진 개발 컴포넌트이다. 각종 소스를 컴파일하여 실행 바이너리를 생성하는데 필요한 각종 유틸리티 및 라이브러리 모음이며, 어셈블러, 링커, C 컴파일러, C 라이브러리 등으로 구성되어 있다. 호스트 시스템에서 타켓 시스템 용으로 프로그램을 개발하기 위해서는 컴파일러와 링커등의 개발툴이 필요하며, Intel 계열 시스템 기반에서 ARM계열 역시 코드를 생성하기 위해서는 크로스 컴파일 환경이 필요하다.

Toolchain 설치하기 (1) Tool Chain 설치하기 – 설치 준비 HUINS에서 제공한 CD와 Host Host : linux가 설치되어 있는 PC CD 안에 pxa255-toolchain.tar.bz2 파일

CD-ROM 장치를 /mnt/cdrom 디렉토리에 mount Toolchain 설치하기 (2) Tool Chain 설치하기(1) HUINS에서 제공하는 CD를 삽입하고 CD-ROM을 mount한다. CD를 넣으면 자동으로 mount가 됨. mount가 되지 않았을 경우 아래와 같이 실행 - 레드핫 9.0 X-window에서는 일반적으로는 자동으로 mount됨. - 마운트를 해제하게 위해서는 umount /mnt/cdrom 을 입력하면 됨. CD-ROM device name Read only option CD-ROM 장치를 /mnt/cdrom 디렉토리에 mount

Toolchain 설치하기 (3) C. Tool Chain 설치하기(2) cd 명령을 이용하여 mount 된 CD-ROM 으로 이동한다. ls 명령을 치면 CD의 내용을 볼 수 있음 - Mount는 root 권한에서만 가능하기 때문에 일반 계정으로 로긴 했을 경우에는 su -l 명령을 이용하여 root로 재로긴해야함 Tool Chain file

Toolchain 설치하기 (4) C. Tool Chain 설치하기(3) cp 명령을 이용하여 Tool Chain 파일을 /usr/local/arm으로 copy ls 명령으로 copy가 잘 되어 있는지 확인 후 usr/local/arm 디렉토리로 이동 arm directory 생성 주의 할 점은 꼭 /usr/local/arm에 tool chain을 풀어야 하는데 그 이유는 kernel compile할 때 makefile안에 cross compiler의 경로가 /usr/local/arm으로 되어 있기 때문. 다른 경로에 풀면 kernel compile할 때 에러 발생. Kernel source의 makefile안에서 tool chain의 경로가 /usr/local/arm으로 되어 있기 때문에 반드시 이 경로에 tool chain을 설치해야 함

Toolchain 설치하기 (5) C. Tool Chain 설치하기(4) tar 명령을 이용하여 압축을 풀면 Tool Chain은 자동으로 설치됨. 설치 후 ls 명령으로 잘 설치 되었는지 확인 j 옵션은 bunzip2의 확장자를 가진 압출 파일을 풀 때 사용 Bunzip2로 압축된 파일은 bz2라는 확장자를 가진다. tar 옵션 중에 j는 bz2를 풀 때 사용하는 옵션. bunzip2 pxa255-toolchain.tar.bz2 로 bunzip을 푼 후 tar xvf pxa255-toolchain.tar로 풀어도 됨.

Toolchain 설치하기 (6) C. Tool Chain 설치하기(5) 다음으로 path를 잡아주어야 함. cd를 쳐서 자신의 root 디렉토리로 이동 .bashrc 을 vi로 open. /usr/local/arm/bin 에 arm-linux-gcc compiler가 설치되어 있는데 이를 모든 디렉토리에서 사용 가능하게 하기 위해 path를 잡아주어야 함. 자신 계정의 root 디렉토리에 가서 ls –a를 치면 .bashrc가 있음.

/usr/local/arm/bin에 tool chain에서 설치한 여러 compiler가 있음. C. Tool Chain 설치하기(6) PATH 를 아래와 같이 설정해줌. /usr/local/arm/bin에 tool chain에서 설치한 여러 compiler가 있음. PATH 부분에 콜론을 삽입 한 뒤에 cross compiler가 있는 /usr/local/arm/bin 경로를 지정해줌.

Toolchain 설치하기 (8) C. Tool Chain 설치하기(7) 수정된 .bashrc는 source 명령을 사용하여 적용됨 Source 명령은 수정한 .bashrc을 적용시킬 때 사용.

Toolchain 설치하기 (9) C. Tool Chain 설치하기(8) hello.c 라는 Test file을 만든다.

Hello라는 object file이 생성 Toolchain 설치하기 (10) C. Tool Chain 설치하기(9) 설치된 arm용 cross compiler를 이용하여 compile한다. hello라는 object 파일이 만들어졌는지 확인한다. arm용 cross compiler Arm-linux-gcc 는 arm용 cross complier. /usr/local/arm/bin에 위치. Hello라는 object file이 생성

Toolchain 설치하기 (11) C. Tool Chain 설치하기(10) 만들어진 hello object 파일을 실행시켜본다. 아래 그림처럼 error가 발생하면 설치 성공. file이라는 명령어를 이용하여 file의 속성을 확인 Hello object 파일은 arm용 컴파일러를 통하여 컴파일 했기 때문에 i386계열 PC에서는 동작이 안됨. File 명령어를 이용하여 결과를 보면 arm용 object 파일이라는 것을 알 수 있음. ARM용 object 파일 의미