Microsoft Word -

Similar documents
이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Microsoft PowerPoint - chap01-C언어개요.pptx

서현수

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

PCServerMgmt7

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

4S 1차년도 평가 발표자료

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

ESP1ºÎ-04

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

제8장 자바 GUI 프로그래밍 II

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Embedded S/W Technologies of ETRI in KOREA: Qplus, Esto, and Nano-Qplus

Motor Control Solution

PowerPoint 프레젠테이션

Microsoft Word - 임베디드월드_WindowsEmbeddedCompact7_rev

Visual Studio online Limited preview 간략하게살펴보기

Microsoft PowerPoint - chap-02.pptx

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

놀이동산미아찾기시스템

DE1-SoC Board

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

Microsoft PowerPoint - ARM 개발 환경.ppt

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

<333820B1E8C8AFBFEB2D5A B8A620C0CCBFEBC7D120BDC7BFDC20C0A7C4A1C3DFC1A42E687770>

ISP and CodeVisionAVR C Compiler.hwp

52 l /08

*Revision History 날짜 내용 최초작성 Tel Fax [2] page

untitled

개발목표 프로젝트주제 상용게임기를이용한임베디드소프트웨어교육환경구성 프로젝트목표 닌텐도 DS와같은상용게임기하드웨어를이용하여마이크로프로세서또는임베디드소프트웨어교육실습을수행하기위한개발환경을구성 WIFI USB Serial Eclipse 상용게임기 ( 타겟시스템 ) PC (W

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

슬라이드 1

컴퓨터과학과 교육목표 컴퓨터과학과의 컴퓨터과학 프로그램은 해당분야 에서 학문적 기술을 창의적으로 연구하고 산업적 기술을 주도적으로 개발하는 우수한 인력을 양성 함과 동시에 직업적 도덕적 책임의식을 갖는 IT인 육성을 교육목표로 한다. 1. 전공 기본 지식을 체계적으로

슬라이드 제목 없음

슬라이드 1

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

실험 5

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

파워포인트

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

스마트월드캠퍼스 교육교제

김기남_ATDC2016_160620_[키노트].key

Cisco FirePOWER 호환성 가이드

PowerPoint 프레젠테이션

Integ

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

Microsoft PowerPoint - chap-02.pptx

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>


슬라이드 1

Microsoft PowerPoint App Fundamentals[Part1].pptx

알람음을 출력하는 이동통신 단말기에 있어서, 실시간 알람음을 출력하는 음향 출력 수단; 디지털 멀티미디어 방송(DMB: Digital Multimedia Broadcasting, 이하 'DMB'라 칭함) 신호를 수신하면 오디오 형태로 변 환하여 DMB의 음향을 전달하는

Microsoft PowerPoint - Windows CE Programming_2008 [호환 모드]

APOGEE Insight_KR_Base_3P11

슬라이드 1

PowerPoint 프레젠테이션

기술 이력서 2.0

1217 WebTrafMon II

PowerPoint 프레젠테이션

슬라이드 1

C 언어와 프로그래밍 개요

슬라이드 1

<464B4949B8AEC6F7C6AE2DC0AFBAF1C4F5C5CDBDBABBEABEF7C8AD28C3D6C1BE5FBCD5BFACB1B8BFF8BCF6C1A4292E687770>

<BBEABEF7B5BFC7E22DA5B12E687770>

1. 제품소개및설명 제품특징 그림. 개발장비사진 - AVR FLASH READ/WRITE 가능 - AVR ISP 프로그래밍방식을지원하는 ATmega8, ATmega16, ATmega32, ATmega64, ATmega128, ATmega 등다수의 AVR MC

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

[Brochure] KOR_TunA

Intro to Servlet, EJB, JSP, WS

1. 도구개요 CppUnit Testing 소개 CppUnit 는 C++ 용 testing Framework 로 Java 의 JUnit 을 C++ 로구현 C++ 언어에서사용할수있도록개발된 Open Source 프로젝트로, source code 의특정 Module 이의도

Microsoft Word - PEB08_USER_GUIDE.doc

PowerPoint 프레젠테이션


Microsoft PowerPoint - 00_(C_Programming)_(Korean)_Computer_Systems

JVM 메모리구조

1. 제품소개및특징 1.1 제품소개 < 그림 1.1> AVRISP MK2 USB 개발장비 AVR ISP(In System Programmer)MK2 USB 란 Atmel 사의 AVR 마이크로컨트롤러의내부플래쉬와 EEPROM 에프로그램메모리및데이터를써 (Write, Re

Windows Live Hotmail Custom Domains Korea

Microsoft PowerPoint APUE(Intro).ppt

C# Programming Guide - Types

¨ìÃÊÁ¡2

데이터베이스-4부0816

Microsoft PowerPoint - eSlim SV [ ]

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

Install stm32cubemx and st-link utility

Intra_DW_Ch4.PDF

마이크로시스템제작 lecture1. 강의소개및 MultiSIM 선덕한 마이크로시스템 1

API 매뉴얼

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

WinCE 실험실습 #1

PowerPoint 프레젠테이션

<4D F736F F F696E74202D204C BAB8C3E6BCB3B8ED202D20C7C1B7CEB1D7B7A1B9D6C0DBBCBAB0FAC1A42C C F>

슬라이드 1

1_cover

TTA Journal No.157_서체변경.indd

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

<4D F736F F F696E74202D20332DC1F6B9DDC1A4BAB8BDC3BDBAC5DB>

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

Transcription:

USN 소프트웨어개발도구동향 A Trend of USN Software Development Tool 임베디드 S/W 기술동향특집 백광진 (K.J. Paek) 전인걸 (I.G. Chun) 우덕균 (D.K. Woo) S/W개발도구연구팀연구원 S/W개발도구연구팀선임연구원 S/W개발도구연구팀팀장 목차 Ⅰ. 서론 Ⅱ. 요소기술 Ⅲ. 제품동향 Ⅳ. NanoEsto 소개 Ⅴ. 관련도구비교 Ⅵ. 결론 임베디드시스템을위한응용프로그램개발도구로서통합개발환경을이용하는것은소프트웨어개발의생산성과코드의완성도를향상시킬수있다는점에서매우중요하게인식되고있다. 최근에 USN에대한관심이높아지면서이를위한여러가지응용소프트웨어들이개발되고있으나, 통합개발환경의부재로명령어라인기반의개발방식이사용되고있는실정이다. 이와같은방식은불편함을야기할뿐만아니라개발시간을증가시킬수있으며, 궁극적으로 USN 응용소프트웨어의개발을어렵게만드는요인이된다. 본고에서는이와같은문제점을해결하기위하여 USN 응용소프트웨어를빠르고편리하게개발할수있는통합개발환경의동향을살펴보고 ETRI의본연구팀에서개발한 USN 소프트웨어통합개발도구인 NanoEsto 를기술하고상용제품과의비교를수행하였다. 21

I. 서론 임베디드시스템을위한응용프로그램개발도구로서통합개발환경을이용하는것은소프트웨어개발의생산성과코드의완성도를향상시킬수있다는점에서매우중요하게인식되고있다 [1],[2]. 최근에 USN에대한관심이높아지면서이를위한여러가지응용소프트웨어들이개발되고있으나, 통합개발환경의부재로명령어라인기반의개발방식이사용되고있는실정이다. 이와같은방식은불편함을야기할뿐만아니라개발시간을증가시킬수있으며, 궁극적으로 USN 응용소프트웨어의개발을어렵게만드는요인이된다. 본원고에서는이와같은문제점을해결하기위하여 USN 응용소프트웨어를빠르고편리하게개발할수있는통합개발환경의동향을살펴보고 ETRI에서개발한 Nano- Esto와상용제품과의비교를수행한다. NanoEsto는소스편집, 컴파일, 이미지적재및실행기능과소스수준의디버깅기능을비롯해 USN 응용소프트웨어의개발에필요한기능들을제공한다. 또한센서노드의자원이충분하지않음을고려하여응용의성격에따라서최적의커널을구성할수있는기능을제공한다. 본원고의 II장에서는 USN 소프트웨어개발도구에서필요로하는요소기술에관해살펴보고, III 장에서는현재상용제품을살펴본다. IV장에서는 ETRI의본연구팀에서개발한 USN 소프트웨어통합개발도구인 NanoEsto 를기술한다. V장에서상용제품과 NanoEsto 의기능을비교해보고, VI장에서결론을맺는다. Ⅱ. 요소기술 1. 센서네트워크 OS 현재개발되어있는센서노드를위한초소형운영체제는크게두가지로분류될수있다. 하나는이벤트기반모델로 TinyOS 와 SOS, Contiki 등이여 기에속하고이벤트기반의모델은하나의프로그램흐름을가지며각각이벤트에따라별도의핸들러를가지고처리하게된다. 나머지다른부류는멀티스레드환경을제공하는운영체제로 Nano- Qplus, MANTIS, Nano-RT, RETOS 등이여기에속한다 [3]. 전통적으로성능상의이점과제어흐름상태관리가쉽다는이유로이벤트기반의프로그래밍모델이선호되어왔다. 하지만멀티스레드기반의운영체제는여러일을효과적으로처리하고개발의복잡도를낮출수있어보다손쉽게개발할수있다는장점이있다. 센서노드는극히적은리소스를가지고있기때문에센서네트워크 OS 개발은많은제약을가지고있다. 먼저, 커널의크기가제한된다. 제한된상황에서센서노드에맞는적합한구조의커널이필요하다. 다음으로상대적으로컴퓨팅파워가낮은 MCU 를사용하기때문에최대한복잡한연산을줄이고코드를최적화하여 MCU의부하를줄여야한다. 또한센서네트워크가최대한라이프타임을보장하기위해전력보존문제또한매우중요하다. 하나의노드뿐만아니라네트워크전체의지속시간과효율성을고려한전력관리기술이필요하다. 2. 교차개발환경 (Cross Development Environment) 임베디드시스템개발을위하여호스트컴퓨터가필요한데그이유는임베디드시스템자체가개발중인경우가대부분이고컴파일러까지설치하기에는메모리용량이나 CPU 속도가감당할수없기때문이다. 호스트컴퓨터에서는타깃시스템용실행파일을생성하는컴파일러가필요하며이를크로스컴파일러라한다. 보통툴체인은크로스컴파일러뿐만아니라실행파일변환기등개발환경에필요한소프트웨어의집합을의미한다. 호스트컴퓨터는 x86 계열의데스크톱컴퓨터가대부분이므로 x86 계열의컴퓨터에서타깃보드의 CPU가이해하는 22

백광진외 / USN 소프트웨어개발도구동향 기계어를생성해주는 X86-to-target 크로스컴파일러가필요하다. 툴체인의핵심은크로스컴파일러이지만때로는 ELF-32 포맷의실행파일로부터순수바이너리만추출해줄수있는목적파일포맷변환기등도포함되어있으며, 그외 makefile 이나링커스크립트, 스타트업코드까지포함하기도한다. 이러한목적파일을만드는도구이외에목적파일을타깃보드로다운로드하는도구또는롬에뮬레이터등도포함된다. 3. 통합개발환경앞서언급한도구들이모두다른환경에서동작하거나사용법이제각각이라면사용자는혼란을겪게될것이고개발기간이늘어나는결과를초래할것이다. 이를방지하기위해일관되고사용하기쉬운통합개발환경을사용자에게제공해야한다. 최근많은도구회사들이 IDE의기반플랫폼으로 Eclipse를선택하고있다. Eclipse는공개플랫폼이며누구나플러그인을개발하여 Eclipse 의기능을확장할수있다. 많은도구들은내장에디터가성능이나쁘다고해서바꿀수없으며언어가바뀜에따라서계속해서문법뿐만아니라도구의사용법을배워야했다. 이러한단점을효과적으로해결한것이 Eclipse이다. 원래 IBM에서 Eclipse 프로젝트를시작하였으며현재는세계의많은개발자들에의해수정되고배포되고있다. ETRI에서도 Eclipse 를기반으로하여 Esto 와 NanoEsto 라고하는임베디드시스템통합개발환경을작성하였다. 4. 디버깅디버깅이란소프트웨어안에있는버그를찾아서고치는행동을의미한다. 버그란단순히문법적오류에서부터실행중에도찾아내기어려운오류까지다양한형태로존재한다. 디버거는주로응용프로그램에서제공하는문제판별기능 ( 오류로그파일, 오류메시지등 ) 이나시스 템에서제공하는문제판별도구로해결할수없는응용프로그램문제에사용한다. 디버거는소스코드가있을경우특히유용하다. 임베디드시스템의디버깅은타깃시스템과호스트컴퓨터로이루어진원격개발환경을이용하는방법이주로사용되고있다. 개발하고자하는임베디드시스템인타깃시스템에서개발한프로그램을실행시킨다. 개발용호스트에서디버거를이용해타깃시스템과특정인터페이스를통하여연결되며소스코드를참조하면서타깃시스템에서실행되는프로그램을제어한다. Ⅲ. 제품동향 1. MS사의.NET Micro Framework 마이크로소프트.NET Micro Framework SDK 는.NET 라이브러리의서브셋을이용하여 C# 언어로임베디드응용프로그램의개발을지원한다 [4]..NET Micro Framework 구조는소형디바이스에최적화되어있으며 Microsoft Visual Studio 2005와 C# 을이용하여임베디드시스템프로그램을가능하도록한다. 다음과같은디바이스가포함된다. 센서네트워크 로보틱스 웨어러블디바이스 의료장비 산업용자동화디바이스 효과적이고적은자원을사용하는.NET 클라이언트를요구하는기타디바이스들 ( 그림 1) 은 Visual Studio 2005에서.NET Micro Framework의예제를실행한화면이다..NET Micro Framework SDK는디바이스에뮬레이터를포함하고있다. ( 그림 2) 는.NET Micro Framework 계층구조를나타낸다. 각계층구조를살펴보면다음과같다. 23

Hardware Layer: 마이크로프로세서와기타회로를포함한다..NET Micro Framework는하드웨어플랫폼이나 OS 위에서실행될수있도록포팅이가능하다. RCL: RCL은세가지요소인 CLR, HAL 그리고 PAL로구성된다..NET Micro Framework CLR 은.NET Framework CLR의서브셋으로.NET Framework에의해제공되는런타임환경이다. HAL과 PAL은하부의시스템하드웨어를제어하며 CLR에의해호출되는 C++ 함수들의집합이다. Class Library Layer: 재사용가능한객체지향타입들의집합으로서 C# 라이브러리이다. ( 그림 1).NET Micro Framework 실행화면 Application Layer: 관리되는 (managed) 응용프로그램을포함한다. C# 언어만을지원하고있다. 2. Crossbow 사의 MoteWorks MoteWorks는무선센서네트워크응용프로그램을위한완전한소프트웨어개발환경을제공하며세가지소프트웨어계층으로구성된다 [5]. Mote Tier: XMesh 소프트웨어가실행되며센서노드들을통해메시네트워크 (mesh network) 를형성하여신뢰성있는통신백본 (backbone) 을제공한다. Server Tier: 무선센서네트워크로부터의데이터의버퍼링과변환을담당한다. Xserve와 XOtap은서버계층응용프로그램으로서 PC 또는 Stargate에서실행될수있다. Client Tier: 센서네트워크관리를위한시각적소프트웨어와그래픽인터페이스를사용자에게제공하는 MoteView 라는클라이언트소프트웨어를제공한다. ( 그림 3), ( 그림 4) 에서세계층과네트워크구성도를살펴볼수있다. MoteWorks는 TinyOS 를포함하고있으며 Tiny- OS는버클리대학에서처음개발된공개소스운영체제이다. 무선센서네트워크에서가장널리분포되어있는운영체제이며적은메모리사이즈를요 Application Layer User Applications & Libraries ClassLibrary Layer Libraries.NET WPF Comms Managed Native CLR Execution Engine Type System Garbage Collector Interop Runtime Component Layer PAL Timers RAM I/O HAL Drivers or OS Facilities Hardware Layer Processor and Peripherals ( 그림 2).NET Micro Framework 계층구조 24

백광진외 / USN 소프트웨어개발도구동향 구하는저전력디바이스를위해설계된컴포넌트기반의이벤트- 드리븐 (event-driven) 방식의운영체제이다. MoteWorks는타깃노드를위한크로스컴파일러와 TinyOS 프로그램개발을위한진보된에디터를제공한다. ( 그림 5) 는 MoteWorks의 Programmers Notepad 2를실행한화면이다. Mote Tier SW Development Tools XOtap XMesh TinyOS Mote Tier (XMesh, XSensor Apps) Sensor Mesh Network Sensor Mesh Network Server Tier Gateway Server XServer Remote Access XOtap XMesh XML Database Modbus/ Custom ( 그림 3) MoteWorks 의 3 계층 Server Tier (Database, Logger) PC Remote or Local Server Mirror Local Server (Stargate) Remote Server (Stargate) Client Tier Monitoring & MoteView Configuration Analysis Data Log/ Visualization Client Tier (Visualization, Analysis Tools) PC Terminal-Mote- View as Localhost PC MoteView Client PC MoteView Client ( 그림 4) MoteWorks 의네트워크구성 MoteWorks가제공하는소프트웨어패키지는다음과같다. TinyOS와 MoteWorks Tools nesc Compiler Cygwin AVR Tools Programmer s Notepad XSniffer MoteConfig Graphviz PuTTY와 TortoiseCVS MoteWorks가제공하는개발환경은 TinyOS 의개발환경을포함하며 GUI과커맨드라인환경을병행하여사용한다. 3. TinyOS TinyOS는임베디드센서노드를사용하기위해설계된이벤트기반의운영체제이다. 특히, 최소한의하드웨어사양의센서노드에서실행될수있도록설계되었다. TinyOS 의프로그래밍언어는확장된 C언어인 nesc 를사용하며버클리대학에서최초로개발되었다. 리눅스와윈도환경을지원한다 [6]. TOSSIM은 TinyOS 센서네트워크를위한이산이벤트시뮬레이터이며 TinyOS 코드로부터직접컴파일된다. 프로그래머는타깃노드에퓨징할이미지를컴파일하는대신 TOSSIM 플랫폼에서컴파일하 ( 그림 5) MoteWorks 의 PN2 실행화면 ( 그림 6) TinyViz 25

여호스트컴퓨터에서실행할수있다. TOSSIM은프로그래머가작성한프로그램을 PC의시뮬레이션환경에서디버그, 테스트및분석을가능하게한다. ( 그림 6) 은 TOSSIM의시뮬레이션결과를시각적으로볼수있는 TinyViz의실행화면이다. Ⅳ. NanoEsto 소개 USN을구성하는센서노드는제한된메모리와 MCU 원을갖기때문에응용프로그램개발환경을직접구동할수없다. 따라서 USN 응용소프트웨어의개발은데스크톱 PC와같은고사양의호스트컴퓨터에서수행되고, 테스팅, 디버깅을위하여완성된이미지를타깃센서노드에적재하여실행하는크로스개발환경을이용한다. 이러한크로스개발방식에서는통합개발도구의부재로인해대부분의개발자들이자신이사용하던개별적인도구를이용해프로그램편집및컴파일, 이미지적재및디버깅을수행하기때문에사용자에게불편함을초래할뿐만아니라, 소프트웨어개발의생산성저하를초래한다. ( 그림 7) 은 NanoEsto의구조도를나타낸다. Nano- Esto에서는하드웨어플랫폼으로 ATMEL 사의 AVR MCU를탑재한센서노드를지원한다 [3]. 타깃센서노드는이미지적재를위한 USBasp 와하드웨어디버깅을위한 AVR JTAGICE mkii를포함하고있으며, 각각 USB 인터페이스에의해호스트컴퓨터와연결된다. NanoEsto는 NanoQplus 에서실행되는유비쿼 터스센서네트워크를위한응용프로그램개발을지원하는진보된소프트웨어개발환경이다. Nano- Esto는 USN 응용프로그램작성과실행을위한포인트 & 클릭 (point-and-click) 프로그래밍환경을제공하고수작업에의한개발시간을줄임으로써개발자의생산성을향상시킨다. NanoEsto는 Windows 뿐만아니라 Linux 에서 Eclipse GUI 스타일과동일한인터페이스를제공한다. NanoQplus는 ETRI에서개발한센서네트워크운영체제이다. NanoQplus는센서네트워크운영체제의요구조건을최대한고려하여제작되었다. 이운영체제의가장큰특징은친숙한 C 스타일의쉬운프로그래밍환경을제공하기위해서멀티스레딩을지원한다는점이다. 센서노드용초소형운영체제기술 (NanoQplus) 은의료, 환경방재, 스마트홈, 국방, 산업등의다양한응용분야에사용될수있으며, 미래첨단정보서비스제공에필요한다양한임베디드시스템에공통으로탑재되어, 응용프로그램이최적의성능및기능을발휘할수있게하는핵심임베디드소프트웨어기술로그중요성및시장성은더욱확대되고있다 [7]. Eclipse Platform 통합개발환경 (IDE) 커널설정도구 EEPROM 관리도구 Fusing 및 Restoring 도구 JTAG 디버거 NanoQplus Linux/Windows Host ( 그림 7) NanoEsto 구조도 Sensor Applications Thread Kernel Memory OS API Power Sensor Routing RF NanoQplus nhal(nano Hardware Abstract Layer) Sensor-Board-Specific Device Drivers MCU RF Sensor Devices ( 그림 8) NanoQplus OS 구조도 26

백광진외 / USN 소프트웨어개발도구동향 NanoQplus의경우센서및구동장치의종류에따라운영체제를최적화하여재구성하는기능, 다양한스케줄러및무선통신방식의지원, 모니터링소프트웨어, 원격업그레이드등의특징을갖고있어미래사회에서요구되는다양한센서네트워크응용환경에서활용가능하다. ( 그림 8) 은 NanoQplus 의구조도이다. 1. NanoEsto IDE NanoEsto IDE는크로스플랫폼개발환경에서타깃시스템에서수행되는 USN 응용소프트웨어를개발하기위한목적으로개발되었으며, 프로젝트관리자, 소스편집기, 크로스컴파일툴체인과실행이미지적재를위한퓨징도구, 커널설정도구, EEPROM 의데이터구조를관리할수있는 EEPROM 관리도 ( 그림 9) NanoEsto IDE 화면 구, EEPROM의데이터를관리할수있는리스토어링도구등을포함한다. 소스편집기와프로젝트관리자의경우 NanoQplus 기반의 C 언어에특화되어있으며 Eclipse 플랫폼이기본적으로지원하는텍스트편집기와프로젝트관리자를확장하여 USN 응용프로그램개발에적합한기능을수행하도록구현하였다. ( 그림 9) 는 NanoEsto 의 IDE 실행화면을나타낸다. ( 그림 10) 은 NanoEsto 에서최종결과물인프로그램이미지와데이터이미지가생성되는과정을보여주고있다. 2. 커널설정도구일반적으로 USN을구성하는타깃센서노드의프로그램메모리사이즈는 8~128kB로극히제한적이다. 따라서운영체제가지원하는모든모듈들을센서노드에적재하는것은현실적으로불가능하며, 개발하는응용소프트웨어의성격에따라요구되는모듈들만으로커널을구성하는것이필수적이다. 이러한문제를해결하기위해 NanoEsto 는 GUI 기반의커널설정도구를포함한다. 특히 ETRI 에서개발된 USN용초소형운영체제인 NanoQplus 를적용한타깃설정도구를지원하고있으며, 이는각모듈들의의존성을자동으로검사하고원격개발 IDE와연계하여선택된모듈에대한기본적인스켈레톤코드를생성한다. ( 그림 11) 은커널설정도구를실행한화면이다. 커널소스 컴파일 Kconfig 스크립트 프로젝트생성, 모듈설정.config/ kconf.h 커널오브젝트 링크 커널라이브러리 응용프로토타입 프로젝트생성 응용소스 컴파일 응용오브젝트 링크 프로그램바이너리 (elf) 이미지변환 프로그램이미지 프로파일템플릿 프로젝트생성 EEPROM 프로파일 Value 파일생성 EEPROM Value 파일 이미지빌드 데이터이미지 ( 그림 10) 프로그램및데이터이미지생성과정 27

( 그림 12) Atmel 사의 AVR JTAGICE mkii 장비 ( 그림 11) 커널설정도구화면 3. JTAG 기반디버거 NanoEsto는 JTAG 기반디버거를지원한다. 응용프로그램이직접타깃센서노드에서동작하는환경에서디버깅을하며개발자의요구에따라변수, 레지스터, 메모리, 스택등의정보를제공한다. JTAG 기반디버거는 IEEE1149.1 표준에정의되어있는 JTAG 포트를이용하여실제타깃의센서노드에서동작하는 NanoQplus 응용프로그램의디버깅을지원한다. JTAG 기반디버거는 Eclipse 사용자인터페이스, 디버깅엔진, ICE 장비로구성되어있으며그구조는다음과같다. JTAG 기반디버거는 IEEE1149.1 표준에정의되어있는 JTAG 포트를이용하여실제타깃의센서노드에서동작하는 NanoQplus 응용프로그램의디버깅을지원한다. JTAG 기반디버거는 Eclipse 사용자인터페이스, 디버깅엔진, ICE 장비로구성되어있으며그구조는다음과같다. 이클립스사용자인터페이스 : 사용자인터페이스는개발자에게편리한환경을제공하고다른도구와의통합을위해이클립스플러그인으로개발되었으며이클립스플랫폼에서기본적으로제공하는환경과동일한환경을제공한다. 디버깅엔진 : 디버깅엔진은 GNU GDB를기반으로개발되었다. 사용자인터페이스를통해입력된명령을수행하며 AVR JTAGICE mkii를 ( 그림 13) NanoEsto 의 JTAG 기반디버깅화면통해타깃시스템을제어하고필요한정보를가져온다. AVR JTAGICE mkii: AVR JTAGICE mkii는 Atmel사에서제작한 on-chip 디버깅을위한강력한개발도구이다. IEEE1149.1 인터페이스가있는모든 AVR 8비트 RISC MCU와 AVR32 32비트 DSP/MCU를지원한다. ( 그림 12) 는 Atml사의 JTAGICE 장비를보여주고있으며, ( 그림 13) 은 NanoEsto 에서 JTAG 디버거를이용하여 C 소스코드를디버깅하는화면을보여주고있다. 4. EEPROM 관리도구 EEPROM 관리도구에는 ( 그림 14) 와같이시스템변수와사용자변수가있으며사용자변수만추가및데이터타입수정이가능하다. NanoQplus에서정의된데이터타입선택이가능하며 R/W 플래그는 Read, Read/Write, N/A 중에서선택할수있다. 28

백광진외 / USN 소프트웨어개발도구동향 ( 그림 16) NanoEsto 의리스토어링도구창 ( 그림 14) EEPROM 관리도구실행화면 데이터이미지생성시 EEPROM 상의해당데이터에접근하기위한정보를헤더파일로생성한다. 사용자정의변수에대한위치정보를담은 user_ defined.h 파일이생성된다. R/W 플래그가 N/A일경우, EEPROM에기록되지않고헤더파일에만정의된다. 5. 퓨징및리스토어링도구 ( 그림 15) 는프로그램및데이터이미지를퓨징하기위한퓨징도구의실행화면이다. 프로젝트를통해선택하거나직접파일을선택할수있다. ( 그림 16) 은리스토어링도구의실행화면이다. 현재연결된타깃노드의 EEPROM 으로부터데이터이미지를로드하거나호스트컴퓨터의파일로부터로드가가능하다. 읽어온데이터이미지는값을변경하여다시타깃노드에저장하거나파일로호스트컴퓨터에저장할수있다. USBasp는 Atmel AVR 컨트롤러를위한회로가 ( 그림 15) NanoEsto 의퓨징도구창 ( 그림 17) USBasp 장비 내장된 USB 프로그램도구이며 ATMega48이나 ATMega8 과몇개의컴포넌트들로구성된다. 프로그램을위해서는단지 USB 드라이버만사용된다. ( 그림 17) 에서 USBasp 장비를볼수있다. 6. 기계명령어기반센서네트워크시뮬레이터 기계명령어기반센서네트워크시뮬레이터 (MISS) 는센서네트워크환경에서센서노드개발이전에 USN 응용프로그램을검증할수있는도구로서기계어수준의명령어시뮬레이션방법을사용하여실제타깃센서노드의동작을시뮬레이션한다. 이를통하여센서노드에탑재되는응용소프트웨어및운영체제의동작과네트워크의안정성을검증할수있으며, 예로센서노드의위치및통신환경을고려한네트워크시뮬레이션이가능하다. MISS는 ( 그림 18) 과같이구성이되며가상센서노드 (virtual sensor node) 는노드의개수만큼존재한다. 각각의가상노드는실제센서에서동작하는실행파일 (executable image) 을입력으로동작한다. 센서노드간의 ZigBee 통신은화살표로표시되며각센서노드의시리얼데이터는별도의뷰를통해출력된 29

RSP(Remote Serial Protocol) Simulation Engine MISS Engine Agent(MEA) Virtual Network Virtual Sensor Node #1 Virtual Sensor Node #2 Virtual Sensor Node #3 Power Estimation Model Debugger TCP/IP GUI MISS GUI Agent (MGA) Simu. View Tree View Progress View Energy View 시뮬레이션기반으로센서네트워크환경의전력소모량을분석하는도구이다. 본도구는센서네트워크환경의각노드들에대하여노드를구성하는하드웨어모듈별, 노드에서수행되는프로그램의함수단위로전력소모량을분석한다. 시뮬레이션은앞에서소개된센서네트워크시뮬레이터를기반으로구현되었다. 시뮬레이터와연동하여전력소모량분석및결과출력은다음과같이진행된다. ( 그림 18) MISS 구조도다. 뿐만아니라센서하드웨어에부착된 LED 출력표시기능을통해서 USN 응용프로그램을보다현실적으로검증할수있도록구현하였다. MEA 모듈은디버거나 MGA로부터수신된정보를해석하여가상센서노드로전달하고가상센서노드로부터발생되는정보를디버거나 MGA로송신하는기능을제공한다. Virtual network 모듈은센서노드들사이에서발생하는 RF 통신에대하여전송에러율과전파수신거리를적용하여실제환경에서의 RF 통신과같은시뮬레이션을제공한다. Virtual sensor node 모듈은타깃센서하드웨어를소프트웨어로동일하게구현한가상센서노드로서응용소프트웨어를메모리에적재하여기계어수준으로실행한다. MGA 모듈은 MEA와의 TCP/IP 패킷교환을통하여시뮬레이션에서발생하는센서노드의상태정보와센서노드간의통신상태등을 user interface, shell, 모듈로전달을하며, user interface, shell, report 모듈에서시뮬레이션엔진으로발생하는요청을 MEA로전달하는기능을한다. MGA의구현은도구와의통합및사용자에게편리한환경제공을위하여이클립스프러그인형태로구축된다. 1 시뮬레이터 UI로부터시뮬레이션대상프로그램의실행파일이미지입력 2 실행파일이미지를분석하여함수심볼정보를추출하여각함수의주소공간정보유지 3 시뮬레이터 UI에서시뮬레이션시작버튼을누름 4 시뮬레이터엔진이실행이미지의기계어명령을시뮬레이션하는과정에서전력분석도구는전력분석모델을참조하여각명령에대한전력소모량값을계산하고, 해당주소에해당하는함수에전력소모량값을더함 5 시뮬레이션수행이끝날때까지 4단계의과정을반복 6 시뮬레이터 UI에서시뮬레이션정지버튼이눌러지면분석된함수단위의전력소모량값을시뮬레이터 UI의뷰 (( 그림 19) 우측하단 ) 를통하여출력전력분석모델은 ( 그림 19) 좌측의전력측정시스템을통하여개발되었다. 전력측정시스템은좌측의호스트시스템, 우측의멀티미터, 하단의센서노드로구성된다. 멀티미터는센서노드의파워라 7. 전력분석도구 NanoEsto 의전력분석도구는기계명령어수준 Measuring System for Power Consumption Model Power Estimation Tool ( 그림 19) 전력측정시스템및분석결과 30

백광진외 / USN 소프트웨어개발도구동향 mov r16, r17 mov r16, r17 mov r16, r17.. mov r16, r17 jmp LOOP Target Processor current 측정 평균값을계산 ( 그림 20) mov 명령어의소모전류측정과정 인과연결되어센서노드에서소비되는전류를측정하고, 측정된전류값은호스트시스템에전달된다. 센서노드의분석에필요한명령을반복적으로수행하면서명령에대한전류값을구하고, 전압과명령수행시간은알고있으므로해당명령에대한에너지값을구할수있다. 일례로 ( 그림 20) 과같이 mov 명령을반복적으로수행시키며멀티미터를사용하여 mov 명령에대한전류값을측정한다. < 표 1> NanoEsto 와다른개발도구와의비교.NET Micro Framework MoteWorks NanoEsto 사용언어 C# nesc C 지원 OS.NET Micro Framework TinyOS NanoQplus 실행환경 Windows Windows Windows, Linux 퓨징도구 없음 커맨드라인 IDE 포함 EEPROM 관리도구 센서네트워크시뮬레이터 원격업그레이드 없음없음 IDE 포함 없음지원지원 없음지원지원 전력분석없음없음지원 멀티스레딩지원없음지원 JTAG 디버깅없음별도지원 IDE 포함 Ⅴ. 관련도구비교 < 표 1> 은 NanoEsto 와기타개발도구와주요항목을비교한표이다. 앞서살펴본.NET Micro Framework와 MoteWorks를 NanoEsto와여러가지측면에서비교를해보면우선실행환경면에서 NanoEsto는 Windows 와 Linux 환경을모두지원함으로써사용자에게높은융통성을제공하며개발에관련된모든작업을커맨드라인을사용하지않고 IDE에서사용자에게편리한 GUI를통해수행할수있다. 특히 JTAG 디버깅시디버깅과소스수정을 IDE에서동시에수행할수있으므로사용자의생산성과작업능률을높일수있다. NanoEsto의 EEPROM은사용자가직접코딩을하지않아도 IDE를통해 EEPROM에데이터를저장할수있게해주며이기능은프로그램과데이터를분리해서응용프로그램을작성가능하게하므로하나의프로그램이미지를사용하고각기다른데이터이미지를사용함으로써각각의노드를위한프로그램이미지를작성하는수고를덜수있다. NanoEsto의전력분석도구는에너지효율성이중요한센서네트워크의특성을만족시켜줄수있 는도구로서응용프로그램의에너지소비량을프로그램코드를실행하면서측정하여에너지효율이높은센서노드용응용프로그램을작성할수있도록해준다. 이상의비교로 NanoEsto 는다른도구와비교했을때우수한 USN 소프트웨어개발도구임을판단할수있다. Ⅵ. 결론 NanoEsto는 USN 응용소프트웨어의개발에필요한기능들을 Eclipse 사용자인터페이스를통해 용어해설 JTAG(Joint Test Access Group): 1980년대후반에연구중이던 Boundary-Scan 설계를 IEEE 에서 1990 년에표준화하였고 IEEE std 1149.1 이제정되었다. Boundary-Scan Cell 이핵심이며임베디드시스템개발시디버깅하기위한장비를칭하기도함 EEPROM(Electrically Erasable Programmable Read- Only Memory): 사용자가메모리내의내용을수정할수있는롬으로써, 정상보다더높은전압을이용하여반복적으로지우거나, 다시기록할수있음 31

서제공하고있으며, 센서노드의자원제약적인특성을고려하여응용의성격에따라최적의커널을설정할수있는기능과퓨징및 EEPROM 관리기능등을제공한다. 현재상용도구인 MS사의.NET Micro Framework, Crossbow사의 Moteworks와 ETRI 의 Nano- Esto를살펴보았으며, 이를통해도구들간의기능을비교하였다. 이비교를통하여 NanoEsto 가더풍부한기능을제공함으로써 USN 응용프로그램개발의생산성을높일수있는도구임을판단할수있었다. 향후 NanoEsto 가계속적으로발전되어관련기술에서비교우위를차지할것으로기대된다. 약어정리 DSP Digital Signal Processor EEPROM Electrically Erasable Programmable Read- Only Memory IDE Integrated Development Environment JTAG Joint Test Action Group MCU Micro Controller Unit MEA MGA MISS SDK USB USN MISS Engine Agent MISS GUI Agent Machine Instruction-level Sensor network Simulator Software Development Kit Universal Serial Bus Ubiquitous Sensor Network 참고문헌 [1] P. Varhol, Integrated Software Tools Improve Productivity and Code Quality, Electronic Design, Oct. 1999, pp.62-70. [2] S.V. Tyle, Engineering Software Tools Meet Demands, Electronic Design, June 1994, pp.71-80. [3] 박창순, 이광용, 이형석정호영외, 생활속의임베디드소프트웨어, U-Book, 2007. [4] http://www.xbow.com [5] Donald Thompson and Colin Miller,.NET Micro- Framework White Paper, Nov. 14, 2006. [6] http://www.qplus.or.kr/ [7] http://www.tinyos.net/ 32