• 검색 결과가 없습니다.

(Embedded System Programming) ESP30076 임베디드시스템프로그래밍

N/A
N/A
Protected

Academic year: 2022

Share "(Embedded System Programming) ESP30076 임베디드시스템프로그래밍"

Copied!
20
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

ESP30076 임베디드 시스템 프로그래밍 (Embedded System Programming)

조 윤 석 전산전자공학부

Module 1: Introduction to the Course &

Embedded System

(2)

 강좌 소개

 임베디드 시스템의 이해

– 임베디드 시스템에 대한 기본 개념 이해하기 – 임베디드 시스템의 구성요소 알아보기

– 임베디드 시스템의 활용 분야 알아보기

강의 목표

(3)

 리눅스 환경하에서 임베디드 시스템 개발에 필요한 환경 구축

 임베디드 시스템 구동에 필요한 기본 이미지 설치 하는 방법

 커널 프로그래밍에 대한 이해

 문자 디바이스 드라이버 작성법

 프레임버퍼 프로그래밍하는 방법

강의 목표

3

(4)

 교재

– 조윤석, 홍성현, “Achro-210T 보드를 활용한 임베디드 리눅스

시스템의 이해와 활용”, 홍릉과학출판사, 2014.8

 선수 학습 내용

– 선수과목: C 프로그래밍 (필수)

– 유닉스 또는 리눅스 기본 사용법 (권장) – C++ 또는 자바 프로그래밍 (권장)

 실습환경

– 임베디드 시스템 (하드웨어)

• HUINS Achro 210T

– 개발 운영체제

• 리눅스(Linux) 2.6.32 (Ubuntu 10.04LTS)

선수학습 내용 및 실습환경

(5)

 개발환경 구축

– Virtual PC 설치, Linux 설치, 네트워크 설정, 툴체인 설치 – Linux 파일 시스템 구성 및 리눅스 사용법

 임베디드 시스템 보드 구성하기

– 플래시 메모리 구성하기

• 부트로더, 커널, 리눅스파일시스템

– 부트로더 이해 및 기능 추가

 커널 프로그래밍

– 디바이스 드라이버의 개념 및 작성하는 방법 – 문자 디바이스드라이버 작성 및 커널 등록

 응용프로그래밍

– 프레임버퍼 프로그래밍

강좌 구성

5

(6)

 시스템이란 이미 계획된 순서 및 조건에 따라 일정 규칙으로 동작하는 것

– 소프트웨어적 요소만을 이야기할 수도 있으나 일반적으로 는 하드웨어까지 같이 포함

 시계 시스템(Watch System)

– 시간을 표시해주는 시스템

– 구성요소: 초침, 분침, 시침, 시계 줄, 건전지 등

 세탁기 시스템(Laundry Machine System)

– 자동 세탁 시스템

– 구성요소: 패널, 선택 스위치, 세탁 봉, 내부 수위 조절센서, 솔레노이드 밸브, 다양한 제어 장치 등

System

(7)

 컴퓨터 하드웨어와 소프트웨어가 시스템의 중요 요 소로 내장되어 특정 제품이나 여러 응응 분야에 특 화된 독립시스템으로 동작하거나 큰 시스템의 일부 로 동작함

– 임베디드 시스템은 하드웨어 구성이 고정되어 있고 소프 트웨어도 하드웨어 안에 내장된 상태로 출하됨

– 사용자로부터의 시스템 접근을 제한하여 안정성을 보장함 – 즉, 사용자가 PC처럼 운영체제를 자유자재로 바꾸거나 재

구성이 불가능하며 응용프로그램도 하드웨어에 내장된 상 태로만 사용이 가능

What is the Embedded System?

(8)

 임베디드 시스템 (또는 내장형 시스템)은

– 컴퓨터 하드웨어와 소프트웨어가 시스템의 중요요소로서 내장되어 (embedded), 특정 제품 또는 응용분야의

dedicated된 독립 시스템으로 동작하든지, 또는 큰 시스 템의 일부로 동작함

– 대부분의 임베디드 시스템은 하드웨어 구성이 고정되어 있고 소프트웨어도 하드웨어 안에 내장된 상태로 공장에 서 출하되어 사용자의 시스템 접근을 막음. 안정성 보장

• 사용자가 운영체제를 바꾸거나 재구성 불가하며 응용프로그램도 하드웨어에 내장된 상태로만 사용이 가능

What is the Embedded System?

(9)

 데스크톱 환경

– 시스템이 오동작하는 부분에 대해서는 임베디드 시스템보 다 덜 민감함

– 서버환경의 경우 하드웨어 이중화 및 고장방지능력 (fault tolerance) 기법 등을 도입하여 안정성을 추구

 임베디드 환경

– 임베디드 시스템에서는 안정성 부분이 매우 중요

– 임베디드 시스템이 안정적으로 동작하도록 시스템에 사용 되는 코드는 확실하게 검증된 코드(production code)를 사용

– 임베디드 시스템은 실시간(real-time) 처리가 가능해야 함

Desktop VS Embedded

9

(10)

 Embedded System 발전

– 1950~1960년대: 군사목적용 및 통신장비에 국한되어 사용 – 1970년대: 마이크로프로세서의 개발로 가전제품으로 확대

– 1990년 이후 : 이동통신 시스템 및 정보기기 모바일 시스템에 폭 넓게 활용

– 통신 및 방송기술 진보와 소비자 요구에 의해 H/W뿐만 아니라 S/W 의 도입이 계속적으로 증가

Embedded System의 발전

(11)

 산업별 Embedded System의 발전

Embedded System의 발전

11

(12)

 하드웨어(Hardware)

– 마이크로프로세서(또는 마이크로컨트롤러)

• 프로그램의 명령어 처리를 담당

– 메모리

• 프로그램 및 데이터를 저장하는 공간(램, 플래시 메모리 등)

– 주변 장치

• 키 버튼, 터치스크린, LCD, 사운드코덱, UART, 다양한 센서류 등

 소프트웨어(Software)

– 시스템 소프트웨어

• 운영체제(OS)

• 디바이스 드라이버(Device Driver)

Embedded System의 구성요소

(13)

 임베디드 시스템에서 사용하는 프로세서는 기능의 복잡도 및 시스템의 크기 면에서 매우 다양

 기능에 따른 분류

– 마이크로프로세서(Microprocessor)

• 컴퓨터의 중앙처리장치를 단일 IC(Integrated Circuit) 칩에 집적시 켜 만든 반도체 소자

– 마이크로컨트롤러(Microcontroller)

• 범용 목적의 마이크로프로세서의 일반 산술, 논리 요소뿐 아니라 데이터 저장을 위한 읽기 쓰기 메모리, 코드 저장을 위한 플래시 와 같은 전용 메모리나 EEPROM, 주변 기기, 입출력 인터페이스 등의 부가 요소로 구성

Processor of Embedded System

13

(14)

 명령어의 복잡도에 따른 분류

– CISC (Complex Instruction Set Computer)

• 명령어가 그 필요에 따라 다양한 크기를 가진다.

• 복잡한 기능을 하나의 명령어로 수행할 수 있다.

• 기본적인 기능은 같더라도 부가적인 요소에 의해 여러 개의 명령 어를 가진다.

– RISC (Reduced Instruction Set Computer)

• 단순한 명령어 세트를 지원

• 사용자 명령을 해독하고 실행하는 것을 전적으로 하드웨어 회로 에 의존

• 처리속도를 높이기 위해서 필수적으로 파이프라인 처리기법을 사 용

• 명령어 종류가 적고 간단하여 사용자 프로그램이 길어짐

Processor of Embedded System

(15)

 명령어의 복잡도에 따란 분류

Processor of Embedded System

15

CISC와 RISC 프로세서 비교

CISC 프로세서 RISC 프로세서

명령어 (instruction) 복잡 단순

명령어 효율 낮음 높음

Relative Program Size 130~140 160~180

임베디드 시스템 적용 적합성 적합하지 않음 매우 적합

(16)

 임베디드 시스템 소프트웨어의 특징

– 실시간 처리 지원

• 실시간 처리가 지원되지 않으면 큰 손실이나 위험을 초래할 수 있는 비행제어 시스템 및 항법 시스템 등에서 실시간 처리를 지원

– 고신뢰성

• S/W 오작동이나 불시의 작동 중지 등으로 심각한 결과를 초래할 수 있는 시 스템에서 고도의 신뢰성이 요구됨

– 최적화 기술 지원

• 제한된 H/W 자원 때문에 임베디드 S/W는 경량화, 저전력 지원, 자원의 효율 적 관리 등의 측면에서 H/W에 최적화되는 기술의 지원 필요

– 특정 시스템 전용

• 특정 시스템의 실행을 목적으로 개발되는 S/W

– 네트워크 및 멀티미디어 처리기능 지원

• 단독형 시스템뿐만 아니라 유무선 네트워크를 통한 연결이 가능해야 함

• 멀티미디어 정보를 처리하는 기술이 필요

– 다양한 솔루션과 개발 도구 필요

• 다양한 기종과 규격의 마이크로프로세서에 최적화된 별도의 솔루션이 동시에 제공되어야 함

Software of Embedded System

(17)

 임베디드 운영체제의 종류

– VxWorks

• 대표적인 경성 운영체제로 화성 착륙선 패스파인더의 운영체제로 사용되어 유명해진 운영체제

– VTRX

• 통신장비와 네트워크 장비뿐만 아니라 자동차 엔진 제어시스템과 발전소 모니터링 시스템 등에 사용되고 있는 경성 RTOS

– Nucleus

• 일반적인 휴대전화, 셋톱박스, PMP 등과 같은 임베디드 기기에서 사용이 가능한 실시간 운영체제

– pSOS

• 각종 통신장비와 네트워크 장비에서 사용된 경성 RTOS

• 1982년 ISI사에 만들어진 실시간 운영체제

Software of Embedded System

17

(18)

 임베디드 운영체제의 종류

– μC/OS-II

• 소스가 공개된 RTOS이며, 일부 상용 운영체제처럼 이식성이 좋음

– Window CE

• Win32 API를 지원하는 실시간 운영체제로 Microsoft에 의해 개발 된 운영체제

– 임베디드 리눅스 (Embedded Linux)

• PC기반의 리눅스를 임베디드 기반에서 사용할 수 있도록 만든 리 눅스

• 오픈 소스를 통해서 다양한 플랫폼에 이식할 수 있으며, 무료로 사용할 수 있음

Software of Embedded System

(19)

 소규모 임베디드 시스템

– 보통 한 개의 8비트 또는 16비트 마이크로컨트롤러 수준의 하드웨어 와 소프트웨어로 구성

– 소프트웨어 개발 시 어셈블러 또는 크로스 어셈블러를 사용하고 C언 어를 많이 사용

– 자판기, 마우스, 멀티태스킹 장난감, 무선리모콘, 혈압측정기 등

 중규모 임베디드 시스템

– 한 개 또는 여러 개의 16비트 또는 32비트의 마이크로컨트롤러 또는 DSP, RISC 수준에서 설계됨

– 소프트웨어는 주로 실시간 운영체제(RTOS)에 기반하여 개발함 – 하드웨어 설계 시 IP를 많이 사용

– 라우터, ATM, PDA, 게임기, 뮤직시스템, TCP/IP 프로토콜 스택 등

 고성능 임베디드 시스템

– 다수의 하드웨어와 복잡한 소프트웨어들로 구성

– 이러한 시스템을 설계하려면 하드웨어와 소프트웨어를 함께 설계할 수 있는 능력이 요구되며 최첨단 기술이 필요

– 고속네트워킹시스템, 기가 비트율의 암호화 시스템 등

Embedded System의 분류

19

(20)

 모바일 분야

– MP3, PDA, PMP, 휴대폰 등

 가전 분야

– 셋톱박스, 게임기, 세탁기, 전자레인지, TV 등

 홈오토메이션 분야

– 마이크로프로세서 또는 마이크로컨트롤러를 내장하여 사 람이 해야 할 일을 대신 수행하거나 네트워크를 통해 서 로 정보를 주고 받으며 모니터링 하거나 관리하는데 활용

Embedded System의 활용 분야

참조

관련 문서