1 / 17

임베디드 시스템 소개 -3 - 교차개발환경

임베디드 시스템 소개 -3 - 교차개발환경. Target. Host. Application. Debug Agent. Target Server. SDK ( Software Development kit). GUI. Library. Driver. Application. Core OS. Simulation Environment. Kernel. Hardware. 임베디드 리눅스 개발환경 개념도. 교차개발환경 (1). 교차개발환경 (Cross-Development Environment) 이란 ?

benny
Download Presentation

임베디드 시스템 소개 -3 - 교차개발환경

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 임베디드 시스템 소개-3 - 교차개발환경

  2. Target Host Application Debug Agent Target Server SDK ( Software Development kit) GUI Library Driver Application Core OS Simulation Environment Kernel Hardware 임베디드 리눅스 개발환경 개념도

  3. 교차개발환경(1) • 교차개발환경(Cross-Development Environment) 이란? • 실제 S/W가 수행될 시스템과 개발하는 시스템이 다른 개발 환경 • 교차개발환경 구성요소 • Target 머신 , Host 머신 • 시리얼 케이블, 이더넷 케이블 • 터미널

  4. 교차개발환경(2) • Target 머신 • 개발 대상인 보드나 H/W로 독립된 동작이 되지 않는 머신 • 독립된 동작을 위해서는 커널, 디바이스 드라이버, 응용 프로그램 등이 Host 머신을 통해서 개발된 뒤에 다운로드나 이식이 되어야 함 예) LETOK-850 보드 • Host 머신 • H/W 시스템을 제작한 후, 해당 시스템에서 동작할 S/W를 개발하는 시스템 • 개발된 H/W시스템에 맞는 최적화된 시스템을 설치하여 함 • 교차 컴파일러 (Cross Compiler)- Host 머신에서 동작하나 Target 머신 CPU 의존적인 코드 생성 • 교차 디버거 (Cross Debugger)- Target 머신에서 수행중인 프로그램을 Host 머신에서 관찰, 디버깅이 가능하 게 해줌

  5. 교차개발환경(3) • 시리얼 케이블 (Serial Cable) • Host 머신과 Target 머신의 정보 교환 및 상태 파악을 위한 연결에 이용 • Target 머신에 없는 콘솔을 Host 머신을 통해 사용할 수 있게 함 • Host 머신을 이용하여 Target 머신에 명령을 내려보낼 수 있게 함 • Target 머신의 상태와 명령 수행 결과를 Host 머신을 통해 볼 수 있게 함 • 이더넷 케이블 (Ethernet Cable) • Host 머신과 Target 머신의 정보 교환 및 상태 파악을 위한 연결에 이용 • TFTP 등과 같은 프로토콜을 이용하여 고속의 데이터 통신이 가능하게 함 • 커널이나 파일 시스템 이미지 등 대량의 데이터를 내려보내는데 사용 • telnet 등과 같은 응용 프로그램을 이용하여 원격에서 Target 머신을 부팅하거나 이용할 때 사용 • 터미널 (Terminal) • Target 머신의 쉘이나 동작 상태를 보여 줌 • Host 머신을 통해 사용자가 입력한 사항을 보여 줌

  6. Minicom/Hyper-Terminal 설정 • minicom을 환경 설정 모드로 실행 • $minicom -s • 메뉴가 뜨면 “Serial port setup”항목을 선택 • 새로운 메뉴가 뜨면 “A-Serial Device”를 선택하여 직렬 케이블이 연결된 포트를 선택 • /dev/ttyS0 또는 /dev/ttyS1 • “E-bps/Par/Bits”항목을 선택 • Baud Rate(bps) : 57600 bps • Parity : None • Data Bit : 8 bits • Stop Bits : 1 bit • Flow Control : DTR/DSR, RTS/CTS, XON/XOFF, None 중 하나 선택 • 설정이 끝나면 “enter”키를 누른 뒤 ESC를 눌러 저장을 하고 나옴 • Hyper-terminal의 경우 포트 설정에서 위의 설정대로 설정하면 됨

  7. /bin /bin /bin /lib /lib /lib /etc /sbin /sbin /root /root … … … /net /mm NFS Client /mm NFS Server /kernel /driver /driver /arch /exam /exam Host File System NFS(Network File System) • NFS 란? • SUN Microsystem사가 개발한 RPC(Remote Procedure Call) 기반 시스템 • 원격지의 컴퓨터에 있는 파일을 마치 자신의 컴퓨터에 있는 것처럼 이용 • Server/Client 기반 응용 프로그램 • FS이 존재하지 않는 Client 시스템에서 원격의 Host 시스템에서 설정된 일부 디렉터리를 이용 • 임베디드 시스템 개발 시 많이 이용됨

  8. user process local file access NFS server local file access NFS client kernel UDP port 2049 TCP/UDP IP TCP/UDP IP client kernel server kernel local disk local disk NFS(Network File System)(2) • NFS Client/Server 구성도

  9. Target RAM RAM 5. 분기 및 커널압축 해제 Flash memory Linux 커널 1.TFTP request 4.커널분기 Host 부트 로더 압축커널 이미지 6. NFS Root FS 마운트 3.압축커널 다운로드 2.TFTP reply (압축커널만) Host Hard Disk (File System) TFTP/NFS를 이용한 부팅 시나리오

  10. NFS 서버 설정 • /etc/hosts 파일의 내용에 추가할 사항 • 타겟 보드에 할당할 “IP <tab> 이름 “ • /etc/exports 파일의 내용에 추가할 사항 • /home/nfs <tab>보드IP[또는 *](rw,no_root_squash) • 예) /home/nfs *(rw, no_root_squash, no_all_squash) 또는 • /home/nfs 203.247.100.101(rw, no_root_squash, no_all_squash) • % /usr/sbin/lokkit • security level을 high로 둔 상태에서 Customize를 선택(* 표시) • eth0를 선택(* 표시)후 종료

  11. NFS 서버 설정(2) • % /usr/sbin/ntsysv • 여러 항목 리스트 중에서 nfs를 찾아서 선택(* 표시) • %/etc/init.d/nfs start • 위와 같이 나오면 NFS 설정은 완료되었음

  12. TFTP • Server로 부터 필요한 File을 읽어와 자신의 Memory에 Load 시킬 때 필요한 Protocol • Flash Memory에 맞도록 설계된 단순한 Protocol • Disk 없는 System의 가동 프로세서에 이용 • UDP를 이용하여 Client와 Server 사이의 통신 • Booting에 필요한 간단한 Program과 BOOTP, RARP, TFTP만 탑재한 시스템에서 많이 이용되며 펌웨어 자동 업그레이드에 이용 가능 • Disk 없는 시스템의 초기 가동 시 IP주소를 설정 • 장점 • 시스템이 단순하고 간단함 • 어떤 형태의 전달 서비스상에서도 동작이 가능 • 시스템 가격이 저렴 • 단점 • 정보보호 기능이 없음 • Data에 대한 보장성이 없음

  13. FTP TFTP TCP UDP IP Message Format IP datagram UDP datagram IP Header UDP Header TFTP message 20 8 OP Code(1, 2) File name 0 mode 0 OP Code RRQ WRQ Data ACK Error Value 1 2 3 4 5 2 n 1 n 1 Data (3) Block 번호 전송 Data 2 2 0 - 512 ACK (4) Block 번호 2 2 Error (5) Error 번호 Error Message 0 2 2 n 1 TFTP(2) • TFTP 패킷 형식

  14. TFTP 설치 및 설정 • %rpm –ivh tftp-server-*.i386.rpm tftp-server • Host 설치 시 이용한 리눅스 CD 프로그램에 들어있는 버전 이용 • 예 : %rpm –ivh tftp-server-0.29-3.i386.rpm • 환경설정 • %/etc/xinetd.d/tftp 파일을 열어서 disable=yes를 no로 수정한다. • 예) %vi tftp disable=yes -> disable=no • %/etc/export 파일을 열어서 /tftpboot *(rw, no_root_squash) 추가

  15. TFTP 설치 및 설정(2) • Host의 /root 디렉터리 밑에 tftpboot라는 이름의 디렉터리를 만듬 • 만일 이 디렉터리를 변경하고 싶다면 위에서 환경설정 한 tftp 파일에 있는 server_args 의 디렉터리를 변경 • 예) %cd /etc/xinetd.d/ %vi tftp server_args=/tftpboot -> server_args=/example/tftpboot • xinetd 데몬 재시작 : %/etc/init.d/xinetd restart • %/usr/sbin/ntsysv 실행 후, tftp 부분을 허용하도록 설정(“*”표시 후 저장) • 커널 컴파일 후 vmlinux.ppcboot 파일을 tftpboot 디렉터리에 복사

  16. 부트 변수 설정 • minicom을 실행시킨 상태에서 LETOK-850의 전원을 키면 아래와 같은 화면이 나타남. 이때 아무 키나 눌러서 설정 상태로 들어감 • 만일 시간을 넘겨 부팅이 되어버리면 전원을 다시 키거나 리셋 버튼을 누른다.

  17. 부트 변수 설정(2) • printenv :현재환경 설정을 보는 명령어 • 예 : • setenv : 환경을 설정하는 명령어 • setenv ipaddr xxx.yyy.zzz.ttt : IP 주소값의 설정 • 변경해야 하는 변수 : ipaddr, gatewayip, serverip, bootargs • 예: • saveenv : 변경된 환경 변수를 저장하는 명령어 • 예: • bootcmd : autoboot 상태에서 재 시작하는 명령어 => printenv bootargs=root=/dev/nfs rw nfsroot=203.251.26.204:/opt/hardhat/devkit/ppc/8xx/tar get nfsaddrs=203.251.26.206:203.251.26.204 bootcmd=bootm ffc30000 bootdelay=2 => setenv bootargs root=/nfs rw nfsroot=203.251.26.204:/target/ramdisk/ramdisk n fsaddrs=203.251.26.206:203.251.26.204 => saveenv Un-Protected 1 sectors Erasing Flash... . done

More Related