728x90

임베디드 시스템 개발 과정

- 하드웨어 플랫폼 준비 : 마이크로 프로세서와 주변 부품으로 회로 설계 -> PCB 설계 구현

- 프로그램 개발 : 시스템 동작에 필요한 프로그램 구현 - 개발도구 준비, 개발환경 셋업

 

(1) 임베디드 시스템 개발환경 개요

1) 개발 환경

2) 타겟 보드와 호스트 컴퓨터 연결

3) 호스트 컴퓨터 개발환경

 

1) 개발 환경

타겟 보드

- 임베디드 시스템 개발 과정에서 개발 대상이 되는 하드웨어 보드

- 하드웨어 구성품 : 마이크로프로세서,플레시 메모리, DRAM, 입출력장치

- 소프트웨어 구성 : 부트로더, 커널, 응용프로그램

 

호스트 컴퓨터

- 타겟 보드에서 실행할 프로그램을 개발하는 컴퓨터

- 타겟보드를 디버깅할때 쓰는 컴퓨터

 

호스트 컴퓨터 개발도구

- 터미널 애뮬레이터 : 타겟 보드의 모니터와 키보드 대신

- 플래시 메모리 퓨징 프로그램 : 타겟 보드에 실장된 비휘발성 메모리 플래시 메모리에 프로그램 씀

- 크로스 컴파일러 : 타겟 보드에 실행될 프로그램을 컴파일 해줌

- 디버거 : 디버깅 도움

 

호스트 컴퓨터 운영체제

- 리눅스

- 윈도우

- 보통 타겟보드와 동일한 운영체제 사용

 

2) 타겟 보드와 호스트 컴퓨터 연결

타겟 보드와 호스트 컴퓨터 연결하는 형태

- 개발 소프트웨어에 따라 달라짐

- 타겟보드에 모니터,키보드 같은 입출력장치가 없음 -> 호스트 컴퓨터의 모니터 키보드 사용

- 시리얼 연결 :  호스트 컴퓨터의 터미널 에뮬레이터와 콘솔 연결

- JTAG 연결 : 호스트 컴퓨터의 병렬 포트와 타겟 보드의 JTAG 연결. 플래시 메모리 퓨징, 타겟보드 디버깅

    * JTAG 인터페이스 : 5개의 신호선 사용.

- 이더넷 연결 : 대용량 파일 고속전송, 파일 시스템 공유

- 타겟보드는 성능 부족하여 호스트 컴퓨터의 자원을 사용함.

 

이더넷 연결 방법

- 크로스 케이블 : 타겟 보드와 호스트 컴퓨터를 직접 연결

- 허브 : 타겟보드와 이더넷 허브를 통해 호스트컴퓨터를 연결

 

3) 호스트 컴퓨터 개발환경 구축

- 타겟 보드의 소프트웨어 개발환경을 호스트 컴퓨터에 구축해야함

- 개발도구 : 터미널 에뮬레이터, 크로스 컴파일러 및 디버거, BOOTP서버, TFTP 서버, NFS 서버

   -> 타겟 시스템 유형이나 개발 하고자하는 프로그램에 따라 선택적으로 사용

- 타겟 보드 소프트 웨어 : 운영체제 커널 및 루트파일 시스템, 디바이스 드라이버, GUI 라이브러리, 웹서버 등

 

 

(2) 호스트 컴퓨터 설정

1) 터미널 에뮬레이터

2) BOOTP 서버

3) TFTP 서버

4) NFS 서버

 

1) 터미널 에뮬레이터

터미널 애뮬레이터

- 시리얼 통신을 사용하는 단말기 기능을 구현한 프로그램

- 임베디드 시스템 개발환경에서 타겟보드의 콘솔 사용

- 타겟보드의 콘솔로 사용.

 타겟 보드의 콘솔 포트에 연결 -> 호스트 컴퓨터의 모니터와 키보드를 타겟보드에서 사용 가능

- 파일 업로드/다운로드 가능

 

대표적인 터미널 애뮬레이터

- 리눅스용 : 미니컴

- 윈도우용 : 하이퍼터미널

- 터미널 애뮬레이터 사용을 위해 타겟보드에서 시리얼 인터페이스 프로그램 실행되어야 함.

 

타겟 보드의 시리얼 인터페이스 프로그램

- 운영체제 실장 된 경우 : 콘솔포트 디바이스 드라이버

- 부트로더 실행 단계 : 부트로더 내 별도 시리얼 통신프로그램이 포함되야함

 

미니컴 사용절차

1. 시리얼 통신 케이블 연결

 - 타겟 보드의 콘솔포트와 호스트 컴퓨터의 시리얼 포트를 연결

2. 미니컴 실행환경 설정을 위해 minicom -s 실행

3. 설정 메뉴에서 시리얼 포트 설정 클릭

4. 시리얼 통신 설정

 - 시리얼 장치, 전송속도(115200 8N1 - 115200bps 데이터크기 8, 페리티비트 x, 스탑비트 사용), 흐름 등 설정

5. 저장 후 설정 종료.

6. 타겟보드 리셋스위치 누름

7. 타겟보드의 리눅스 부팅

8. 부팅 메시지가 minicom으로 뜸

 

2) BOOTP 서버

BOOTP 서버

- 타겟보드에서 TCP/IP(이더넷) 사용을 위해 IP어드레스 설정 필요

 

IP어드레스 설정방법

.1 타겟보드에서 직접 설정

2. BOOTP를 사용하여 호스트 컴퓨터의 도움을받아 설정

 - 일반 PC에서 인터넷 연결시 DHCP 사용하는것과 유사

 - 타겟보드의 IP어드레스를 호스트 컴퓨터를 사용해서 설정

 -> 호스트 컴퓨터에는 BOOTP 서버가 실행되야함

 

bootp(부트 프로토콜, boot protocol)

- TCP/IP에서 diskless 클라이언트의 자동부팅을 위한 프로토콜

- UDP와 IP 프로토콜에서 실행

-> BOOTP 서버는 xinetd, bootpd 데몬 프로그램 실행

- 타겟 보드에서 사용할 ip주소를 네트워크를 통해 할당받기위해 사용

 

호스트 컴퓨터에 bootp 서버 설치

1. bootp-server 패키지 설치

2. 체크 컨피그 명령어로 정상 설치여부 확인

3. bootp-server의 설정 파일을 복사

4. bootp 파일 확인

5. bootp 파일 수정 - /etc/bootptab 파일에 타겟보드에 할당할 ip 어드레스 설정

6. bootp가 연결된 xinetd 서비스 재시작

 

타겟 보드에서 bootp실행

- 타겟보드에서 인터넷 접속을 위한 ip어드레스 설정

- 자동 설정 : 부트로더에서 bootp 명령어 사용, 시스템 부팅 후 bootp 명령어 실행 

- 수동 설정 : 시스템 부팅후 ifconfig로 설정

 

3) TFTP

- Tribial File Transfer Protocol

- UDP를 사용한 단순 파일전송 프로토콜

- 부트로더에서 대용량 데이터를 고속으로 다운받기위해사용 - 커널이미지, 램디스크이미지, 응용프로그램등

- 시리얼 포트를 사용해 미니컴 프로그램의 파일전송 기능으로 다운로드 가능하나 느림

 

4) NFS

- Network File System

- 네트워크로 파일 공유

- 타겟보드에서 호스트 컴퓨터의 파일 시스템 공유

- 호스트 컴퓨터 작업 내용을 타겟 보드에 바로 마운트 가능

300x250

+ Recent posts