logo
한국어 Select Language
  • English
  • 中文(中国)
  • 日本語
  • Español
  • Русский
  • Français
  • 中文(臺灣)
  • Tiếng Việt
  • Mongolian
FF 포럼
포럼지기에게 한 마디
공지사항
Falinux 뉴스 EZ보드 통합 메뉴얼
타켓보드 부팅-HyperTerminal 타켓보드 부팅-Tutty 타켓보드 부팅-minicom Windows환경-타겟 Linux 구동 Linux환경-타겟 Linux 구동 개발 시스템 구축 유형 페도라 설치 CentOS 설치 크로스 컴파일러 설치 TFTP 환경 구축 NFS 파일 시스템 구축 삼바 서버 구축 부트로더 부트로더 쓰기 커널 이미지 제작 및 설치 램디스크 이미지 제작 및 설치
임베디드 제품 사용기 오늘의 영어 휴게실
강좌 & 팁
강좌 & 팁 EZ-보드 그래픽 & 멀티미디어 네트워크 프로그래밍 디바이스 드라이버 임베디드 FLEX 안드로이드 FAIDE 하드웨어 수아파파 - 아두이노 C/C++ GNU C 레퍼런스 메뉴얼 응용 프로젝트 이클립스 지그비 개발자 노트 권장도서
함수설명
C 라이브러리 함수 커널 API 그래픽 라이브러리 - gxLib
자료실
자료실 FALINUX SDK EZ-PXA270 EZ-AU1200 EZ-S3C2440 EZ-S3C6410 EZ-X5 EZ-EP9312 EZBOARD-M01 EZ-M28 EZ-S2410 Auto Package
도와주세요
FAQ 도와주세요 왕초보방

  • 회원 가입
  • 아이디/비밀번호 찾기
OpenID
 
  1. 포럼지기에게 한 마디

  2. Falinux 뉴스

  3. EZ보드 통합 메뉴얼

    • 타켓보드 부팅-HyperTerminal

    • 타켓보드 부팅-Tutty

    • 타켓보드 부팅-minicom

    • Windows환경-타겟 Linux 구동

    • Linux환경-타겟 Linux 구동

    • 개발 시스템 구축 유형

    • 페도라 설치

    • CentOS 설치

    • 크로스 컴파일러 설치

    • TFTP 환경 구축

    • NFS 파일 시스템 구축

    • 삼바 서버 구축

    • 부트로더

    • 부트로더 쓰기

    • 커널 이미지 제작 및 설치

    • 램디스크 이미지 제작 및 설치

  4. 임베디드 제품 사용기

  5. 오늘의 영어

  6. 휴게실


최근 글

  • 버티컬 마우스 newimage
  • 콘덴서값 보기 new
  • 각종 전자부품 사이... new
  • PADS 단축키 new
  • 간단한 다이어트2 newimagefile
  • 사무실 전화영어(2편... new
  • screen 의 유용한 ...
  • OrCAD 단축키
  • 궁금한게 있습니다..... [1] update
  • s3c6410 보드 ttyS...

최근 댓글

  • 안녕하세요.. 연락 주시면 감...
  • 안녕하세요.. dev-cims3c2440....
  • 안녕하세요.. 저희 보드는 N...
  • 안녕하세요.. DataClock 은 ...
  • 인터넷에서 찾아본 결과 잘되...
  • 이렇게 변경 하니 빠르게 동...
  • 버전 조합의 문제일수도....
  • 위 로그로 봐서는 부트가 동...
  • EZ 보드를 위한 메뉴얼입니다. 본 메뉴얼은 EZ보드 전체에 해당하는 공통 내용입니다.
  • PDF 파일도 준비했습니다. 메뉴얼 전체를 인쇄하시려면 PDF파일을 다운로드하십시오.
  • 최근 통합 메뉴얼 버전: 3.3.2

개발 시스템 구축 유형

개발 시스템 환경 구축의 개요
개발 호스트 구축 환경
사례 1
사례 2
사례 3

개발 시스템 환경 구축의 개요

본 단원에서는 임베디드 리눅스를 대상으로하는 개발 시스템의 구축에 대한 설명입니다. 과연 임베디드 리눅스 시스템에서 운영되는 시스템을 개발하기 위해 개발환경을 어떻게 구축하는지에 대한 예와 구축에 필요한 항목에 대해 말씀 드리겠습니다.

개발 호스트 구축 환경

PC에서 동작 되는 프로그램은 PC상에서 실행되는 컴파일러로 만들어 집니다. 이렇게 자신과 같은 환경에서 실행되는 프로그램을 만들어 주는 컴파일러를 특히 네이티브(Native) 컴파일러라고 합니다.

그러나 임베디드 리눅스가 설치된 보드에서는 시스템 리소스가 열악한 경우가 많아서 네이티브 컴파일러를 운영하기가 힘이 듭니다. 그래서 환경이 좋은 PC 개발 호스트를 구축하고 그 개발 호스트에서 만들어진 프로그램을 임베디드 리눅스 장비로 다운로드를 한 후에 프로그램을 실행하게 됩니다.

이렇게 다른 환경에서 실행되는 프로그램을 만들어 주는 컴파일러를 크로스(Cross) 컴파일러라고 합니다. 그러므로 임베디드 리눅스에서 실행되는 시스템을 개발하기 위해서는 크로스 컴파일러를 운영할 수 있는 개발환경을 구축해야 하며 일반적으로 리눅스를 이용하여 개발 호스트를 구축합니다.

개발 호스트로서 갖추어야할 내용을 정리해 보면 아래와 같습니다.

  • 크로스 컴파일러를 운영할 수 있는 개발환경
  • binutil , gcc, glibc 또는 newlibc
  • FALinux 에서 제공하는 크로스 컴파일러 툴체인 환경
  • 시리얼 에뮬레이터 minicom
  • tftp 서버
  • nfs 서버
  • samba 서버
  • 커널 소스
  • 램디스크 이미지 ( 기본적인 것 )
  • vi 에디터

이와 같은 내용을 담아 개발 호스트 환경을 구축하는 방법에도 아래와 같이 크게 3가지로 나눌 수 있습니다.

  • 사례 1: 리눅스 개발 호스트 + 시리얼 케이블만 사용
  • 사례 2: 리눅스 개발 호스트 + 이더넷을 이용한 LAN 네트워크 구축
  • 사례 3: 리눅스 개발 호스트 + 윈도즈 작업 환경 + 이더넷 LAN network 구축

이중 가장 추천하는 방식은 "사례 3" 입니다.

사례 1

항목 내용
개발 호스트 리눅스 PC
플래시 써 넣기 JTAG
터미널 시리얼

사례 1 은 최소한 비용과 규모의 개발환경으로 개발 호스트로 리눅스 OS를 설치해서 크로스 컴파일 개발 환경을 구축합니다.  가장 초기에 부트 이미지를 써 넣기 위해서 는 JTAG를 사용합니다. 그러나 JTAG의 처리속도는 매우 느리므로 개발 보드에서 부트로더가 동작 한 이후에는 리눅스 개발 호스트에서 만들어진 실행 파일 및 필요 파일은 시리얼을 통해 다운로드한 후 실행합니다. 이때 사용 가능한 프로토콜은 이지부트를 사용했을 경우에는 ZMODEM 프로토콜입니다.

이 사례를 이용한 개발 순서는 아래와 같습니다.

사례 2

항목 내용
개발 호스트 리눅스 PC
플래시 써 넣기 JTAG
터미널 시리얼
다운로드 네트워크

이 구성은 가장 일반적인 구축 예입니다. 개발 호스트로 리눅스 OS를 설치하고 크로스 컴파일 개발 환경을 구축합니다. 가장 초기에 부트 이미지를 써 넣기 위해서는 JTAG를 사용합니다. 그러나 JTAG의 처리속도는 매우 느리므로 개발 보드에서 부트로더가 동작 한 이후에는 이더넷을 이용한 네트워크 통해 개발 호스트에서 보드로 파일을 다운로드합니다.

이때 사용되는 것이 bootp와 tftp이며, bootp 는 개발보드의 IP를 받아 오기 위해서 사용되는 프로그램이고 tftp는 실제 파일 이미지를 가져 오기 위해 사용하는 프로그램입니다.

minicom은 장비에 동작하는 부트로더에서 표출하는 메시지를 보거나 명령을 수행시키기 위한 환경으로 사용됩니다. 또한 임베디드 장비가 리눅스로 부팅한 후에 콘솔 창으로 사용됩니다.

nfs는 장비에서 동작하는 리눅스 커널이 동작한 후에 임베디드 장비에는 대용량 보조 기억 장치가 없으므로 호스트와 파일을 공유하여 보조 기억 장치로 사용하기 위해서 이용됩니다. 즉, 임베디드 장비에서 리눅스 호스트의 일부 영역을 자신의 리소스로 이용하게 됩니다.

이 사례를 이용한 개발 순서는 아래와 같습니다.

사례 3

항목 내용
개발 호스트 리눅스 PC
작업 PC Microsoft Windows PC
플래시 써 넣기 JTAG
터미널 시리얼
다운로드 네트워크

이 구성이 가장 추천하는 구축의 예입니다. 개발 호스트로 리눅스 OS를 설치하고 크로스 컴파일 개발 환경을 구축합니다. 그러나 작업은 Microsoft Windows(이하 MS윈도우) PC에서 합니다. 즉, 프로그램을 작성하고 컴파일하고 디버깅하는 모든 작업을 MS 윈도우 PC에서 하며, 리눅스 개발 호스튼 파일 공간과 컴파일러를 제공해 줍니다.

가장 초기에 부트 이미지를 써 넣기 위해서는 JTAG를 사용합니다. 그러나 JTAG의 처리속도는 매우 느리므로 개발 보드에서 부트로더가 동작 한 이후에는 실행 이미지를 다운로드하기 위해서 이더넷 을 이용한 네트워크상에서의 다운로드를 수행합니다.

이때 사용되는 것이 bootp와 tftp이며, bootp 는 개발보드의 IP를 받아 오기 위해서 사용되고, tftp는 실제 이미지를 가져 오기 위해 사용됩니다.

MS윈도우에서 터미널 에뮬레이터( 하이퍼 터미널, 새롬 데이터맨 프로 등등)를 이용하여, 장비의 부트로더에서 표출하는 메시지를 보거나 명령을 실행 시킵니다. 또한 임베디드 장비가 리눅스로 부팅한 후에는 MS윈도우의 터미널 프로그램으로 콘솔로 사용하게 됩니다.

nfs 는 장비에서 동작하는 리눅스 커널이 동작한 후에 임베디드 장비에는 대용량 보조 기억 장치가 없으므로 호스트와 파일을 공유하여 보조 기억 장치로 사용하기 위해서 필요합니다. 즉, 임베디드 장비에서 리눅스 호스트의 일부 영역을 자신의 리소스로 이용하게 됩니다.

삼바는 개발 호스트 인 리눅스 머신과 MS윈도우와의 파일을 공유하기 위해서 사용됩니다. 대부분의 작업은 MS윈도우에서 진행하며 리눅스는 컴파일 및 개발장비에 이미지 전송을 하기 위해서 사용됩니다. 또한 MS윈도우에서 리눅스의 제어명령을 수행하기 위해서 텔넷 프로그램이나 Xmanager, Exceed와 같은 X 클라이언트 프로그램을 사용합니다.

사례 3 과 같은 구성이 나온 이유는 우리나라 대부분의 개발자가 MS윈도우 환경에 익숙하기 때문으로 애용하는 에디터와 익숙한 웹 브라우저를 사용할 수 있다는 장점이 있기 때문입니다.

이 사례를 이용한 개발 순서는 다음과 같습니다.

 

부탁드립니다. ^^
  • 글을 작성하시려면 회원으로 가입하시고 로그인 하셔야 합니다.
  • 회원 가입은 주민등록번호가 필요 없으며, 메일 주소만 있으면 간단하게 가입하실 수 있습니다.
  • 본 포럼에 등록된 모든 글의 저작권은 작성하신 분께 있으며, 저작자의 허락 없이 다른 곳에 펌이나 도용하시면 안 됩니다.
  • 또한, 전자우편 수집 프로그램이나 그 밖의 기술적 장치를 이용하여 무단으로 이메일 주소 및 자료 수집되는 것을 거부하며,
  • 이를 위반 시 정보통신망 법에 의해 형사 처벌됨을 유념하시기 바랍니다.
  • FF 포럼
  • 강좌 & 팁
  • 함수설명
  • 자료실
  • 도와주세요