임베디드 시스템.

Slides:



Advertisements
Similar presentations
모바일 프로그래밍 개론 UNIT 01 로봇 SW 컨텐츠 교육원 조용수. 학습 목표 모바일 프로그래밍이란 ? Embedded System 특성 Mobile OS Hybrid and Native SDK and NDK 2.
Advertisements

Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved. 제7강제7강.
1 일시 : 2015 년 5 월 24 일 조사한 사람 : 강수연, 신예 솔 자료정리 : 김규민, 이지훈 발표자 : 2 모둠 2.
Page  1 Copyright© 2015 Hanbit Academy, Inc. All rights reserved. [ 강의교안 이용 안내 ] 본 강의교안의 저작권은 한빛아카데미㈜에 있습니다. 이 자료를 무단으로 전제하거나 배포할 경우 저작권법 136 조에 의거하여.
- 0 - 의 의의 의 목 차목 차 산학협력 교육과정 Program 추진배경 기대효과 현황 및 추진 내용 교육과정 운영 교육과정 구성 교육과정 진행 Process.
지원직무주민등록번호 - 사진 * 사진 등록을 원하시지 않는 경우 등록하지 않으셔도 됩니다. 성명 ( 한글 ) 연락처 010) -, 02) - ( 영문 국적 ( 영주권 ) ■ 한국 □ 외국 ( 국적명 : ) ( 해외국적 취득일 : 년 월 ) 현주소 학력사항.
Page 1 정비업체 가격 정보 제공 시스템 주요 내용 현 대 모 비 스현 대 모 비 스.
Page 1 Android Programming November 04 / 2009 S/W Junhyuk Jang.
J-Stream part1 (Software streaming service) ▪ 팀명 : Jukdori ▪ 팀원 : 16 th 윤병호 (PL) 15 th 송인규 16 th 김영진.
Distributed Computing Incoder Park Gui Mong(PL) Kim Byeon Jin Lee In Uk Tim OutSiders - INingyuCODER-
여성의 광장 어린이 집 www. womankids. com
Embedded S/W 기초이론 및 실습.
OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
2009년 IT인재개발원 [연수생 모집요강]
AVR.
Linux Debugging issues
Open Platform을 기반으로 한 System SW 및 Application SW 전문가
PC와 인터넷 정강수 컴퓨터 구조와 웹의 이해 PC와 인터넷 정강수
감독관 사용설명서 프로메트릭 코리아 유한회사 Version 1.1.
소프트웨어와 운영체제.
임베디드 SW 시스템 소개 - 임베디드 운영체제 - 임베디드 리눅스 - 임베디드 인터넷
임베디드 시스템 개론 8. 임베디드 시스템 개발 환경 8주차 강의 자료 Embedded System Lab.
제품 소개서 2004년 ㈜에이치씨아이랩.
모바일 소프트웨어 표준화 표준화강좌 2012년 10얼 30일 한국교통대학교 컴퓨터정보공학과 조 수 선.
리눅스를 이용한 임베디드 시스템의 기술 동향 정보통신과 2학년 B반 이승훈.
뇌를 자극하는 Windows Server 2012 R2
Windows CE 시스템 개발 환경 구축.
Windows CE 메모리 아키텍처 및 관리 서진호
사업계획서.
제 11 장 임베디드 시스템 11.1 개요 임베디드 시스템 임베디드 시스템의 구성
운영체제 (Operating Systems)
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
임베디드 운영체제 (리눅스 중심) Lecture #2.
Linux를 이용한 Embedded 장비 개발
임베디드 리눅스 시스템의 기본 개념 강의 목표 내용 임베디드 리눅스 시스템의 기본 개념과 주제 제시 1. 임베디드 시스템
2. Linux Installation Target Embedded System은 리눅스 환경을 사용한다. 이 장에서는 리눅스 설치부터, 각 설정의 의미들에 대해 이야기 한다.
Visual ESTO 안정성,편리성,성능을 한단계 높였습니다! Visual ESTO IDE/Debugger/Monitor
Raspberry Pi RaspberryPi Sejin Oh.
MicroC/OS-II 1. Miscellaneous
Double O to the I to the A+ 문무활, 유용승, 홍민정
운영체제 (OS: Operating System)
SOC, Bus, NIC and NOC.
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
1. Embedded System의 이해.
임베디드 소프트웨어 동향. 임베디드 소프트웨어 동향 임베디드 S/W 시장분류 솔루션 측면 시스템 측면 운영체제 개발도구 설계도구 테스트도구 유선통신 무선통신 정보가전 자동차제어 산업자동화 사무자동화 군사/항공우주 의료장비 솔루션 공급 업체 임베디드 S/W시장 임베디드.
운영체제 (Operating Systems) (Multi-Thread Programming)
액티브포스트 G-Suite v3.6 일반사용자 사용설명서
제 1장 시스템 소프트웨어의 개요.
홈 네트워크 시뮬레이션 정 찬 번 석 성 환.
U+ Biz 그룹웨어_사용자.
1장. 가상머신(Virtual Machine)의 소개와 설치
Packet Analyzer V (주) 이네스 닷컴.
[필독] 답지전송 방법!!! 모니터링에서 파일전송 하는것과 proctor 사이트에 백업파일을 등록 하는것을
제7강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.

운영체제의 종류 장승빈.
Ⅳ. 생식과 발생 4. 자손에게 줄 세포 만들기.
게임엔진 프로젝트 발표 상어 사냥 안 정 웅.
Your kids are Special 방과후 영어교실 신 청 서 태 안 초 등 학 교 방 과 후 영 어 교 실
임베디드 시스템 개요 Lecture #1.
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
홈 네트워크 시뮬레이션 정 찬 번 석 성 환.
USN기반의 원예 모니터링 시스템 임균섭.
Windows System Programming
국립중앙의료원 messenger User Guide Ver 3.2.
소리가 작으면 이어폰 사용 권장!.
Eclipse를 이용한 Embedded Linux 응용 프로그램 개발
1. 칭찬 및 고발제도 운영(안) 1. 목적 : 칭찬문화의 전사적 확산,전파를 통한 칭찬문화 조성 및 건전한 회사문화 형성
■ 한국 □ 외국 (국적명: ) (해외국적 취득일 : 년 월)
Presentation transcript:

임베디드 시스템

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

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

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

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

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

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

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

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

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

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

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

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

Linux 커널 소스 구조

과제 Linux 명령어 조사하기

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

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

디바이스 드라이버의 구조

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

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

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

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

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

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

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

Excalibur Architecture (1)

Excalibur Architecture (2)

A typical AMBA-based system