Presentation is loading. Please wait.

Presentation is loading. Please wait.

임베디드 시스템.

Similar presentations


Presentation on theme: "임베디드 시스템."— Presentation transcript:

1 임베디드 시스템

2 Chapter 3 임베디드 시스템의 소프트웨어

3 임베디드 소프트웨어 하드웨어를 제어하기 위하여 임베디드 시스템에 내장되는 명령어 집합을 의미
제한된 하드웨어 자원에서 동작해야 하므로 하드웨어에 최적화된다. 임베디드 시스템(Embedded System, 내장형 시스템)은 시스템을 동작시키는 소프트웨어를 하드웨어에 내장하여 특수한 기능만을 수행하는 컴퓨터 시스템이다. 개인용 컴퓨터(PC)와는 달리 특정한 요구 사항을 가지고 있으며, 미리 정의된 작업(task)만을 수행한다 제한된 하드웨어 자원에서 동작해야 하므로 대부분 하드웨어에 최적화되어 일반적으로 크기가 작다 또한 임베디드 시스템의 하드웨어 종류도 많아 여기에 탑재하는 임베디드 소프트웨어의 종류도 다양하고, 복잡하다 초창기 임베디드 시스템의 경우 어셈블리를 사용하여 하드웨어를 직접 제어하는 방식으로 별도의 운영체제 없이 동작했다. 그러나 임베디드 시스템의 사용 분야가 다양해지면서 운영체제의 도움이 자연스럽게 되었다.

4 소프트웨어의 분류 응용 소프트웨어 미들웨어 시스템 소프트웨어 개발 프레임워크 소프트웨어 플랫폼
게임, 모바일 숍, 차량 항법 시스템 등 미들웨어 JVM, COM, 각종 통신 프로토콜 관리기 시스템 소프트웨어 실시간 운영체제, 디바이스 드라이버 등 개발 프레임워크 컴파일러, 디버거, 각종 시뮬레이터, 실시간 모니터 등 소프트웨어 플랫폼 WindowCE, WIPI 등

5 소프트웨어 사양 결정 시스템의 사양 및 성능에 따른 소프트웨어 선정 OS 사용 여부 결정 소프트웨어 개발 License 조건
Real-time의 필요성 및 시스템 메모리의 크기 등에 따른 OS 선정 소프트웨어 개발 개발 시간, 난이도 및 비용에 따라 자체 개발 또는 외주 개발 결정 License 조건 소프트웨어의 사용 권한 및 제한 사항 확인 MPEG, MP3 등

6 OS 사용에 따른 분류 OS가 없는 소프트웨어는 운영체제를 임베디드 시스템에 탑재하지 않고, 임베디드 응용 프로그램이 직접 하드웨어를 제어하며, 특정한 기능을 반복하여 수행하는 형태이다. 이 방식은 초기의 임베디드 시스템에서 대부분 채택된 방식으로 작은 규모의 제어 시스템에서 사용 범용 OS와 응용 소프트웨어로 구성된 임베디드 소프트웨어는 하드웨어를 제어하고 관리하기 위해 범용 OS를 탑재한 후 각종 응용 소프트웨어를 운영체제의 도움과 함께 동작하도록 하는 방식 범용 OS의 코드 크기가 방대하여 실시간성을 지원하지 않지마 멀티미디어 혹은 네트워크 기능 등 많으 서비스를 제공할 수 있다. 실시간 OS와 응용 소프트웨어로 구성된 방식은 실사간 OS의 비용은 높지만 이미 검증되고 안정적인 서비스를 제공 받을 수 있기 때문에 개발에 필요한 비용과 기간을 단축할 수 있는 장점이 있다. 특정 반응에 대하여 정해진 시간 내에 반응이 필요한 임베디드 시스템에 적합하다 전용 OS와 응용 소프트웨어로 구성된 방식은 특수한 목적에 적합하도록 만들어서 실시간성 뿐 아니라 고가용성, 고 성능성을 충족시킨다. 그러나 전용 OS의 개발에 때라느 고비용의 문제가 있다.

7 임베디드 시스템에서의 OS 시스템 규모가 커짐에 따른 멀티 태스킹(Multi Tasking) 기능 요구
네트워크나 멀티미디어 기능이 시스템의 기본 요소가 됨 리얼타임의 필요성이 부각됨 지능성이 부가되고, 기능이 많아지고, 복잡해짐 상용 RTOS(Real-Time OS) 윈도우 CE 임베디드 Linux 임베디드 JAVA

8 임베디드 OS 선정(1) 상용 RTOS : Hard RealTime / Multi-thread / Preemptive
pSOS, VxWorks, VRTX 등 다수 일반 운영체제와 거의 같은 기능을 수행 시간 제약성, 신뢰성 등을 일반 운영체제 보다 중요시 함 일반적으로 한가지 목적에 최적화 되어있음 임베디드 OS : Soft RealTime / Multi-process / non- preemptive Windows CE 임베디드 리눅스 임베디드 자바

9 임베디드 OS 선정 (2) 최근 동향 OS 선정 임베디드 OS 세계시장 : 시스템의 특성에 적합한 OS 선정
WinCE, 임베디드 리눅스가 기존의 RTOS 보다 시장 점유율이 높아지는 추세 OS 선정 시스템의 특성에 적합한 OS 선정

10 Linux 장점 단점 유닉스와의 완벽한 호환 공개 운영체제이며 무료 강력한 네트워크 기능
안정적이며 하드웨어 기능을 효과적으로 사용 다양한 응용 소프트웨어 제공 단점 오류로 인한 사고 발생시 보상 체계 없음 커널 버전이 너무 빨리 변한다

11 커널 메모리에 상주하여 시스템의 구동에 필요한 환경을 만들고 관리하는 운영체제의 핵심 소프트웨어 물리적 자원 관리
프로세서, 메모리, 디스크, 터미널, 네트워크 등 추상적 자원 관리 태스크(task), 쓰레드(thread) 페이지(page) 파일 및 i-노드 통신 프로토콜 및 패킷

12 Linux 커널 구조 시스템 호출 인터페이스와 하드웨어 인터페이스 사이에 위치
시스템 호출 인터페이스를 통하여 사용자 프로세스와 커널 사이의 정보 교환이 가능

13 Linux 커널의 기능 프로세스 관리 메모리 관리 파일시스템 관리 디바이스 관리 네트워크 관리
프로세서 생성, 소멸, 스케쥴링 동기화 메모리 관리 가상 메모리 관리 파일시스템 관리 파일 및 디렉토리 관리 디바이스 관리 네트워크 관리

14 Linux 커널 소스 구조

15 과제 Linux 명령어 조사하기

16 커널 포팅 커널 포팅 이란 ? 선정된 OS 커널이 개발하려는 시스템에서 동작 할 수 있도록 프로세서, 메모리, 트랩(Trap or Exception), 인터럽트와 타이머 등을 맞추어 주는 작업 OS의 Scheduler를 정상적으로 동작 할 수 있도록 함 커널 포팅 커널을 포팅하는 개발자는 하드웨어 및 소프트웨어에 대하여 알고 있어야 함 근래에는 반도체 또는 SoC 개발 회사에서 커널을 포팅하여 제공하는 추세

17 디바이스 드라이버 포팅 디바이스(Device ) 디바이스 드라이버
네트워크 어댑터, LCD 디스플레이, Audio, 터미널, 키보드, 하드디스크, 플로피디스크, 프린터 등과 같은 입출력 장치들을 말함 디바이스의 구동에 필요한 프로그램, 즉 디바이스 드라이버가 필수적으로 요구됨 디바이스 드라이버 실제 장치 부분을 추상화시켜 사용자 프로그램이 정형화된 인터페이스를 통해 디바이스를 접근할 수 있도록 해주는 프로그램 디바이스 관리에 필요한 정형화된 인터페이스 구현에 요구되는 함수와 자료구조의 집합체 응용프로그램이 하드웨어를 제어할 수 있도록 인터페이스 제공 하드웨어와 독립적인 프로그램 작성을 가능하게 함

18 디바이스 드라이버의 구조

19 부트로더의 역할 (1) 타겟 시스템 초기화 부트로더는 전원이 입력되면 타겟 시스템이 정상동작 할 수 있도록 하드웨어 및 소프트웨어 동작 환경을 설정 불필요한 하드웨어의 동작 중지, 시스템 클록 설정, 메모리 제어기 설정 및 필요에 따라 MMU나 MPU를 설정 프로그램 동작에 필요한 재배치(relocation), 스택 영역 설정 및 C에서 사용되는 변수 영역을 설정한 다음 C로 작성된 함수 호출 부트로더에는 필요에 따라 IRQ와 같은 예외처리(Exception Handling) 처리 벡터 및 핸들러도 작성 되어야 함

20 부트로더의 역할 (2) 타겟 시스템 동작 환경 설정 시스템 운영체제 부팅
부트 방법, 부트 디바이스를 비롯한 네트워크를 이용한 부트를 지원하기 위한 네트워크 설정, IP 주소 설정 등 부트로더 동작에 필요한 정보를 설정 설정된 환경 변수 값은 플래시 메모리 또는 EEPROM에 저장 관리 시스템 운영체제 부팅 일반적으로 임베디드 시스템의 운영체제는 플래시 메모리에 탑재되어 있고 부팅과정에서 주 메모리(일반적으로 DRAM을 사용)에 탑재하여 실행 운영체제를 DRAM에 복사하고 제어권을 운영체제의 시작점으로 넘겨주는 기능 필요

21 부트로더의 역할 (3) 플래시 메모리 관리 모니터 기능 임베디드 시스템에서 가장 효율적인 보조 기억 장치
부트로더 탑재, 시스템에 전원이 인가되면 플래시에 저장된 부트로더 실행 부트로더 및 시스템 동작에 필요한 환경 변수 저장 플래시 메모리에는 시스템 운영체제 이미지 탑재 모니터 기능 시스템의 동작 상태를 감시 POST(Power-On Self Test) 하드웨어 정상 동작 여부 검사, 메모리 검사 등

22 램 디스크 전원을 켜서 부팅을 하면 램은 보조기억장치에 저장했던 커널을 읽어서 기억하고, 여러 응용 프로그램과 처리할 자료를 필요에 따라 읽음 램디스크 주기억장치인 램의 용량 중 사용하지 않는 여분의 기억 공간을 마치 디스크처럼 사용하는 것 접근 속도가 빠르다는 장점이 있지만, 사용되는 램디스크의 크기만큼을 RAM에서 할당받기 때문에 물리적인 RAM의 크기가 적은 시스템에서는 적합하지가 않음

23 응용 소프트웨어 개발 어플리케이션(응용 프로그램) 임베디드 시스템에서의 어플리케이션
시스템(하드웨어와 OS)를 이용해서 어떠한 작업을 하는 것 워드, 게임 등의 모든 응용 프로그램 임베디드 시스템에서의 어플리케이션 특정한 작업을 처리하기 위해서 작성됨 근래에는 컨버전스 제품으로 변모, 다양한 어플리케이션 탑재

24 응용 소프트웨어와 디바이스 드라이버의 관계

25 SoCMaster-XP100 Altera Excalibur 칩 사용 ARM9 프로세서와 AMBA의 AHB Bus 사용
10만 게이트 FPGA를 내장

26 Excalibur Architecture (1)

27 Excalibur Architecture (2)

28 A typical AMBA-based system


Download ppt "임베디드 시스템."

Similar presentations


Ads by Google