Maker 오해와 진실
-
Upload
-funfun-yoo -
Category
Devices & Hardware
-
view
928 -
download
1
Transcript of Maker 오해와 진실
Maker�
오해와 진실
NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템
소개
NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템
발표자 소개
유 명 환 [email protected]
• 엑세스 주식회사 연구소장
• 미래부 소프트웨어 마에스트로 멘토
• 오픈스택 한국 커뮤니티 네트워크 분과장
• 오픈소스포럼 페이스북 그룹지기
• 만물상(IoT)�페이스북 그룹지기
• 주로 서울시 구로동에 서식
• 현재 ARM�프로세서 기반 클라우드 서버 및 사물인터넷 관련 프로젝트 진행 중
• 국내 최초 납땜 가능한 IoT�해커톤 개최 :�드림엔터 IoT�해커톤 (2014.12.20~21)
NEX-D�아카데미 1차
오픈소스포럼 소개
https://www.facebook.com/groups/ossforum/
NEX-D�아카데미 1차
만물상(IoT) 소개
https://www.facebook.com/groups/manmulsang/
NEX-D�아카데미 1차
드림엔터 IoT�해커톤 대회NEX-D�아카데미 1차
2014.12.20 ~ 21
눈에 띄는 단어들
NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템
여러분들 눈에 띄는 단어들NEX-D�아카데미 1차
Maker IoT3D Printer
Arduino
Raspberry Pi
Embedded
Wearable
여러분들 눈에 띄는 단어들NEX-D�아카데미 1차
Maker IoT3D Printer
Arduino
Raspberry Pi
Embedded
Wearable
사물인터넷 이란?
NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템
사물인터넷 이란?
사물 Things 인터넷 Internet
+ =사물인터넷 Internet�of�Things
사물(Things)이 인터넷(Internet)에 접속하기 위한 기술
NEX-D�아카데미 1차
사물인터넷 이란?
인터넷에 연결되는 사물이 늘어나는 속도를
물리적 확장 속도가 따라잡을 수 없다!
NEX-D�아카데미 1차
사물인터넷 이란?
클라우드 기반 가상 서버
NEX-D�아카데미 1차
사물인터넷 이란?
<데이터 분석>
방안 온도 섭씨 OO�도에
방안 습도 OO�%�일 경우
잠을 잘 때 O 번 뒤척임
<데이터 활용>
최적의 수면을 위해 방안 온도와 습도를
자동으로 제어
NEX-D�아카데미 1차
사물인터넷 이란?
사물인터넷 (IoT)
클라우드 (Cloud)
빅데이터 (Big�Data)
인터넷 3대 신산업
NEX-D�아카데미 1차
사물인터넷 이란?
사물인터넷 Internet�of�Things
1.�사물이 똑똑해진다!
NEX-D�아카데미 1차
사물인터넷 이란?
사물인터넷 Internet�of�Things
1.�사물이 똑똑해진다!
2.�사람이 편리해진다!
안전해진다!
즐거워진다!
NEX-D�아카데미 1차
사물인터넷 이란?
Ubiquitous�Computing
NEX-D�아카데미 1차
사물인터넷,
왜 뜨는가?
NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템
사물인터넷 역사
센서 네트워크
USN
Ubiquitous�Sensor�Networks
사물지능통신
M2M
Machine�to�Machine
NEX-D�아카데미 1차
사물인터넷,�왜 뜨는가?
사물인터넷의 전제 조건
1.�사물이 24시간 내내 인터넷에 접속할 수 있어야 한다!
:�USN,�M2M�시절엔 사물이 인터넷에 접속하려면 비용(Cost)이 많이 필요했다!
2.�사람도 24시간 내내 인터넷에 접속해 있어야 한다!
:�USN,�M2M�시절엔 사람이 인터넷에 접속하려면 컴퓨터가 필요했다!
NEX-D�아카데미 1차
사물인터넷,�왜 뜨는가?
사물인터넷의 전제 조건
1.�사물이 24시간 내내 인터넷에 접속할 수 있어야 한다!
:�사물이 인터넷에 접속하기 위한 비용(Cost)이 점점 내려가고 있다!
2.�사람도 24시간 내내 인터넷에 접속해 있어야 한다!
:�스마트 폰의 등장 이후 사람은 24시간 내내 인터넷에 접속해 있다!
NEX-D�아카데미 1차
사물인터넷,�왜 뜨는가?
Things GatewayEnterprise
Server
USN, M2M
NEX-D�아카데미 1차
사물인터넷,�왜 뜨는가?NEX-D�아카데미 1차
사물인터넷,�왜 뜨는가?
Things GatewayEnterprise
Server
IoT
de facto
NEX-D�아카데미 1차
Maker�vs�Embedded
NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템
MakerNEX-D�아카데미 1차
MakerNEX-D�아카데미 1차
Maker�는 “잉여의 문화”
즉,�“시간”�과 “비용”�에 구애 받지 않는다!
Embedded�SystemNEX-D�아카데미 1차
Embedded�는 “비용의 공학”
즉,�“시간”�과 “비용”�에 상당한 제약을 받는다!
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
Embedded�SW�특징NEX-D�아카데미 1차
임베디드SW
CPU�바로 위에서 실행되는 SW�è 무한루프
CPU에 의해 시작되는 SW�è Header�無
디바이스를 제어하는 SW�è 레지스터 설정
임베디드 SW�=�회로도 +�데이터시트 +�소스
임베디드 시스템 성공 여부?NEX-D�아카데미 1차
임베디드 시스템 성공의 50%�이상을
“설계” 가 좌우한다!
임베디드 플랫폼
NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템
임베디드 플랫폼NEX-D�아카데미 1차
임베디드 플랫폼NEX-D�아카데미 1차
플랫폼 (1)�:�CPU
NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템
플랫폼 구성요소 (1)�:�CPUNEX-D�아카데미 1차
CPU = CPU Core + CPU Peripheral
— CPU Core : 연산 처리를 담당— CPU Peripheral : (연산 처리 결과에 따른) H/W 제어를 담당
마이크로프로세서(Microprocessor) 마이크로컨트롤러(Microcontroller)
CPU Core
CPU Core
CPUPeripheral
CPUPeripheral
플랫폼 구성요소 (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
플랫폼 구성요소 (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
플랫폼 구성요소 (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
플랫폼 구성요소 (1)�:�CPUNEX-D�아카데미 1차
플랫폼 구성요소 (1)�:�CPUNEX-D�아카데미 1차
플랫폼 구성요소 (1)�:�CPUNEX-D�아카데미 1차
플랫폼 구성요소 (1)�:�CPUNEX-D�아카데미 1차
플랫폼 (2)�:�OS
NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템
플랫폼 구성요소 (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” : 즉시, 대기 시간이 없는ð 원하는 시간 내에 원하는 결과를 얻을 수 있다!
플랫폼 구성요소 (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;}
플랫폼 구성요소 (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)
플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차
플랫폼 구성요소 (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
플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차
RTOS�의 한계
플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차
플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차
플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차
플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차
Paradigm Shift !!!
플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차
플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차
Paradigm Shift !!!• 작은 플래시 용량에 최적화 된 BSP
• 최소한의 기능만 보유한 커널
• 모든 SW는 전용 컴파일러로 별도 빌드 후 포팅
• 넉넉한 SD�카드 기반의 범용 운영체제 :�ex.�Debian,�Ubuntu
• PC�기능의 대부분을 제공하는 커널
• 모든 SW는 PC�와 동일한 방법으로 개발 혹은 설치
:�ex.�$�sudo apt-get�install�gimp
플랫폼 구성요소 (2)�:�OSNEX-D�아카데미 1차
Paradigm Shift !!!
특정 임베디드 시스템
범용 시스템
플랫폼 (3)�:�Tool
NEX-D�아카데미 1차 :�Tech�:�임베디드 시스템
플랫폼 구성요소 (3)�:�ToolNEX-D�아카데미 1차
플랫폼 구성요소 (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, 메모리 등 정보 추가
플랫폼 구성요소 (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
플랫폼 구성요소 (3)�:�ToolNEX-D�아카데미 1차
( VMware or VirtualBox ) + Ubuntu