• 검색 결과가 없습니다.

호스트 PC

문서에서 GettingStarted-with-HBE-EMPOSII (페이지 25-33)

타겟 보드와 호스트 PC의 원활한 통신을 위해 보드의 손잡이가 몸 방향에 위치 시킨 후 보드의 여러 커넥터와 해당 케이블을 연결한다.

FFUART port: 모니터링에 사용하는 포트로 시리얼 라인을 연결한다

Jtag port : Jtag을 사용하여 flash Rom에 쓰기가 및 하드웨어 디버깅이 가능하도록 Jtag 케이블을 연결한다.

Primary Ethernet port: Ethernet을 이용하여 고속 전송을 하기 위해 LAN 케이블을 연결한 다.

타겟 보드에 해당 케이블의 연결이 완료 되었으면 각 케이블을 호스트 PC에 다음과 같이 연결 한다.

모니터링에 사용되는 시리얼 케이블은 9핀 시리얼 포트에 연결한다.

Jtag케이블은 패러럴 케이블과 연결 후 프린터 포트에 연결한다

Ethernet 케이블이 크로스케이블일 때는 PC의 Ethernet 포트에 연결하고 스트레이트케이 블일 때는 허브에 연결한다.

2.2. 호스트 PC

호스트 PC란 타겟 보드의 개발에 사용되는 PC로서 필요한 유틸리티와 개발 툴을 설치하 여야 한다. 타겟 보드에 포팅의 대상이 되는 리눅스를 호스트PC에서 사용 할 수 있어야 하므로 주로 호스트 PC에 리눅스를 운영체제로 설치를 하게 된다.

2.2.1 minicom

타겟 보드에서 일어나는 진행 상황을 호스트 PC에서 볼 수 있게 모니터링 할 수 있는 통 신 프로그램으로써 리눅스에서는 minicom을 주로 사용하게 된다.

1) 설치 방법

호스트 PC에 설치한 리눅스에 minicom이 설치가 되어 있지 않을 경우 제공된 CD에서 rpm을 설치 한다.

mount /mnt/cdrom

cd /mnt/cdrom/Tools/minicom

rpm –ivh minicom-2.00.0-6.i386.rpm

2) 환경 설정 방법

rpm이 성공적으로 설치가 완료 되었으면 다음 명령으로 환경 설정을 하게 된다.

minicom –s

-s 옵션을 주어 minicom을 위와 같이 실행하면 설정 메뉴가 아래와 같이 보여 진다.

출력된 메뉴의 Serial port setup으로 이동한 후 현재 타겟 보드와 통신이 가능한 상태로 설정을 하게 된다.

z A 항목을 /dev/ttyS0로 바꾼다.

z E 항목을 115200 8N1으로 바꾼다 z F, G 항목을 No로 설정한다

환경 설정을 마친 후 Configuration 메뉴에서 저장 후 Exit로 이동하면 minicom 화면이 호스트 PC의 사용중인 터미널에 보여지게 된다. 이때 타겟 보드에 이미 부트로더 등이 Flash에 포팅이 되어 있다면 보드로부터 실행되는 내용이 minicom을 통해 보여질 것이다.

2.2.2 bootp

bootp를 설치 함으로써 호스트 pc에서 타겟 보드에 포팅 된 리눅스 시스템에 유용한 IP 주소를 유동적으로 할당할 수 있다. 네트워킹에 기본이 되는 IP를 먼저 할당함으로써 차 후 설명될 tftp가 부트로더에서 사용 가능하게 된다.

1) 설치 방법

사용중인 호스트 PC에 bootp 프로그램이 설치되어 있지 않을 경우 제공된 CD로부터 해 당 rpm을 설치하여야 한다.

mount /mnt/cdrom

cd /mnt/cdrom/Tools/bootp rpm –ivh bootp-2.4.3-7.i386.rpm

:sm=255.255.255.0

empos :ht=1:ha=0x000B8A000001:tc=.default

파일의 설정에 따라 해당하는 MAC Address에 IP를 할당할 수 있다. 따라서 ha항목에는 타겟 보드에서 사용하는 MAC 주소를 정확히 기입하여야 한다. (해당 보드의 MAC Address는 박스에 부착되었다) 호스트로 지정된 empos의 실제 IP를 정의 하기 위해 /etc/hosts 파일에 empos에 대한 내용을 추가 한다.

- /etc/hosts

192.168.123.200 empos.hanback.co.kr empos

/etc/xinetd.d/bootp 파일을 생성하여 서비스를 제공할 bootp 데몬의 기본설정을 하여야 한다. bootp의 설치를 정확히 하였어도 본 파일은 생성 되지 않으므로, 편집기를 이용하 여 아래와 같은 내용이 기록된 파일을 생성하도록 한다. 또한 사용자의 편의를 위해 보드 와 함께 동봉된 CD에 본 파일을 포함 하였으므로 복사 사용해도 된다.

- /etc/xinetd.d/bootp service bootps {

disable =no

flags =REUSE NAMEINARGS socket_type =dgram

protocol =udp

wait =yes

user =root

server =/usr/sbin/bootpd server_args =-s

2.2.3 tftp

부트로더에서 용량이 큰 데이터를 다운 받기 위해서 사용하는 UDP 전송 데몬으로 본 프 로그램을 설치 함으로써 부트로더에서 Ethernet을 통해 쉽고 빠르게 파일을 호스트 PC에 서 타겟 보드로 전송시킬 수 있다.

1) 설치 방법

제공된 CD로부터 해당 rpm을 다음과 같이 설치한다.

mount /mnt/cdrom

cd /mnt/cdrom/Tools/tftp

rpm -ivh tftp-server-0.29-3.i386.rpm

rpm이 성공적으로 설치가 완료되면 bootp와 마찬가지로 설정 파일을 수정한다.

- /etc/xinet.d/tftp service tftp {

disable =no

socket_type =dgram

protocol =udp

wait =yes

user =root

server =/usr/sbin/in.tftpd server_args =-s /tftpboot

본 파일을 수정 함으로써 tftp 데몬 실행을 위한 기본 설정이 완료 된다.

2.2.4 bootp와 tftp 실행

호스트 PC의 콘솔 터미널에서 다음과 같이 입력한다.

service xinetd stop service xinetd start

2.2.5 nfs

nfs란 리눅스간 파일을 공유할 수 있는 파일 시스템으로써 본 기능을 이용하여 호스트 PC에서 작업한 내용을 곧바로 타겟보드 상에서 테스트 할 수 있다. 또한 한정된 타겟 보 드상의 메모리(Ramdisk) 공간을 호스트 PC와 연동하여 충분히 확장하여 사용하는 것이 가능하다.

1) 설치 방법

nfs는 보통 리눅스 배포판을 호스트 PC에 설치 시 기본으로 설치가 되며 하나의 설정 파 일을 생성 하여 mount 할 수 있는 디렉토리를 export해주어야 한다.

- /etc/exports

/nfs_resource 192.168.123.200 (rw, no_root_squash)

여기서 입력된 IP 주소 부분에 타겟 보드에서 할당 받는 IP를 입력함으로써 nfs을 통해 EMPOSⅡ의 특정 디렉토리(/mnt)에 호스트 PC의 /nfs_resource 디렉토리를 마운트 할 수 있다.

파일 수정이 완료 되었으면 nfs데몬을 시작한다.

service nfs stop service nfs start

2) nfs 파일 공유

EMPOSⅡ에 리눅스 커널이 정상적으로 부팅이 되었다면 nfs를 이용한 파일 공유를 할 수 있다. 먼저 공유를 원하는 파일을 호스트 PC의 /nfs_resource에 복사한 후 EMPOSⅡ에서 마운트 하게 된다

Host PC

cp zImage /nfs_resource Target Board

mount -t nfs 192.168.123.187:/nfs_resource /mnt/nfs

192.168.123.187는 Host PC의 IP로써 콘솔에서 ifconfig명령으로 확인할 수 있다. 정상적 으로 nfs가 동작한다면. EMPOSⅡ의 /mnt/nfs 디렉토리에 호스트PC의 /nfs_resource 디 렉토리의 내용이 보여질 것이다.

2.2.6 크로스 컴파일러 cp cross-tools.tgz /usr cd /usr

tar xvfz cross-tools.tgz

압축 해제로 생성된 컴파일러를 어디에서든 사용 가능하도록 다음과 같이 경로를 설정한

Tool Name Tool Description

arm-linux-add22line Convert addresses to file and line

arm-linux-ar Create, modify, and extract from

archives

arm-linux-as GNU assembler

arm-linux-c++ C++ compiler

arm-linux-c++filt Filter to demangle encoded C++ symbols

arm-linux-ld GNU linker

arm-linux-nm List symbols from object files

arm-linux-objcopy Copy and translate object files arm-linux-objdump Display object information arm-linux-ranlib Generate index to archive

arm-linux-readelf Display the contents of ELF format files.

arm-linux-size List section sizes and total size arm-linux-strings List printable strings from files

arm-linux-strip Discard symbols

크로스 컴파일러 설치가 이상 없이 완료되었다면. 셈플 코드를 작성하여 컴파일 해 봄으

printf(“Number : %d Hello World! n”,i);

arm-linux-gcc -o hello hello.c ./hello

bash: ./hello: cannot execute binary file

hello.c 라는 이름으로 임시 파일을 만들어 설치된 크로스 컴파일러로 컴파일 후 생성된

hello: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.19, dynamically linked (uses shared libs), not stripped

문서에서 GettingStarted-with-HBE-EMPOSII (페이지 25-33)