Maker 오해와 진실

64
Maker 오해와 진실 NEX-D 아카데미 1차 : Tech : 임베디드 시스템

Transcript of Maker 오해와 진실

Page 1: Maker 오해와 진실

Maker�

오해와 진실

NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템

Page 2: Maker 오해와 진실

소개

NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템

Page 3: Maker 오해와 진실

발표자 소개

유 명 환 [email protected]

• 엑세스 주식회사 연구소장

• 미래부 소프트웨어 마에스트로 멘토

• 오픈스택 한국 커뮤니티 네트워크 분과장

• 오픈소스포럼 페이스북 그룹지기

• 만물상(IoT)�페이스북 그룹지기

• 주로 서울시 구로동에 서식

• 현재 ARM�프로세서 기반 클라우드 서버 및 사물인터넷 관련 프로젝트 진행 중

• 국내 최초 납땜 가능한 IoT�해커톤 개최 :�드림엔터 IoT�해커톤 (2014.12.20~21)

NEX-D�아카데미 1차

Page 4: Maker 오해와 진실

오픈소스포럼 소개

https://www.facebook.com/groups/ossforum/

NEX-D�아카데미 1차

Page 5: Maker 오해와 진실

만물상(IoT) 소개

https://www.facebook.com/groups/manmulsang/

NEX-D�아카데미 1차

Page 6: Maker 오해와 진실

드림엔터 IoT�해커톤 대회NEX-D�아카데미 1차

2014.12.20 ~ 21

Page 7: Maker 오해와 진실

눈에 띄는 단어들

NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템

Page 8: Maker 오해와 진실

여러분들 눈에 띄는 단어들NEX-D�아카데미 1차

Maker IoT3D Printer

Arduino

Raspberry Pi

Embedded

Wearable

Page 9: Maker 오해와 진실

여러분들 눈에 띄는 단어들NEX-D�아카데미 1차

Maker IoT3D Printer

Arduino

Raspberry Pi

Embedded

Wearable

Page 10: Maker 오해와 진실

사물인터넷 이란?

NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템

Page 11: Maker 오해와 진실

사물인터넷 이란?

사물 Things 인터넷 Internet

+ =사물인터넷 Internet�of�Things

사물(Things)이 인터넷(Internet)에 접속하기 위한 기술

NEX-D�아카데미 1차

Page 12: Maker 오해와 진실

사물인터넷 이란?

인터넷에 연결되는 사물이 늘어나는 속도를

물리적 확장 속도가 따라잡을 수 없다!

NEX-D�아카데미 1차

Page 13: Maker 오해와 진실

사물인터넷 이란?

클라우드 기반 가상 서버

NEX-D�아카데미 1차

Page 14: Maker 오해와 진실

사물인터넷 이란?

<데이터 분석>

방안 온도 섭씨 OO�도에

방안 습도 OO�%�일 경우

잠을 잘 때 O 번 뒤척임

<데이터 활용>

최적의 수면을 위해 방안 온도와 습도를

자동으로 제어

NEX-D�아카데미 1차

Page 15: Maker 오해와 진실

사물인터넷 이란?

사물인터넷 (IoT)

클라우드 (Cloud)

빅데이터 (Big�Data)

인터넷 3대 신산업

NEX-D�아카데미 1차

Page 16: Maker 오해와 진실

사물인터넷 이란?

사물인터넷 Internet�of�Things

1.�사물이 똑똑해진다!

NEX-D�아카데미 1차

Page 17: Maker 오해와 진실

사물인터넷 이란?

사물인터넷 Internet�of�Things

1.�사물이 똑똑해진다!

2.�사람이 편리해진다!

안전해진다!

즐거워진다!

NEX-D�아카데미 1차

Page 18: Maker 오해와 진실

사물인터넷 이란?

Ubiquitous�Computing

NEX-D�아카데미 1차

Page 19: Maker 오해와 진실

사물인터넷,

왜 뜨는가?

NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템

Page 20: Maker 오해와 진실

사물인터넷 역사

센서 네트워크

USN

Ubiquitous�Sensor�Networks

사물지능통신

M2M

Machine�to�Machine

NEX-D�아카데미 1차

Page 21: Maker 오해와 진실

사물인터넷,�왜 뜨는가?

사물인터넷의 전제 조건

1.�사물이 24시간 내내 인터넷에 접속할 수 있어야 한다!

:�USN,�M2M�시절엔 사물이 인터넷에 접속하려면 비용(Cost)이 많이 필요했다!

2.�사람도 24시간 내내 인터넷에 접속해 있어야 한다!

:�USN,�M2M�시절엔 사람이 인터넷에 접속하려면 컴퓨터가 필요했다!

NEX-D�아카데미 1차

Page 22: Maker 오해와 진실

사물인터넷,�왜 뜨는가?

사물인터넷의 전제 조건

1.�사물이 24시간 내내 인터넷에 접속할 수 있어야 한다!

:�사물이 인터넷에 접속하기 위한 비용(Cost)이 점점 내려가고 있다!

2.�사람도 24시간 내내 인터넷에 접속해 있어야 한다!

:�스마트 폰의 등장 이후 사람은 24시간 내내 인터넷에 접속해 있다!

NEX-D�아카데미 1차

Page 23: Maker 오해와 진실

사물인터넷,�왜 뜨는가?

Things GatewayEnterprise

Server

USN, M2M

NEX-D�아카데미 1차

Page 24: Maker 오해와 진실

사물인터넷,�왜 뜨는가?NEX-D�아카데미 1차

Page 25: Maker 오해와 진실

사물인터넷,�왜 뜨는가?

Things GatewayEnterprise

Server

IoT

de facto

NEX-D�아카데미 1차

Page 26: Maker 오해와 진실

Maker�vs�Embedded

NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템

Page 27: Maker 오해와 진실

MakerNEX-D�아카데미 1차

Page 28: Maker 오해와 진실

MakerNEX-D�아카데미 1차

Maker�는 “잉여의 문화”

즉,�“시간”�과 “비용”�에 구애 받지 않는다!

Page 29: Maker 오해와 진실

Embedded�SystemNEX-D�아카데미 1차

Embedded�는 “비용의 공학”

즉,�“시간”�과 “비용”�에 상당한 제약을 받는다!

Page 30: Maker 오해와 진실

Embedded�SystemNEX-D�아카데미 1차

Embedded System Embedded Software

PC Printer

Purpose General Specific

OptimalSpec.

X O

ExtensibleSpec.

O X

PCSW Engineer

PrinterSW Engineer

Target(Service)Application

(Service)Appliance

StartingPoint

When CPU isAlive

When CPU isDead

ProgrammingLanguage

C, C++, Java,Script Languages,…

C

Key PointService Protocol,(OS) Library, API,File Management

CPU Protocol,Address, Bit Operation,Memory Management

Page 31: Maker 오해와 진실

Embedded�SW�특징NEX-D�아카데미 1차

임베디드SW

CPU�바로 위에서 실행되는 SW�è 무한루프

CPU에 의해 시작되는 SW�è Header�無

디바이스를 제어하는 SW�è 레지스터 설정

임베디드 SW�=�회로도 +�데이터시트 +�소스

Page 32: Maker 오해와 진실

임베디드 시스템 성공 여부?NEX-D�아카데미 1차

임베디드 시스템 성공의 50%�이상을

“설계” 가 좌우한다!

Page 33: Maker 오해와 진실

임베디드 플랫폼

NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템

Page 34: Maker 오해와 진실

임베디드 플랫폼NEX-D�아카데미 1차

Page 35: Maker 오해와 진실

임베디드 플랫폼NEX-D�아카데미 1차

Page 36: Maker 오해와 진실

플랫폼 (1)�:�CPU

NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템

Page 37: Maker 오해와 진실

플랫폼 구성요소 (1)�:�CPUNEX-D�아카데미 1차

CPU = CPU Core + CPU Peripheral

— CPU Core : 연산 처리를 담당— CPU Peripheral : (연산 처리 결과에 따른) H/W 제어를 담당

마이크로프로세서(Microprocessor) 마이크로컨트롤러(Microcontroller)

CPU Core

CPU Core

CPUPeripheral

CPUPeripheral

Page 38: Maker 오해와 진실

플랫폼 구성요소 (1)�:�CPUNEX-D�아카데미 1차

hello.chello.c

hello.hexhello.hexBSSBSS

STACKSTACK

. . . . . .

Loader

CPUMemory

Latch

Register Bank

ALU

Reg.

Reg.

Reg.CPU I/O Pin

CPU Core CPU Peripheral

LED

DATADATA

TEXTTEXT

Compiler

11

22

33

Page 39: Maker 오해와 진실

플랫폼 구성요소 (1)�:�CPUNEX-D�아카데미 1차

8051 Core8051 Core

PIC Core

AVR CoreAVR Core

8비트 기반의 SoC(System on Chip) : ex) CC2430 = 8051 + CC2420

8비트 범용 프로세서 시장 장악

--> ISP(In-System Programming), JTAG support--> Open Source Cross-Compiler(GCC)--> RTOS(Real-Time OS) support :

ex) uC/OS-II, TinyOS, Nano Qplus, FreeRTOS

C 언어를 가장 잘 지원해주는 프로세서!

8-bit CPU8-bit CPU 16-bit CPU 32-bit CPU32-bit CPU

Page 40: Maker 오해와 진실

플랫폼 구성요소 (1)�:�CPUNEX-D�아카데미 1차

ARM CoreARM Core PPC CorePPC Core MIPS CoreMIPS Core x86 Corex86 Core

ARM7 CoreARM7 Core

ARM9 CoreARM9 Core

ARM11 CoreARM11 Core

AU1200 CPU

AU1250 CPU

POS, Kiosk TerminalPOS, Kiosk Terminal

Net Book (ATOM)Net Book (ATOM)

— PMP(Portable Multimedia Player)— STB(Set Top Box)

16비트를 대신할 저가형 32비트 솔루션

Cortex-M3

— 저전력, 확장성 등을 앞세워 32비트 시장을 점령— PC와 마찬가지로 멀티코어(Multi-Core) 등장

— PC와 유사한 고 성능 + DSP 기능 추가— 범용 운영체제(OS) 시장의 견인차 역할 : ex) iPhone, RAZR2

Cortex-A8

Page 41: Maker 오해와 진실

플랫폼 구성요소 (1)�:�CPUNEX-D�아카데미 1차

Page 42: Maker 오해와 진실

플랫폼 구성요소 (1)�:�CPUNEX-D�아카데미 1차

Page 43: Maker 오해와 진실

플랫폼 구성요소 (1)�:�CPUNEX-D�아카데미 1차

Page 44: Maker 오해와 진실

플랫폼 구성요소 (1)�:�CPUNEX-D�아카데미 1차

Page 45: Maker 오해와 진실

플랫폼 (2)�:�OS

NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템

Page 46: Maker 오해와 진실

플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차

OS를 왜 써야만 하는가?

— 첫 번째 이유: 같은 자원에 동시 접근하려는 태스크가 많을 경우— 두 번째 이유: 우선순위가 확실하게 보장되어야 하는 경우

운영체제(OS)

非 실시간 운영체제(Non-RTOS) 실시간 운영체제(RTOS)

¡ Linux, Windows, Windows CE¡ Multi-Process¡ 커널 + 파일 시스템 + TCP/IP 프로토콜 스택 = Heavyweight¡ 주로 응용 프로그램이 많이 필요한 경우에 사용

¡ VxWorks, pSOS, eCOS, MicroC/OS-II, TinyOS¡ Multi-Thread¡ 커널 (+ 파일 시스템 + TCP/IP 프로토콜 스택) = Lightweight¡ 주로 정확한 시간 제어가 필요한 경우에 사용

“Real-Time” : 즉시, 대기 시간이 없는ð 원하는 시간 내에 원하는 결과를 얻을 수 있다!

Page 47: Maker 오해와 진실

플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차

운영체제(OS)

非 실시간 운영체제(Non-RTOS) 실시간 운영체제(RTOS)

void task_start(void *data){

......for (;;){

......}

}

int main(void){

OSInit();

OSTaskCreate(task_start, (void *)0, (void *)&task_start_stk[OS_TASK_DEF_STK_SIZE - 1],0);

OSStart();

return 0;}

int sum(int a, int b){

return (a + b);}

int main(void){

int a = 10, b = 20;int sum;

sum = sum(a, b);

printf(“sum = %d \n”, sum);

return 0;}

Page 48: Maker 오해와 진실

플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차

Firmware, RTOS System Non-RTOS System

FirmwareFirmware User App.User App. FirmwareFirmware

User ApplicationUser Application

OS (Kernel)OS (Kernel)

Hardware (Device)Hardware (Device)Hardware (Device)Hardware (Device)

Page 49: Maker 오해와 진실

플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차

Page 50: Maker 오해와 진실

플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차

¡ Linux, Windows¡ 프로세스(Process)들마다 독립된 메모리 영역¡ 프로세스의 生死 여부가 다른 프로세스에게 영향을 미치지 않는다!¡ User Level 영역과 Kernel Level 영역으로 구분된다!

¡ VxWorks, pSOS, eCOS, MicroC/OS-II, TinyOS¡ 쓰레드(Thread)들이 일부 영역(Data, BSS)을 서로 공유¡ 쓰레드의 生死 여부가 다른 쓰레드에게 영향을 미친다!¡ User, Kernel Level 영역의 구분이 없다!

Multi-Process (Non-RTOS) Multi-Thread (RTOS)

Process

“Text” Section

“Data” Section

“BSS” Section

………“Stack” Section

Process

“Text” Section

“Data” Section

“BSS” Section

………“Stack” Section

Process

“Text” Section

“Data” Section

“BSS” Section

………“Stack” Section

Process

“Data” Section

“BSS” Section

………………………………

“Text” Section “Text” Section“Text” Section

“Stack” Section “Stack” Section“Stack” Section

Task1 Process Task2 Process Task3 Process Task1 Thread Task2 Thread Task3 Thread

Page 51: Maker 오해와 진실

플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차

RTOS�의 한계

Page 52: Maker 오해와 진실

플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차

Page 53: Maker 오해와 진실

플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차

Page 54: Maker 오해와 진실

플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차

Page 55: Maker 오해와 진실

플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차

Paradigm Shift !!!

Page 56: Maker 오해와 진실

플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차

Page 57: Maker 오해와 진실

플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차

Paradigm Shift !!!• 작은 플래시 용량에 최적화 된 BSP

• 최소한의 기능만 보유한 커널

• 모든 SW는 전용 컴파일러로 별도 빌드 후 포팅

• 넉넉한 SD�카드 기반의 범용 운영체제 :�ex.�Debian,�Ubuntu

• PC�기능의 대부분을 제공하는 커널

• 모든 SW는 PC�와 동일한 방법으로 개발 혹은 설치

:�ex.�$�sudo apt-get�install�gimp

Page 58: Maker 오해와 진실

플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차

Paradigm Shift !!!

특정 임베디드 시스템

범용 시스템

Page 59: Maker 오해와 진실

플랫폼 (3)�:�Tool

NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템

Page 60: Maker 오해와 진실

플랫폼 구성요소 (3)�:�ToolNEX-D�아카데미 1차

Page 61: Maker 오해와 진실

플랫폼 구성요소 (3)�:�ToolNEX-D�아카데미 1차

# include <stdio.h>

int main(void){

printf(“Hello\n”);

return 0;}

# include <stdio.h>

int main(void){

printf(“Hello\n”);

return 0;}

a.out (Executable ELF)a.out (Executable ELF)gcc (GNU C Compiler)

hello.o (Relocatable ELF)hello.o (Relocatable ELF)

hello.c (C Source Code)

컴파일

링킹

� # 처리

‚ C 문법 검사

� 라이브러리 호출 루틴 추가

‚ CPU, 메모리 등 정보 추가

Page 62: Maker 오해와 진실

플랫폼 구성요소 (3)�:�ToolNEX-D�아카데미 1차

/** FILE : HELLO.C*/#include <stdio.h>int main(){printf(“Hello! \n”);return 0;

}

/** FILE : HELLO.C*/#include <stdio.h>int main(){printf(“Hello! \n”);return 0;

}

Hello.hex

Memory

HDD

Hello.hex

Memory

Hello.hex

Flash� Compile

‚ HW Programming

ƒ Execute

PC (Computer)Target Board

Page 63: Maker 오해와 진실

플랫폼 구성요소 (3)�:�ToolNEX-D�아카데미 1차

( VMware or VirtualBox ) + Ubuntu

Page 64: Maker 오해와 진실

Beyond�the�Embedded,�into�the�Ubiquitous

유 명 환,�[email protected]

NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템