임베디드시스템설계 2014-1 강의자료2 [호환...

24
임베디드시스템 설계 강의자료 2 (2014년도 1학기) 김영진 아주대학교 전자공학과

Upload: others

Post on 08-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

임베디드시스템 설계 강의자료 2(2014년도 1학기)

김 영 진

아주대학교

전자공학과

Page 2: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

Outline

- 2 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

n Embedded SW

n System Program

n OS Overview

n Linux Kernel Architecture

n Developing Embedded SW

Page 3: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

n 초기의 임베디드 시스템n 16비트 이하의 마이크로 프로세서n 주로 어셈블리 언어 및 펌웨어(firmware)를 이용

n 최근의 임베디드 시스템n 하드웨어의 고집적화 및 저가화n SoC 기술의 발전n 32비트 이상의 마이크로 프로세서n 운영체제를 기반n 고급 언어를 이용한 프로그래밍n 네트워킹 및 멀티미디어 기능 등 복잡한 소프트웨어를 추가하여

고부가가치 지향

임베디드 시스템의 변천

- 3 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

Page 4: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

n 임베디드 시스템을 구성하는 소프트웨어

n 임베디드 운영체제, 특정 응용에 적용하기 위한 미들웨어, 응용 S/W를개발하기 위한 개발도구, 응용 소프트웨어 등으로 이루어짐

n 다양한 디지털 제품에 내장되어 하드웨어의 제어, 네트워크, 멀티미디어, 인터넷, 게임, 인공지능, 유비쿼터스 컴퓨팅 등 기본 기능및 다양한 부가 기능을 제공함으로써 제품의 경쟁력과 부가가치를높여줌

n 저렴한 가격, 소형화, 저전력 소비, 고신뢰성, 하드웨어의 효율적 관리

임베디드 소프트웨어

- 4 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

Page 5: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

일반S/W와 임베디드 S/W 비교

- 5 - Young-Jin Kim

구분 일반 S/W 임베디드 S/W

목적 S/W 자체가 제품 H/W 제품의 부가가치를 올리기 위한 수단

시장특성 정량적인 시장크기 추정 가능H/W 제품 시장에 포함되어,

시장크기의 정확한 추정이 어려움

주도업체 전문 S/W 업체 Device 업체 ( 별도의 전문 S/W 업체 미약 )

개발자 측면

요구 사항

프로그래밍 기술

(S/W 분야 지식)

Embedded System S/W 경험 필요

(H/W 분야 및 S/W 분야 지식)

적용

제품

표준화된 H/W 및 OS ( PC )

풍부한 H/W 자원

다양한 H/W 및 OS ( DTV, HHP, …)

제한된 H/W 자원

개발 환경 보편화된 개발 도구 제품에 따라 천차만별, 열악한 개발 도구

중점

고려 사항응용 유연성, 인터페이스 디자인 실시간성, 신뢰성, 제품 최적화

임베디드시스템 설계 2014년도 1학기

(출처: 명지대 류연승 교수님 강의자료)

Page 6: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

소프트웨어 계층

- 6 - Young-Jin Kim

하드웨어

펌웨어

운영체제

응용프로그램(여러 개)

데스크탑 컴퓨터서버 컴퓨터

하드웨어

펌웨어

운영체제

응용프로그램(하나 또는 여러 개)

복잡한 임베디드 컴퓨터

하드웨어

펌웨어 + 응용프로그램(하나)

간단한 임베디드 컴퓨터

임베디드시스템 설계 2014년도 1학기

(출처: 명지대 류연승 교수님 강의자료)

Page 7: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

지능형 로봇용 임베디드 S/W 구성 예

- 7 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

URC: Ubiquitous Robotic Companion

Page 8: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

시스템 프로그램

- 8 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

출처: 단국대 최종무 교수님 강의자료

Page 9: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

시스템 프로그램

n 시스템 프로그램n Hardware와 긴밀하게 연관 (HW관리)n 응용이 쉽게 수행될 수 있는 환경 제공(Interface 제공)

n 분류

- 9 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

출처: 단국대 최종무 교수님 강의자료

Page 10: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

시스템 프로그램

- 10 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

출처: 단국대 최종무 교수님 강의자료

Page 11: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

What is an Operating System?

n A program that acts as an intermediarybetween a user of a computer and the computer hardware

n Operating system goals:n Execute user programs

n Make solving user problems easier

n Make the computer system convenient to use

n Use hardware in an efficient manner

- 11 - Young-Jin Kim

UserOSHW

임베디드시스템 설계 2014년도 1학기

Page 12: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

Operating System Structure

- 12 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

Page 13: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

운영 체제의 기능

n 운영 체제의 기능n 인터페이스, 자원 관리, 자체 관리 기능n 인터페이스

n 사용자와 운영체제, 운영체제내 서브시스템 간

n 자원 관리n 프로세스n 메모리n 파일n 네트워크n 장치

n 자체 관리n 부팅 및 초기화n 시스템 생성 및 튜닝n 오버레이(overlay) 및 버퍼 관리n 인터럽트 처리

- 13 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

Page 14: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

운영 체제 관점에서 본 컴퓨터 시스템

- 14 - Young-Jin Kim

사용자

서비스

자원

관리

자체

관리

하드웨어, 소프트웨어 자원

명령 해석기 (shell)

시스템 호출

전통적

의미의

운영 체제

광범위

운영 체제

임베디드시스템 설계 2014년도 1학기

Page 15: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

n Real Time OS (RTOS): real-time constraint (deadline)를만족해야함n VxWorks: HONDA의 Asimo에 사용n pSOS: 삼성전자 휴대폰에 사용, VxWorks와 통합n VRTX, uC/OSII

n 기타 Embedded OSn Windows CE

n Intel x86 계열 지원, MS의 각종 환경 지원, Pocket PC

n 3Com Palmn Motorola 드래곤볼 칩 기반의 운영체제, Sony CLIE(PDA)

n Symbiann 모바일 기기에 사용할 목적으로 개발된 운영체제로 Android이전에

smartphone에 많이 사용됨

n Embedded Linuxn Google Androidn Apple iOS

Embedded OS

- 15 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

Page 16: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

n Linux를 저성능의 프로세서와 소용량의 메모리를 가진임베디드 시스템용으로 개발

n 특징n Embedded Linux Source의 공개성: OS, Applications

n 경제성

n 안정적이고 검증된 커널로 지속적인 upgraden 개발자 및 전문가 집단: http://www.tldp.org/, http://kldp.org/

n 다양한 개발 환경을 제공n Cross-compiler, Debugger, GUI 등

n 다양한 CPU에 포팅가능

n 많은 장치의 드라이버를 제공: JTAG, PCMCIA, LCD, I/O, IDE

Embedded Linux

- 16 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

Page 17: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

리눅스 커널의 구조 (1)

- 17 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

Page 18: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

리눅스 커널의 구조 (2)

- 18 - Young-Jin Kim

Kernel

task

System call interface

File system

Block Driver

task task

Char Driver

DDI (device driver interface)

task

Network Driver

LED keyboard Hard disk CD-ROM ethernet

User application

level

Kernel level

Hardware level

임베디드시스템 설계 2014년도 1학기

Page 19: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

n 디바이스 드라이버 구성도

File System

Buffer Cache

Character Block

Device Drivers

Device Interface

Hardware(hdd, flash, printer etc)

User ProgramUser Level

Kernel level

Hardware level

Network

Network

SubsystemBSD socket

Transport (TCP,UDP)

Network(IP)

Device Driver

- 19 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

Page 20: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

Device Driver 종류와 특징

드라이버종류

설 명

문자드라이버

디바이스를 파일처럼 취급하고 접근하여 직접 읽기/쓰기를 수행데이터 형태는 스트림 방식으로 전송Eg. 콘솔, 키보드, 시리얼 포트 드라이버등

블록드라이버

디스크와 같이 파일 시스템을 기반으로 일정한 블록 단위로 데이터 읽기/쓰기를 수행Eg. 하드 디스크, ODD 드라이버 등

네트워크드라이버

네트워크의 물리 계층과 프레임 단위의 데이터를 송수신Eg. 이더넷 디바이스 드라이버(eth0)

- 20 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

Page 21: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

디바이스 드라이버의 동작과정

드라이버의 동작(read/write)

커널 내 모듈 적재

디바이스 열기

디바이스 닫기

커널 내 모듈 제거

디바이스 열기

디바이스 닫기

Write( ); to Dev

Read ( ); to Dev

드라이버의 동작(read/write)

Dev_Write( );

Dev_Read ()

실패시

종료

2.

return

3. call

4.

return

5. call

6.

return

드라이버테스트 프로그램

종료

1. call

(커널 프로그램) (사용자 프로그램)

디바이스 드라이버 흐름도

- 21 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

Page 22: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

임베디드 소프트웨어 개발 환경

- 22 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

JTAG

Serial/Ethernet/JTAG/USB

Serial/Ethernet

Target system Host system

ICE/ICD

n 교차 개발 환경 (Cross Development Environments)n Why? à 내장형 시스템의 자원 제약

n 전체 시스템 구성

Page 23: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

임베디드 소프트웨어 개발 방법

n Cross Compilen Host시스템(e.g., x86 머신)에서 Target시스템(e,g., ARM)용

컴파일러로 실행(바이너리) 코드를 만들어 주는 것n 결과의 실행 코드는 Target시스템에서만 실행 가능n 명령어나 데이터 처리방법이 달라짐

n 개발 시스템의 목적언어로 된 프로그램은 실행 불가능n 교차 개발 환경

n Host: PC. Windows or Linuxn Cross compiler + Target용 library + download utility

n Target: Embedded microprocessorn Embedded Linux에서 download후 execution

n 실행 프로그램의 결과 확인은 Target 시스템으로 다운로드해서 실행n 또는 Target 시스템 시뮬레이터에 의해 실행

- 23 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기

Page 24: 임베디드시스템설계 2014-1 강의자료2 [호환 모드]ael.chungbuk.ac.kr/lectures/undergraduate/임베디드SW... · 2018-10-04 · 임베디드시스템설계2014년도1학기

임베디드 시스템 프로그래밍 고려 사항

n 신뢰성 및 안정성n HW와 SW의 긴밀하고 정확한 결합 기반

n C 언어의 기본에 대한 상세하고 정확한 지식

n 대상 CPU의 구조, 동작 원리 및 어셈블리어

n 시스템의 메모리 구성

n 최적화의 필요성n 프로그램 크기 최소화 (제한된 메모리 크기)

n 프로그램 실행 속도 최대화 (제한된 CPU 성능)

n 전력 소모 최소화 (제한된 전원)

- 24 - Young-Jin Kim임베디드시스템 설계 2014년도 1학기