임베디드 시스템 개발 과정
- 하드웨어 플랫폼 준비 : 마이크로 프로세서와 주변 부품으로 회로 설계 -> 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
- 네트워크로 파일 공유
- 타겟보드에서 호스트 컴퓨터의 파일 시스템 공유
- 호스트 컴퓨터 작업 내용을 타겟 보드에 바로 마운트 가능
'컴퓨터과학 > 임베디드' 카테고리의 다른 글
ARM을 활용한 임베디드 시스템 설계 17 - 부트로더 분석 (0) | 2020.05.04 |
---|---|
ARM을 활용한 임베디드 시스템 설계 16 - 부트로더 구조 (0) | 2020.05.04 |
ARM을 활용한 임베디드 시스템 설계 14 - 소스 컴파일 (0) | 2020.05.04 |
ARM을 활용한 임베디드 시스템 설계 13 - shell 프로그래밍 (0) | 2020.05.04 |
ARM을 활용한 임베디드 시스템 설계 7 - ARM 명령어 구조 (0) | 2020.05.04 |