임베디드소프트웨어통합개발환경 : Esto 2006. 2. 13. 우덕균 (dkwu@etri.re.kr) S/W 개발도구연구팀 임베디드 S/W 연구단
Contents Introduction to Esto, Qplus and Nano Qplus Esto for Qplus Esto for Nano Qplus (Nano Esto) Optimization and Analysis Tool Sensor Network Simulator Demonstration 2 Embedded S/W Research Division
Esto Esto for Qplus Remote Debugger Target Monitoring Tool Optimization & Analysis Tool Eclipse Platform Timing Analyzer Device Driver Development Tool GUI Builder IDE JTAG-based Debugger Qplus Target Builder Sensor Network Simulator Emulation-based Debugger Esto for Nano Qplus Linux/MS Windows Host Nano Qplus 3 Embedded S/W Research Division
Esto Features Accelerate Developer Productivity of Qplus and Nano Qplus based Embedded Software Based on Eclipse Esto for Qplus Target X86, ARM, Xscale, MIPS, PowerPC Project based source editing, cross compilation, remote execution Remote debugging for application and kernel module Non-stop debugging JTAG-based firmware debugging Monitoring various target resources (CPU, memory, etc.) Power, performance analysis and source code optimization Integrated and seamless analysis on schedulability and WCET (Worst Case Execution Time) Esto for Nano Qplus (Nano Esto) Target AVR Project based source editing, cross compilation, remote execution Automatic loading of executable image to target system JTAG-based sensor node debugging Emulator-based debugging GUI-based sensor network simulation Simulation-based power analysis for sensor network Fast and convenient kernel configuration and build 4 Embedded S/W Research Division
Qplus Kernel Features Real-Time Preemptible kernel POSIX high resolution timer Power Management ACPI Support safe turn off functionality Fast Boot PRESET LPJ (Loops Per Jiffy) Save 350 msec on EPIA-M board TV OUT kernel frame buffer Other Features TinyX Matchbox window manager Gtk-2.6 GPE based application management environment Web browser : minimo firefox-1.0.6 Media player : mplayer-1.0 Target Builder Embedded system configuration toolkit Easy build up target root file system Kconfig based integrated configuration system Linux kernel 2.6.x Automated dependency checking RPM based packaging system Library optimization Fine-grain control of system File-list, compile options, etc. Support various root filesystem types ext2, ext3, ramdisk image, jffs2, etc. Support various deployment methods CD installer, USB memory stick installer, serial installer, NFS, etc. Based on Eclipse platform Licensed by GPL Include CELF patches currently 2.6.9 5 Embedded S/W Research Division
Nano Qplus Small-sized, Distributed, Real-time, and Smart OS For Sensor Networks under Ubiquitous Environment E.g., medical services, environmental systems, disaster prevention, digital home, national defense systems, etc. Main Features Reconfigurable, scalable OS Can be optimized for various sensors and actuators Supports better S/W architecture than TinyOS of UC Berkeley Various scheduling policies FIFO, Preemption, LEDF, etc. Various wireless communications RF, ZigBee, Bluetooth, etc. Same API sets as Qplus 6 Embedded S/W Research Division
Esto for Qplus IDE 프로젝트생성, 소스편집, 크로스컴파일, 원격실행 디버거 정지점, 비정지점디버깅, 펌웨어및커널디버깅 GUI 빌더 GTK 기반 GUI 설계, GUI 시뮬레이션 Esto DD 개발도구 Device Driver 골격소스자동생성, Device 자원진단 실시간성분석기 최악실행시간분석, 스케쥴링가능성분석 모니터링도구 타겟자원모니터링, 다중타겟모니터링 최적화 - 분석도구 루프최적화, 전력, 성능, 코드크기분석 7 Embedded S/W Research Division
IDE Project Management Creation, configuration, and building Makefile management Qplus package import/export Development Source code editing facilities Syntax highlighting, automatic formatting, class browsing, etc. Project Build & Remote Execution Configuration 8 Embedded S/W Research Division
Debugger Remote Debugger Remote debugging starts with just one button click Nonstop-debugging with tracepoint and replay For time-sensitive applications JTAG-based Debugger A cost-effective way to debug applications on a target system Needs only a cheap JTAG adaptor Supports full C source level debugging Supports both breakpoint & tracepoint 9 Embedded S/W Research Division
Snapshot of Debugger Call stack view Variables view Source view Source outline Register view Console view 10 Embedded S/W Research Division
Target Monitoring Tool Concurrent multiple-target monitoring Various target resource monitoring CPU, memory, process list, process memory map, kernel module, etc. GUI based kernel event trace Remote tracing of system call and library function Target Browser CPU/Kernel Infomation Process List CPU/Memory Usage 11 Embedded S/W Research Division
Optimization and Analysis Tool Optimizing Application By using loop transformation such as loop distribution, loop interchange, loop unrolling, and scalarization Analyzing Power of Embedded Application Together with performance and code size GUI-Based Integration of Optimizing and Analyzing Multi-meter & Target System Optimization & Analysis Tool 12 Embedded S/W Research Division
Timing Analyzer Static timing analyzer for C/C++ based real-time application Analyzes WCET (Worst-Case Execution Time) Considering XScale micro-architecture s characteristics such as pipeline & cache. WCET analysis for OS components, such as a scheduler and interrupt service routines, based kernel source code Analyzes Schedulability based on RMA (Rate Monotonic Analysis) Analyzed WCET Final results of schedulability analysis 13 Embedded S/W Research Division
디바이스드라이버개발도구 특징드라이버프로젝트위저드 디바이스드라이버의골격코드생성을안내해줌 드라이버타입 ( 문자, 블록, 네트웍 ) 과디바이스타입 (PCI, USB, IEEE1394, 디바이스없는경우 ) 을고려한골격코드생성 디바이스테스트위저드 즉시하드웨어에접근하고진단가능 PCI, USB, IEEE1394 디바이스리소스테스트제공 원격개발지원 타겟에디바이스드라이버다운로드 디바이스드라이버를타겟커널에삽입 / 제거가능 커널메시지로깅뷰어 커널 API 원격실행기 14 Embedded S/W Research Division
디바이스드라이버개발도구 4. 드라이버의기본정보정의 5. 디바이스드라이버의파일함수선택 3. 디바이스테스트 2. 디바이스선택 골격코드생성 디바이스드라이버소스브라우저 다비이스드라이버골격코드 1. 버스타입선택 출력윈도우 15 Embedded S/W Research Division
GUI 빌더 (gdesigner) 디자인창 시뮬레이션화면 위젯속성편집기능 위젯삽입기능 Hardware button 이벤트테스트 Desktop PC / Notebook PC 16 Embedded S/W Research Division
Esto for Nano Qplus (Nano Esto) 타겟빌더 센서네트워크시뮬레이터 명령어수준시뮬레이션, 전력소모량분석 Nano Qplus 커널설정, 커널빌드 Nano Esto 에뮬레이터기반디버거 센서노드없이디버깅, 정지점기반디버깅 IDE 프로젝트생성, 소스편집, 크로스컴파일, 퓨징 JTAG 기반디버거 센서노드와연결, 정지점, 비정지점디버깅 17 Embedded S/W Research Division
Target Builder for Nano Qplus Unified Configuration System Configures kernel, packages and target specific options altogether Dependencies are checked automatically Easy and Fast Kernel Build System Just load provided pre-configurations for a certain BSP Point & Click selection of each module with user friendly GUI Type, Size, Project Tree Help, File List Unified Configuration Tree Dependency Symbol Build Log 18 Embedded S/W Research Division
IDE C source editor Offers highlighting syntax, auto indentation, and browsing facilities for showing variables and functions Project Manager Provides project creation, configuration and building Executable Image Downloader (Fusing Tool) Downloads and runs applications on a target system with just a click Rapid prototyper Creates skeleton code based on user s kernel module selection Users do not have to develop applications from scratch 19 Embedded S/W Research Division
Debugger Emulator based approach checks stability before downloading an executable image Supports debugging without a target system JTAG based approach A cost-effective way to debug applications on a target system Needs only a cheap JTAG adaptor Supports full C source level debugging 20 Embedded S/W Research Division
Snapshot of Debugger Variables Memory Call Stack Registers Break point Source Outline 21 Embedded S/W Research Division
Sensor Network Simulator Scalable network environment simulation Verifies hardware/software design of sensor network Provides a controlled environment for evaluating design alternatives Tests stability of certain network topology Precise target sensor node simulation Simulates executable image, which contains machine instructions of ATmega128 core in instruction level Accurate power consumption estimation Estimates power consumption of sensor network based on instruction-level power modeling of Atmega128 Routing path between two sensor nodes 22 Embedded S/W Research Division
- 최적화 - 분석도구 23 Embedded S/W Research Division
최적화 - 분석도구개념도 임베디드응용 최적화도구 - 루프분산 - 루프교환 - 루프펼침 - 스칼라화 - 최적화코드 - 최적화종류 최적화정보 - 함수단위의전력소모량 - 함수단위의실행시간 - 함수단위의코드크기 분석결과 - 전력소모량분석 - 성능분석 - 코드크기분석 분석도구 24 Embedded S/W Research Division
최적화 - 분석도구설치환경 멀티미터 GPIB- ENET GPIB Hub Trigger signal Current < 실물 > Serial TynuxBox /X-Hyper27x 호스트 ( 리눅스 ) 타겟 25 Embedded S/W Research Division
최적화 - 분석도구구조 최적화 UI 분석 UI 최적화명령 루프최적화기 최적화결과 최적화코드 Eclipse 플랫폼 리눅스 호스트 분석명령 분석결과 전력 - 성능 - 코드분석기 응용 분석에이전트 Qplus 표준플랫폼 타겟 26 Embedded S/W Research Division
처리기최적화도구구조 최적화 UI 최적화명령 최적화결과 C 소스코드 SUIF 코드전루프교환 루프펼침 SUIF 코드 분산후처리기루프 최적화 C 코드 스칼라화 UI : Eclipse 기반 엔진 : Stanford 대학교에서개발한 SUIF 컴파일러시스템기반 27 Embedded S/W Research Division
분석도구구조 Target System Embedded S/W Kernel Adapter current samples PC/PID samples Collection & Analysis System Collection Monitor Eclipse Platform Symbol Table ext. trigger System Monitor Performance Monitor performance profiles Energy Analyzer Performance Analyzer Code Size Analyzer GUI 함수별 Energy, Performance, Code Size Profiles 28 Embedded S/W Research Division
전력분석도구인터페이스 GPIB/ENET 타겟시스템 GPIO/Ext. Trigger 수집및분석시스템 Serial and Ethernet 29 Embedded S/W Research Division
Target System Target System Embedded S/W System Monitor Device Driver Timer Interrupt GPIO Triggering Adapter Ext. Trigger Current Samples Collection & Analysis System PC/PID Samples Performance Monitor System Call Performance Profiles 30 Embedded S/W Research Division
Collection & Analysis System Data Collection & Matching System Current Samples Collection Monitor Energy Analyzer Target System PC/PID Samples Performance Profiles 통신모듈 수집모듈 Performance Analyzer Code Size Analyzer GUI Eclipse plug-in 함수별 Energy, Performance, Code Size Profiles 31 Embedded S/W Research Division
최적화 - 분석도구실행화면 32 Embedded S/W Research Division
빌드 & 실행설정 UI < 빌드설정 > < 실행설정 > 33 Embedded S/W Research Division
분석결과 34 Embedded S/W Research Division
- 센서네트워크시뮬레이터 35 Embedded S/W Research Division
시뮬레이션환경 (H/W) Nano24( 옥타컴 ), MICAz(Crossbow MPR2400) MCU : Atmel ATMega128L RF Transceiver : Chipcon CC2420 Frequency : 2.4 GHz ISM band Data Rate : 250 kbps IEEE 802.15.4/Zigbee 지원 RF Power : Rx - 19.7mA / Tx - 17.4mA 36 Embedded S/W Research Division
시뮬레이션환경 (Nano OS) Nano Qplus TinyOS 한국전자통신연구원 (ETRI) 에서개발 나노형임베디드운영체제 센서및 actuator 의종류에따라 OS 커널을최적화하여재구성가능한 scalable OS(TinyOS 보다향상된 S/W architecture 지원 ) 다양한스케줄러및무선통신 (433, 868/916MHz, 2.4GHz, ) 지원 표준형및마이크로임베디드 OS 와동일한 API subset 지원 (POSIX 표준기반 ) U.C.Berkeley 대학중심의 NEST(Network Embedded Software Technology) 프로젝트에서개발한센서네트워크노드용 OS 작은크기의 OS (4KB 미만의실행이미지 ) NesC 언어에의하여제공되는컴포넌트기반의프로그래밍모델로구성 모든하드웨어자원은컴포넌트형태로추상화 노드간의통신은 AM(Active Message) 에의하여패킷추상화 37 Embedded S/W Research Division
시뮬레이터구조 MISS Engine Agent (MEA) TCP/IP MISS GUI Agent (MGA) Virtual Network User Interface Shell Power Model Virtual Sensor Node #1 Virtual Sensor Node #2.. Energy Collector Report Energy View Simulator Engine Simulator UI 38 Embedded S/W Research Division
가상센서노드구조 ATmega128L Virtual Core Executable Image Virtual Flash(128K) Virtual SRAM(4K) Virtual Sensor Node CC2420 Control Logic Virtual EEPROM(4k) A1 A2 S1 S2 S3 S4 L1 L2 L3 RAM (368byte) S1, S2, S3, S4 : Virtual Sensor A1, A2 : Actuator L1, L2, L3 : LED Energy Estimator 39 Embedded S/W Research Division
기계명령어 - 레벨시뮬레이션 Executable Image Instruction Simulation 0x0000 PC Virtual Memory TinyOS/ Nano Qplus & Application Fetch Decode Execute Interrupt PC += 1 Registers 40 Embedded S/W Research Division
전력소모량측정 전원공급기를전력측정시스템프로그램으로제어하여원하는샘플링간격으로데이터를얻음 ( 전류최대샘플링간격 : 15.6 us) 측정된실측데이터를기반으로전력소모량분석모델개발 41 Embedded S/W Research Division
센서네트워크사용예 42 Embedded S/W Research Division
시뮬레이션화면 프로젝트뷰 노드 Outline 에너지뷰 43 Embedded S/W Research Division
시뮬레이션화면 (node fault) 44 Embedded S/W Research Division
마치며 향후개발내용 MCC (Mobile Convergence Computing) 를위한Esto 기술개발 DVS (Dynamic Voltage Scaling) 지원최적화및분석도구기술 QoS 분석도구기술 Multi-Core 디버깅기술원격업그레이드도구기술타겟 CPU 독립적인크로스컴파일기술디바이스드라이버개발도구확장 8051 용 Nano Esto 개발 Qplus/Esto 상용화및보급확산 Available in http://qplus.or.kr Esto, Qplus, Nano Qplus evaluation 버전 45 Embedded S/W Research Division
- 시연 46 Embedded S/W Research Division
Esto 시연 시연예제 : GTK 기반 GUI 응용프로그램 1. UI 수정및소스코드생성 (GUI 빌더 ) 2. 수정된소스코드에대한크로스컴파일 (IDE) 3. 프로그램정지및변수값, 메모리값확인및수정 ( 원격디버거 ) 4. 루프최적화및성능분석 ( 최적화-분석도구 ) Ethernet 케이블 타겟 (XScale) 통합개발환경 호스트 ( 리눅스 ) 47 Embedded S/W Research Division
Nano Esto 시연 시연예제 : 센서의 LED를제어하는 Blink 예제 1. Blink 예제가필요로하는커널설정및빌드 ( 타겟빌더 ) 2. Blink 프로젝트빌드및시뮬레이터와연동하여수행 (IDE, 시뮬레이터 ) 3. 센서네트워크시뮬레이션 ( 시뮬레이터 ) ISP 어댑터 JTAG 어댑터 호스트 ( 윈도우 ) 타겟센서노드 48 Embedded S/W Research Division