550 likes | 713 Views
개발 Host 환경 설정. Target System 을 개발하기 위해 Host System 에 환경을 구축하자. 목 차. Minicom TFTP Server JTAG I/F Program NFS. Minicom. 터미널 에뮬레이터 설치 & 실행 (1). Minicom - 구성도. Minicom 을 이용하여 serial 통신으로 hello 라는 파일 전송. 터미널 에뮬레이터 설치 & 실행 (2). 설치 준비
E N D
개발 Host 환경 설정 Target System을 개발하기 위해 Host System에 환경을 구축하자.
목 차 • Minicom • TFTP Server • JTAG I/F Program • NFS
터미널 에뮬레이터 설치 & 실행(1) • Minicom - 구성도 Minicom을 이용하여 serial 통신으로hello라는 파일 전송
터미널 에뮬레이터 설치 & 실행(2) • 설치 준비 • Host와 Target을 minicom으로 연결하기 위해 아래와 같은 환경 필요 • Serial Cross Cable(9 pins) 1EA • Linux 운영체제가 설치되어 있는 PC(Host) • PXA255-pro 실습보드(Target) • Cross cable의 한쪽은 Host의 COM1에 연결하고, 다른 한쪽은 Target의 COM1 연결한다.
터미널 에뮬레이터 설치 & 실행(3) • Minicom – 실행(1) • 만들어진 hello object 파일을 target에 download하기 위해 minicom이라는 emulator를 이용 • Minicom은 RS232C 통신을 이용 • Minicom을 실행하기 전 통신 포트 설정을 해야 함
터미널 에뮬레이터 설치 & 실행(4) • Minicom – 실행(2) • Serial port setup으로 커서를 옮긴 후 enter를 입력
터미널 에뮬레이터 설치 & 실행(5) • Minicom – 실행(3) • COM1은 ttyS0, COM2는 ttyS1로 Linux에서는 표시함. • A를 눌려서 Serial jack이 연결된 포트를 설정. • Host와 Target의 Baud rate는 115200 • Hardware Flow Control은 NO로 설정
터미널 에뮬레이터 설치 & 실행(6) • Minicom – 실행(4) • 설정을 default로 저장하고 나옴.
터미널 에뮬레이터 설치 & 실행(7) • Minicom – 실행(5) • 설정을 마친 후 target 보드의 전원을 on 시키면 아래와 같은 화면을 보게 됨. Boot loader loading Kernel loading ramdisk loading Kernel uncompressing
터미널 에뮬레이터 설치 & 실행(8) • Minicom – 실행(6) • Root를 입력 후 login한다.
터미널 에뮬레이터 설치 & 실행(9) • Minicom – 실행(7) - tool chain 설치에서 만들었던 hello라는 object 파일을 host에서 target으로 download하려고 한다. - CTRL과 A를 동시에 누른 후 Z키를 입력하면 아래와 같은 화면이 나옴.
터미널 에뮬레이터 설치 & 실행(10) • Minicom – 실행(8) • S를 입력 후 Zmodem을 선택하면 아래와 같은 화면이 나옴.
터미널 에뮬레이터 설치 & 실행(11) • Minicom – 실행(9) • Tool chain 설치 시에 만들었던 hello 파일을 선택한 뒤에 enter를 치면 파일이 host로부터 target으로 download됨
터미널 에뮬레이터 설치 & 실행(12) • Minicom – 실행(10) • 파일 전송이 성공하면 위와 같은 화면 나옴.
터미널 에뮬레이터 설치 & 실행(13) • Minicom – 실행(11) • ls 명령을 이용하여 hello 파일이 전송되었는지 확인
터미널 에뮬레이터 설치 & 실행(14) • Minicom – 실행(12) • Hello 파일을 실행
TFTP 서버 설치 및 실행 (1) • TFTP? • TCP 를 사용하여 신뢰성있는 file 전송을 제공하는 ftp와 달리 UDP를 사용하여 file을 전송하는 protocol • Data의 전송 중에 오류가 날 확률이 극히 적은 근거리에서 빠르게 file을 전송 받고자 할 경우에 사용한다 • Embedded system 개발 과정에서 kernel image나 ramdisk와 같이 용량이 큰 데이터를 bootloader를 통해 target board로 빠르게 전송하기 위해 많이 사용한다 • Linux용 TFTP 프로그램 • www.rpmfind.net 에서 tftp로 검색하면 해당 rpm을 받을 수 있다 • www.huins.com 고객 지원 download 임베디드 시스템 게시판에서 받을 수도 있다
TFTP 서버 설치 및 실행 (2) • 설치 확인 • TFTP rpm을 설치하기 전에 host에 이미 설치가 되어있나 확인한다. • 설치가 되어 있으면 설치과정 생략. % rpm –qa | grep tftp • 설치 • Host에 설치가 되어있지 않으면 다음과 같이 설치한다. % rpm –ivh tftp-0.32-4.i386.rpm tftp-server-0.32-4.i386.rpm
TFTP 서버 설치 및 실행 (3) • TFTP Server 구동 • TFTP Server는 xinetd daemon에서 관리한다. • TFTP Server를 구동시키기 위해 /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 per_source = 11 cps = 100 2 flags = IPv4 }
TFTP 서버 설치 및 실행 (4) • TFTP Server 구동 (cont’) • 파일을 전송할 때 사용하는 디렉토리를 /tftpboot 로 만든다. % mkdir /tftpboot • TFTP 설정 파일을 편집한 후에는 xinet daemon에 적용 시키기 위해 xinet daemon을 재시작 해주어야 한다. % /etc/init.d/xinetd restart • TFTP가 현재 제대로 동작하고 있는가 확인한다. % netstat –a | grep tftp • tftp가 포함된 행이 보인다면 제대로 동작하고 있는 것이다.
TFTP 서버 설치 및 실행 (5) • TFTP 사용 예 • 전송할 파일을 /tftpboot에 복사한다. 예> cd의 ramdisk.gz 복사 % cp /mnt/cdrom/ramdisk.gz /tftpboot/ • Minicom을 실행시킨다. % minicom • Target board에 전원을 인가 한후 다음 메시지가 나오기 전에 임의의 key를 누르면 “boot>” prompt 가 뜨는 것을 확인할 수 있다.
TFTP 서버 설치 및 실행 (6) • TFTP 사용 예 (cont’) • tftp “전송할 파일명” ramdisk 를 실행하여 파일을 전송한다.
JTAG I/F Program 설치 및 실행 (1) • JTAG 구성 타겟 보드의 플래시 메모리에 부트로더, 커널 이미지 등을 fusing
JTAG I/F Program 설치 및 실행 (2) • JTAG 란? • Joint European Test Access Group • JTAG은 PCB와 IC를 테스트 하기 위한 목적으로 1985년 조직된 JTAG(Joint Test Action Group)에 의해 제정된 표준이다. • Boundary Scan Test • 칩 내부에 Boundary Cell이란 것을 두어 외부의 핀과 일대 일로 연결시켜 프로세서가 할 수 있는 동작을 중간에 Cell을 통해 모든 동작을 인위적으로 수행할 수 있어 여러 가지 하드웨어 테스트나 연결 상태 등을 체크할 수 있다.
JTAG I/F Program 설치 및 실행 (3) • JTAG 기능 • 프로세서(CPU)의 상태와는 상관없이 디바이스의 모든 외부 핀을 구동시키거나 값을 읽어 들일 수 있는 기능을 제공 • 회로의 배선과 소자의 전기적 연결상태 test • 디바이스간의 연결상태 test • Flash memory fusing
BSC BSR JTAG I/F Program 설치 및 실행 (4) • pxa255-pro의 JTAG 호환 장치(cpu)의 구조 • cpu의 각각의 pin은 BSC (Boundary-Scan Cell)에 연결되어 있고, 이 BSC가 BSR (Boundary-Scan Register)를 이루게 된다. • BSC : 각 pin에 대한 bit 단위의 값(혹은 상태)를 가지게 된다. • BSR : 모든 BSC이 연결 되어 하나의 Register를 이루게 된다. • TDI로부터 입력된 데이터가 shift작업을 통해 적절한 위치에 값을 위치시키거나, 가져올 수 있게 되며, TDO를 통해 이 값이 출력된다. • JTAG이 테스트 상태일 경우에 동작하며, IC 동작 상태 일 경우에는 동작 불능 상태가 된다.
JTAG I/F Program 설치 및 실행 (5) • PC를 통한 JTAG 호환 장치의 제어
JTAG port Host의 parallel port JTAG I/F Program 설치 및 실행 (6) • PXA255-PRO V1.0에서 Host 와 Target의 JTAG Interface
JTAG I/F Program 설치 및 실행 (7) • jtag 프로그램 • Host PC에서 jtag interface를 통하여 target system의 flash memory에 data를 fusing 하는 작업을 간편하게 해주는 프로그램 • ftp://ftp.arm.uk.linux.org/pub/linux/arm/people/xscale/lubbock/jtag/ 에서 jtag.0624.tar.bz2를 다운 받을 수 있다. • PXA255-PRO V1.0 실습 보드에서는 이 보드에 맞게 수정되어 huins에서 제공 하는 jtag 프로그램을 사용하여야 한다
JTAG I/F Program 설치 및 실행 (8) • jtag 프로그램 설치 • jtag 소스파일(pxa255-jtag.tar.gz)을 임시 디렉토리에 복사한다. Example에서는 /usr/local/pxa255에 복사 • 압축풀기 % tar xfvz pxa255-jtag.tar.gz • 소스 파일이 있는 디렉토리로 이동 % cd pxa255-jtag/jtag-0.4 • configure (Makefile 생성) % ./configure --prefix=/usr/local/pxa255/pxa255-jtag --with-include=/usr/local/pxa255/pxa255-jtag/include-0.2.3 • compile & install % make; make install 반드시 절대 경로로 지정한다. 하위 디렉토리에도 적용되기 때문
JTAG I/F Program 설치 및 실행 (9) • jtag 설치 확인 • /usr/local/pxa255/pxa255-jtag 디렉토리로 이동하여 bin 폴더와 share폴더가 생성되었는지 확인한 후, 제대로 되었다면 bin디렉토리를 PATH에 등록한다 • 또는 실행 파일 jtag를 기존의 실행 파일을 모아둔 ‘/bin’ 디렉토리로 복사해 둠으로써 언제든지 접근할 수 있도록 한다
JTAG I/F Program 설치 및 실행 (10) • Jtag 프로그램 실행 • 이전에 생성한 blob 이미지가 있는 곳으로 이동한 후 jtag를 실행한다.
JTAG I/F Program 설치 및 실행 (11) • Jtag 프로그램 실행 • 다음과 같은 명령을 주어 blob를 flash 메모리의 0번지에 올린다(약 3~5분 정도 걸린다)
NFS 구축 (1) • NFS – 구성(1) Ethernet을 사용한 NFS 통신
NFS 구축 (2) • NFS – 구성(2) 192. 168. 1. * Host 192.168.1.100 Target 192.168.1.101
NFS 구축 (3) • 설치 준비 - NFS 설정을 위해 아래와 같은 환경이 필요 • Lan Direct Cable • Linux 운영체제가 설치되어 있는 PC(Host) • PXA255-pro 실습 보드(Target) • Lan cable은 direct나 cross cable 모두 사용가능하나 이 자료에서는 direct cable을 사용한다.
NFS 구축 (4) • NFS– nfs용 공유 disk 만들기 (1) • NFS(network file system)란 client가 server상에 있는 file혹은 file system에 대하여 여과 없는 접근 권한을 가지게 됨 • NFS 방식으로 nfs_success라는 파일을 host에서 target으로 download 해보자
NFS 구축 (5) • NFS– nfs용 공유 disk 만들기 (2) • Host와 target의 통신을 위해서 host의 방화벽 설정을 변경한다.
NFS 구축 (6) • NFS– nfs용 공유 disk 만들기 (3) • Host와 target의 통신을 위해서 host의 방화벽 설정을 변경한다.
NFS 구축 (7) • NFS – nfs용 공유 disk 만들기(4) • 일반적으로 lan card가 1개이므로 광대역 IP를 같이 쓰면서 target과 사설 ip로 통신하기 위해서 IP aliasing이 필요 • IP aliasing 설정 파일을 아래와 같이 copy 한다
NFS 구축 (8) • NFS – nfs용 공유 disk 만들기(5) • 아래 그림과 같이 copy한 파일을 편집한다.
NFS 구축 (9) • NFS – nfs용 공유 disk 만들기(6) • 먼저 Host에서 nfs 디렉토리를 만든다.
NFS 구축 (10) • NFS– nfs용 공유 disk 만들기(7) • 만들어진 directory를 export시켜야 한다.
NFS 구축 (11) • NFS – nfs용 공유 disk 만들기(8) • 만들어진 디렉토리를 export 할 수 있도록 vi를 이용하여 /etc/exports 파일을 다음과 같이 편집한다. Root는 아니지만 root의 권한을 가진다는 의미 Read/ write
NFS 구축 (12) • NFS – nfs용 공유 disk 만들기(9) • nfs 데몬을 재 시작한다. • 또는 다음과 같은 명령을 사용해도 된다. % service nfs restart
NFS 구축 (13) • NFS – nfs용 공유 disk 만들기(10) • NFS로 mount시킬 target의 디렉토리를 만든다. • NFS server와 target의 디렉토리를 nfs 파일 시스템 형으로 mount 시킨다. Host IP address