Embedded S/W 기초이론 및 실습
Introduction
개요 What is Kernel ? 임베디드시스템 이란 ? 임베디드 소프트웨어 ? 임베디드 운영체제 커널의 특징 임베디스 소프트웨어 개념도 임베디드 소프트웨어의 특징 패키지 S/W와 임베디드 S/W의 비교 임베디드 하드웨어의 정의 분야별 상세 기술 분류 임베디드 S/W 산업화 추세 임베디드 시스템간 Value Chain 임베디드 시스템 S/W 임베디드 시스템 미들웨어 임베디드 S/W 개발 도구 임베디드 S/W 기본/공통 응용 S/W 산업별 임베디드 응용 S/W 임베디드 S/W 구조도 What is Kernel ? 임베디드 운영체제 커널의 특징 임베디드 운영체제 커널 기술 RTOS 종류 Why use Mobile Programming ? 모바일 관련 플랫폼 및 개발언어 모바일 플랫폼 종류
개요 임베디드 시스템(Embedded System) 이란 ? 특정 목적으로 구성된 마이크로프로세서 위에 소프트웨어를 내장하여 최적화시킨 시스템을 임베디드 시스템이라 하며, 임베디드 시스템에 탑재되는 시스템 소프트웨어, 미들웨어, 응용 소프트웨어를 총칭하여 임베디드 소프트웨어라 함. 임베디드 소프트웨어(Embedded Software) ? 임베디드 시스템은 우리가 일상에서 쉽게 자주 접하는 비행기, 미사일, 세탁기, 휴대폰 등의 제품 안에 단순한 컴퓨터가 내장되어 있는 것이며 그 컴퓨터 안에 탑재된 소프트웨어를 임베디드 소프트웨어라 함.
개요 임베디드 소프트웨어(Embedded Software) 개념도
개요 임베디드 소프트웨어(Embedded Software) 특징 (1) 임베디드 소프트웨어가 실행되는 시스템의 용도에 따라 연성 혹은 경성 실시간 처리를 지원하여야 함. (2) 소프트웨어의 오 동작 및 작동 중지가 허용되지 않는 임베디드 시스템에서는 고도의 신뢰성이 요구됨. (3) 임베디드 시스템은 크기, 가격 및 발열 등을 이유로 제한된 하드웨어 자원으로 구성됨에 따라 임베디드 소프트웨어는 경량화, 저전력 지원, 자원의 효율적 관리 등의 하드웨어에 최적화하는 기술을 지원하여야 함. (4) 범용 데스크탑 또는 서버에서 실행되는 패키지 소프트웨어와 달리 특정 시스템에서의 실행을 목적으로 개발됨. (5) 따라서 탑재될 임베디드 시스템의 기능에 따라 소프트웨어의 기능이 결정되며 임베디드 소프트웨어의 개발은 풍부한 하드웨어 지식과 시스템 소프트웨어 개발 경험을 요구함.
개요 패키지 S/W 와 임베디드 S/W 비교 패키지 S/W 임베디드 S/W 특징 - 사용자의 요구 사항 및 정보 처리를 주목적으로 함 - 개인 및 기업용 범용 S/W 포괄 - 미국의 특정 기업이 주로 독점 - 실시간성, 자원제한성, 고신뢰성 등 critical하게 요구되지 않음 - 종전의 H/W 제어에서 부가기능 제공으로 역할 확대 - 특정 제품에서만 동작하는 S/W - 제1강자가 존재하지 않음 - 실시간성, 자원제한성, 고 신뢰성 등을 요구 개발자측면 - S/W만을 개발 - 프로그래밍 기술 및 비즈니스 로직만 보유 - 운용되는 H/W(Pentium), OS(Windows) 거의 동일 - PC 데스크탑과 같은 Native 개발 환경 - H/W와 함께 개발하므로 H/W에 대한 지식 및 경험 필요 - 시스템 소프트웨어 기술 필요 - 같은 기능이라도 다양한 H/W에 이식하여야 함 - 호스트와 타겟으로 구성된 교차 개발 환경 최종 사용자 측면 PC 데스크탑에서 선택적으로 운용 HDD에 저장 - CD 및 플로피디스켓으로 배포 - 사용자 Interaction은 GUI 활용 - 고장 발생 시 쉽게 유지 보수 - 임베디드 시스템 H/W 상에서 자동으로 운영됨 - ROM에 내장 - H/W와 함께 배포 - 사용자 Interaction이 최종 제품을 통해 발생 - 고장 발생 시 제품 사용이 불가
개요 임베디드 하드웨어(Embedded Hardware) 정의(1) 특정한 전용 동작을 수행하기 위해 설계된 컴퓨팅 장치인 임베디드 시스템을 구성할 때 소요되는 물리적인 집적회로 및 개별회로를 통칭하는 용어임. (1) 임베디드 하드웨어는 임베디드 프로세서가 그 주축을 이루고, 임베디드 프로세서는 논리회로와 메모리 등을 하나로 합쳐 프로세서의 기본적인 처리 기능에 입출력, 저장 기능 등을 포함시킨 SoC(System-on-a Chip)형태의 프로세서임. (2) 일반적인 SoC 제품은 적어도 한 개 이상의 내장형 프로그램 가능한 프로세서, 온칩 메모리, 추가 기능블록, 메모리, 외부와의 통신을 위한 인터페이스를 SoC 통합 구조나 버스 구조에 맞추어 통합하여 구성됨.
개요 임베디드 하드웨어(Embedded Hardware) 정의(2) (3) 정보가전 기기와 개인용 휴대 정보 통신 기기, 산업용 제어 기기 등에 내장되므로, 소형, 경량, 저전력, 저가격의 특성을 만족할 수 있는 SoC 기반의 하드웨어 구조로 발전되고 있다. 최근 멀티미디어 성능의 중요성 증가로 인하여 영상이나 음성 코덱 중심의 Soc와 외부와의 유무선 통신 기능 강화에 중점을 둔 SoC 등이 급속도로 발전하고 있는 단계임 (4) 특수 목적 디지털 장비와 같이 전용 동작을 수행하던 임베디드 시스템은 정보 가전 기기나 개인용 정보 기기 등으로 영역이 확장되고 있다. 이에 따라 임베디드 시스템은 RTOS, 미들웨어, 응용 등의 복잡한 소프트웨어를 탑재하여 가변적으로 수행할 수 있는 고성능의 융통성 있는 컴퓨팅 시스템 구조를 가지는 추세임 (5) 특정 기능에 최적화된 고유 임베디드 운영체제를 탑재한 ASIC(주문형 반도체) 형태의 하드웨어 플랫폼이나 VxWorks와 같은 상용 RTOS를 탑재한 상용 칩 기반 하드웨어 플랫폼 형태로 제작되고 있음
개요 분야별 상세 기술 분류(1) ▶ 하드웨어IP 설계프로세서 코어 분석 및 설계 기술 - 8bit, 16 bit, 32 bit 코어의 고속화 및 저전력화 설계기술 - ARM, MIPS, x86 등 상용 코어 활용기술 ▶ DSP 설계기술 - OAK, StarCore, Teak 등 국내외 상용 DSP 코어 활용 기술 ▶ 그래픽스 가속기 설계기술 - 2D, 3D 그래픽스 가속기 설계 ▶ 자바 가속기 설계기술 - Java bytecode를 수행하는 프로세서 코어 설계기술 ▶ 멀티미디어 코덱 설계기술 - 각종 오디오, 비디오 코덱 코어 설계
개요 분야별 상세 기술 분류(2) ▶ 주변기기 코어 IP 설계기술 - 버스, 캐시메모리, ME/MC, DCT, Network I/F, RF, Embedded memory, - Virtual Socket Interface, Virtual Components 등 reusable core 제작기술 ▶ SoC 통합 버스 및 표준 인터페이스 기술 - AMBA, CoreConnect, VCI 등 VC 통합을 위한 버스 및 인터페이스 관련 기술 ▶ IP 기반 SoC 설계- Configurable SoC 기술 - 고급 또는 behavioral level model 기술 ▶ 하드웨어 플랫폼- Domain specific 임베디드 하드웨어 구조 설계기술 - 하드웨어 프로토타이핑 기술 ▶ 하드웨어 개발환경 구축설계 자동화 기술 - HW/SW Co-design tool - IP management tool - HW/SW Co-Verification tool - RTL Design tool
개요 임베디드 S/W 산업화 추세
개요 임베디드 시스템간 Value Chain
산업분야별 표준형, 마이크로 및 나노 임베디드 운영체제 선택 개요 임베디드 시스템 S/W 1단계 2단계 3단계 관련 산업 임베디드 시스템 소프트웨어 임베디드 운영체제 (커널 및 라이브러리) Component별 전력 관리 및 코드 최소화 산업분야별 표준형, 마이크로 및 나노 임베디드 운영체제 선택 신속한 부팅 지원 연성/경성 실시간, 멀티태스킹/쓰레딩 지원 차세대 네트워크 지원 (ZigBee, UWB, BcN), IPv6, QoS, Multi-protocol 지원 입출력 인터페이스 지원 (USB, PCMCIA, SCSI, 비동기I/O, CD-ROM FS, IEEE1394) 표준 라이브러리, 표준 Shell & Tools 제공 (POSIX, ANSI C/C++) 보안 (Secure Kernel/Network, Device 인증) 고가용성(High Availability) 커널 GUI, VM, FFS, DBMS Graphical UI (Windows CE, Qt/Embedded 등의 Windows API, Multi-modal UI, 등) 전산업 분야 공통 Virtual Machine (Java, C#을 위한 Managed Runtime Engine), JNI, 주요 Profile 지원 플래시 메모리 기반 파일 시스템 (flash memory file system, FTL, ...) 메모리 기반 DBMS (Flash memory 최적화)
개요 임베디드 시스템 미들웨어 1단계 2단계 3단계 관련 산업 임베디드 미들웨어 분산 컴퓨팅 분산 객체형 컴퓨팅 (CORBA) 홈네트워크, 차세대 PC, 텔레매틱스, 지능형 로봇 분산 협업 (SOAP, distributed JVM) 분산 기기간의 상호 운용성 지원 실시간 분산 컴퓨팅 / 통신 (RT-CORBA, ...) 유비쿼터스 서비스 지능형 에이젼트(Context-aware) 미들웨어 USN Ad-hoc 라우팅 및 그룹 통신 능동 메시징 기술 센서 네트워크 통신 프로토콜 응용 서비스 지원 무선 인터넷 플랫폼 (WIPI, Brew, MIDP, ...) 이동통신 홈네트워크 텔레매틱스 DTV 개방형 서비스 프레임워크 (OSGi 등) 텔레매틱스 응용 미들웨어 (AMI-C 등) 유무선 데이터 동기화 (SyncML, 단말-서버 동기화 등) 데이터 방송 미들웨어(MHP) DMB 방송 미들웨어 보안 콘텐츠 보호 관리 인증 및 접근 권한 제어 침입 탐지 이중화 기술(High availability, Fault 감지/복구)
개요 임베디드 S/W 개발도구 1단계 2단계 3단계 임베디드 소프트웨어개발 도구 통합 개발 환경 임베디드 시스템 설정 및 구축 도구 프로젝트 관리 도구 크로스 컴파일러 및 유틸리티 원격 디버거(정지, 비정지, 온칩) 실시간성 분석 및 모니터링 도구 성능 분석 및 최적화 지원 도구 디바이스 드라이버 개발 도구 소스 코드 자동 생성 도구 시뮬레이터 설계 자동화 도구 개발 프로세스 기술 시스템 분석 및 모델링 기술 제품 계열 기반 개발 기술 임베디드 시스템 및 SoC 개발 도구 시험 자동화 도구 시험 데이터 생성 기술 정적/동적 분석 기술 모델 검증 및 자동 증명 기술 테스트 프로세스 관리 도구
휴대폰, 홈네트워크 서버, 보안장치, DTV등 거의 모든 정보기기 개요 임베디드 기본/공통 응용 S/W 1단계 2단계 3단계 관련 산업 임베디드 기본/공통 응용 S/W 브라우저 네트워크 프로토콜 DTV, 휴대폰/스마트폰, PDA Markup Language 처리 기술 플러그인/컴포넌트 처리기술 보안/암호화 기술 미디어 재생기 오디오/비디오 코덱 기술 휴대폰, 포터블미디어플레이어, 휴대용 게임기 오디오/비디오 렌더링 기술 플러그인/플래시/컴포넌트 처리 기술 Office- ware PIMS(일정관리, 메일관리, 메모) 휴대폰, PDA 문서작성/뷰어 데이터 동기화 기술 휴먼 인터페이스 음성 합성/인식 휴대폰, 홈네트워크 서버, 보안장치, DTV등 거의 모든 정보기기 영상 인식 생체 인식 필기체 인식
차량정비, 보험, 차량용 단말장치, 네비게이션S/W 개요 산업별 임베디드 응용 S/W 1단계 2단계 3단계 관련 산업 산업별 임베디드 응용 S/W 이동통신 단말 응용 S/W WiFi 및 휴대인터넷과의 로밍 휴대폰 개발 관련 전 산업 멀티미디어 메시징 시스템 위치기반 서비스 3D 게임 플랫폼 DTV 응용 S/W 방송콘텐츠 저작도구 정보가전, 방송 메타데이터 저작도구 DTV용 브라우저 및 응용 S/W 홈네트워크 응용 S/W 홈오토메이션 / 홈뷰어 / 방재 셋탑박스, 보안, 센서장치 에너지 관리 Healthcare / Telemedicine 홈네트워크 상의 Device관리 텔레매틱스 응용 S/W 네비게이션 차량정비, 보험, 차량용 단말장치, 네비게이션S/W 차량 및 단말 관리 Car 인포테인먼트 개인화 서비스 HMI 블루투스 기반 무선 Car kit
개요 임베디드 S/W 구조도
개요 What is Kernel ? 임베디드 운영체제 커널은 응용 분야에 따라 내장형 및 소형이라는 특성에서 필요로 하는 요구사항과, 실시간적 조건이 주어지는 응용에서 필요로 하는 요구사항을 제공하는 커널 기술들로 분류할 수 있음.
개요 임베디드 운영체제 커널의 특징 ○ 범용 운영체제에 비해 비교적 작은 크기 ○ 컴포넌트 방식의 구성으로 타겟 시스템에 따라 손쉽게 구성을 달리 할 수 있는 컴포넌트 기반 운영체제 ○ 빠른 부팅, 저전력 지원, 비 디스크 방식의 운용 ○ 다양한 또는 저가의 프로세서에 대한 지원 ○ 간결한 구조에 의한 빠른 응답 ○ 메모리 기반의 파일 또는 데이터베이스 시스템
개요 임베디드 운영체제 커널 기술 ○ 실시간 멀티태스킹 지원 기술 ○ 메모리 관리 기술 ○ 임베디드 시스템용 파일 시스템 ○ 초소형 임베디드 운영체제 개발 및 이식 기술 ○ 부팅 지원 기술 ○ 시스템 구축 및 구성 기술 ○ 저전력 지원 기술 ○ 자원 관리 기술 ○ 임베디드 Java 플랫폼 기술
개요 RTOS 종류 ○ Multi Thread 모델 OS 커널과 Application이 합쳐져서 서로의 구분이 없는 하나의 큰 프로그램이 되어 작동하는 구조로서, 공통의 작업 영역(Memory)을 자유롭게 액세스 할 수 있다. OS의 크기가 작고, 비교적 작은 크기의 시스템에서 구현이 쉽고 빠르다는 장점이 있지만, 커널과 Application이 하나의 프로그램으로 동작하기 때문에 사소한 Bug가 시스템 전체를 파괴하는 단점이 있다
개요 ○ Multi Process 모델 OS 커널이나 각 Application들이 모두 독립적인 프로그램으로 동작하도록 설계되어 있다. 각 Application은 서로의 Memory가 보호되어 있기 때문에 모듈 단위의 Application 개발이나 모듈(기능)의 추가, 변경이 쉽고 안정된 시스템의 개발이 가능하기 때문에 대규모의 시스템 개발에 용이하다. 그러나 RTOS의 크기가 Multi Thread 모델에 비해 크기 때문에 작은 시스템의 개발에는 오히려 부담이 되는 단점이 있다. ※ RTOS의 두 가지 모델이 가진 서로의 장,단점을 고려하여 비교적 작고, 복잡하지 않은 기능의 시스템 개발에는 Multi Thread 모델을 사용하고, 의료기기와 같은 대규모의 복잡한 시스템 개발에는 Multi Process 모델의 RTOS를 사용하는 것이 좋다고 알려져 있다.
개요 ○ Multi Thread OS의 종류 VxWorks OSE VRTX pSOS Nucleus PLUS WindRiver사에서 판매하는 제품으로 세계 시장에서 점유율이 가장 높은 것으로 알려지고 있습니다. 많은 종류의 마이크로 프로세서를 지원하며 대부분의 상용 Chip에 대한 device Driver도 모두 지원하고 있다. OSE Enea OSE Systems에서 개발, 판매하는 RTOS로서 국내보다는 세계시장에서 훨씬 높은 인지도와 점유율을 가지고 있다. VRTX 몇 년 전만 해도 국내에서 가장 높은 시장 점유율을 가졌던 Mentor Graphics 사의 RTOS이다. 지금은 국내에서도 판매량이 줄고 있는 추세이다. pSOS Integrated Systems사에서 판매 했었으나 역시 WindRiver에서 인수 했습니다. VxWorks와 함께 세계 시장 점유율 상위를 달리고 있습니다. Nucleus PLUS Accelerated Technology 사에서 개발,판매하는 RTOS이다. 다른 RTOS들과는 달리 Full Source Code를 제공하며, 제품 당 지불하는 Royalty가 없다. 국내에서는 휴대폰 단말기와 PDA등 50여종의 제품에서 사용되고 있으며, 우리별 1호, 2호에도 탑재되어 있다. Accelerated Technology 사는 Mentor Graphics 사에 합병되었습니다.
개요 ○ Multi Thread OS의 종류 Super Task US Software 사에서 개발,판매하는 RTOS입니다. Nucleus와 마찬가지로 Source Code를 Open하며, No Royalty 입니다. US Software 사는 2000년 12월 Lantronix에 합병되었다. Micro C/OS (uC/OS) 최근에 학교를 중심으로 많이 사용하면서 널리 알려진 RTOS이다. Jean J. Labrosse라는 사람이 개발하여 배포한 작은 크기의 RTOS이며, 책을 구입하면 부록에 Source Code가 포함되는 형태로 판매되며, Royalty 역시 없다. 꾸준한 Upgrade를 통하여 많은 종류의 프로세서를 지원하고 있다. 현재는 Upgrade된 uC/OS-II 를 개발하여 배포하고 있으며, 이 책은 국내의 대형 서점에서도 구입할 수 있다.
개요 ○ Multi Process OS의 종류 QNX QNX Software Systems사에서 개발, 판매하고 있다. 국내보다는 해외에서 많이 알려져 있고 시장 점유율도 높다. UNIX와 호환이 가능 하며, 현재 비 상업용으로는 Real-Time Platform Package를 무료로 다운 받을 수 있다. OS-9 Microware사에서 개발, 판매하는 RTOS로서, 국내 보다는 세계시장에서 높은 인지도와 시장 점유율을 가지고 있다. LynxOS LinuxWorks사에서 개발, 판매하고 있는 Embedded Linux RTOS이다. UNIX와 호환이 가능하며 OS의 사이즈가 크고, 복잡하고 규모가 큰 Real-Time Application 개발에 적합하다. RTLinux Finite State Machine Labs 사에서 개발, 판매하는 Embedded Linux이다. Windows CE Microsoft에서 판매하는 Embedded Windows OS이다.
개요 ○ RTOS 비교 RTOS MAKER Royalty Policy VxWorks WindRiver Yes OSE Enea OSE Systems Maybe Yes VRTX Mentor Graphic pSOS Nucleus PLUS Accelerated Technology No Super Task (US Software) Lantronix Micro C/OS (uC/OS) Micrium QNX QNX Software Systems OS-9 Microware LynxOS LinuxWorks RTLinux Finite State Machine Labs Windows CE Microsoft
개요 ○ RTOS 비교 RTOS MAKER Royalty Policy VxWorks WindRiver Yes OSE Enea OSE Systems Maybe Yes VRTX Mentor Graphic pSOS Nucleus PLUS Accelerated Technology No Super Task (US Software) Lantronix Micro C/OS (uC/OS) Micrium QNX QNX Software Systems OS-9 Microware LynxOS LinuxWorks RTLinux Finite State Machine Labs Windows CE Microsoft
개요 Why use Mobile Programming ? ○ 휴대폰은 단순히 통화하는 기능에서 벗어나 점차 기능이 다양화됨 ○ 인터넷을 사용하는 무선인터넷으로 변화 ○ DMB, MP3, 게임 프로그램 등 엔터테인먼트 기능을 요구함 현재 정부에서는 플랫폼을 WIPI로 통일 모바일 관련 플랫폼 및 개발언어
개요 모바일 관련 플랫폼 및 개발언어 플랫폼 개발언어 수행방식 추진사 비고 KVM 자바 인터프리터(VM) LGT(썬) 서비스 키티호크 LGT(아로마소프트) SK-VM(XVM) SKT(XCE) GVM C/C++ SKT(신지소프트) MAP 바이너리(네이티브) KTF(모빌탑) 브루 KTF(퀄컴) WIPI 자바,C/C++ 무선인터넷표준화 포럼(이통 3사), TTA 국내 표준 WITOP 인터프리터(VM) SKT
개요 모바일 플랫폼 종류 ○ Brew(Binary Runtime Environment for Wireless) CDMA용 무선 장치들을 위한 미국 퀄컴사의 응용프로그램 개발용 플랫폼으로서, 원시코드가 개방되어 있다. BREW를 이용하면 CDMA 칩셋이 장착된 어떠한 핸드폰 상에서도 동작이 가능한 응용프로그램들을 만들 수 있게 된다. BREW는 응용프로그램과 칩의 운영체계 사이에서 동작하므로, 응용프로그램이 시스템 인터페이스를 코딩하지 않는 것은 물론, 심지어 무선 응용프로그램에 대한 아무런 이해 없이도 그 장치의 기능들을 사용할 수 있게 된다. BREW의 초기 버전은 CDMA에서만 가능하였지만, 그 이후의 버전은 TDMA와 GSM에서도 동작하도록 확장되었다.
개요 ○ WIPI 자바(JAVA)언어와 C/C++언어를 모두 포함하는 한국형 무선인터넷 표준 플랫폼으로서, 어떤 통신 사업자의 인터넷 콘텐츠라도 다른 사업자의 가입자가 사용할 수 있게 해주는 기술이다.
○ GVM(General Virtual Machine) 개요 ○ GVM(General Virtual Machine) 순수 국산 기술(신지소프트)로 만들어졌으며 무선인터넷 미들웨어 솔루션으로 무선망을 통하여 어플리케이션을 다운로드하여 필요한 시점에 단말기 상에서 실행할 수 있게하는 기능을 제공하는 기술이다. 기존의 무선인터넷 기술인 WAP, ME 등이 Browser 기반으로 단순한 텍스트와 제한된 이미지 제공의 한계를 가져 이용 활성화가 어려웠음에 반하여, GVM은 사용자가 필요한 어플리케이션을 자유롭게 선택한 후 다운로드하여 실행함으로써 무선 단말기의 기능을 무한하게 확장할 수 있도록 한 기술이다.
감사합니다