Embedded Software R&D at ETRI: Qplus, Esto, and Nano Qplus Heung-Nam Kim Embedded S/W Research Division Electronics and Telecommunications Research Institute, KOREA hnkim@etri.re.kr Abstract It is said that embedded software technology brings most value to embedded system products. In the embedded systems market, the impact of open source and free software is booming so strong that more vendors are adopting open source and free software for their products. ETRI, Korea’s largest government-funded research facility in the field of Information Technology and Communications, has been developing embedded software technologies and solutions. This paper introduces two embedded operating systems, Qplus and Nano Qplus, and an integrated development environment for embedded software, called Esto. With these products, we propose to discuss a way to share them among three nations. Discussion Topic: Open Source/Free Software 1. Introduction Embedded software is designed for special-purpose computer systems, which are completely encapsulated by the device they control. Nowadays it is very hard to find electronic or mechanical products without embedded software. It is of growing importance in a variety of areas such as consumer electronics, military, aerospace, robotics, automotives, building/home/industrial automation, and telecommunication. Embedded software requires low cost, small size, low power consumption, high reliability, customizable function/performance, and effective management of other restricted system resources. In addition, network, multimedia, and GUI (Graphic User Interface) of embedded software are becoming more important as mobile devices gain more popularity. In the future ubiquitous world, embedded software that ranges from tiny sensor software to mobile and telematics software should satisfy more diverse requirements. In the embedded software field, more vendors are adopting open source and free software for developing their products. More and more embedded software developers tend to use Linux and GNU software. According to the survey of VDC in 2004, Linux was the first-position operating system used in the previous, current, and next project. Wind River, a leading embedded software vendor, gave up its policy against open source software and announced a new integrated development environment for embedded software running on Linux as well as its own operating system, VxWorks, last year. Having a rising concern on IT industry, the Korean government has chosen embedded software as one of nine new growth engines for next generation and has been actively supporting open source software development. ETRI, Korea’s the largest government-funded research facility in the fields of Information Technology and Communications, has been developing embedded software technologies: embedded operating system, embedded middleware for multimedia and ubiquitous computing, GUI, and development tools. In this paper, we introduce two embedded operating systems, Qplus and Nano Qplus, and an integrated development environment for embedded software, called Esto, with open source policy. 2. Qplus Qplus is an embedded Linux-based operating system. Its kernel provides power management, real-time support, multimedia file system, small footprint, and fast boot. Besides, Qplus provides the following supports:
� Various BSP and device driver development /packaging support � Various library packaging support � Light graphic library supports for embedded software � Main application development and various application packaging support � Optimized root file system support Qplus includes Target Builder (Fig. 1) with which embedded system developers can create embedded operating system just in a few minutes. Target Builder generates an optimized OS image only for selected OS components. The advantages of Target Builder are as follows: � Easy build up target root file system � Kconfig based integrated configuration system � Linux kernel version 2.6.x supports � Automated dependency checking and conflict resolution � RPM based packaging system support � Library optimization support � Fine-grain control of system: file-list, compile option, and more � Various deployment methods support (CD installer, NFS, etc.) � Eclipse platform support � Various architectures and BSP support � CELF published patches support Project Symbol view property Configuration tree kernel, application, target system environment setup view Dependency list Fig. 1. Target Builder 3. Esto Esto (Embedded Software Toolkit) is a visual software development environment for embedded applications running on Qplus Embedded Linux. Esto enables software engineers to develop/analyze both general and domain-specific embedded software fast and easily under its systematic project management. Esto runs on both Linux and Windows with the same look and feel of the Eclipse 3.0 GUI. Esto provides eight tools: cross compile tool-chain, remote debugger, hardware-level debugger, power analysis & optimization tool, device driver development tool, remote monitoring tool, timing analysis tool, and ubiquitous environment simulation tool. Software engineers can execute and debug embedded software programs in target by just few mouse-clicks. Esto provides not only breakpoint debugging but also tracepoint debugging which is useful for quality assurance on time-sensitive requirements of system. Esto provides a cost-effective way to debug applications and firmware at hardware level using the USB adapter in compliance with IEEE1149.1. The hardware-level debugger also supports tracepoint debugging as well as breakpoint debugging with user friendly interface.
Power analysis & optimization tool analyzes and optimizes embedded software in terms of power consumption, performance, and code size. Measuring actual power consumption and performance of a program, it shows various metrics for power consumption and performance of each function. These are useful clues for software engineers to determine which part of program needs optimization. To produce a less power-consuming program, it can automatically optimize loop structure with loop distribution, loop interchanging, loop unrolling, and/or scalarization techniques. Device driver development tool helps software engineers develop device driver. Its Driver Project Wizard generates rich-content skeleton codes from the driver requirement specification. In addition, using its Device Test Wizard, software engineers with little knowledge of hardware or Linux kernel can test hardware resources’ accessibility in advance and use the test data for future development. It supports development of device drivers for PCI, USB, and IEEE1394. Target monitor shows target system’s CPU load, memory usage, status of processes, kernel modules, etc. It traces kernel events for a given period and shows them graphically. It also traces target program’s invocation of system call and library function. Timing analyzer can help software engineers analyze whether or not their software meets its timing requirements in worst-case scenario. This tool, a combination of schedulability analyzer and worst-case execution time analyzer, can be applied at various development phases including design, implementation, and testing. Ubiquitous environment simulator simulates and verifies hardware/software design of sensor networks prior to its implementation. This GUI-based simulation provides a controlled environment for evaluating design alternatives and enables sophisticated inspections on system behaviors that are difficult to observe in a real sensor network system testing. IDE Main Window Editing View Project Tree Remote Running Configuration Project Creation Build Configuration Fig. 2. Esto 4. Nano Qplus Recent achievements in wireless technology have enabled the development of low-cost sensor networks. The sensor networks can be applied for various areas such as home, health, and robot. ETRI has developed a scalable, reconfigurable, and tiny embedded operating system, called Nano Qplus, for sensor network systems. As shown in Fig. 3, Nano Qplus adopted modular and layered design concepts. Nano Qplus has the four key modules: Nano-HAL, task scheduler, power manager, and RF handler. Nano-HAL (Hardware Abstract Layer) provides hardware independency to Nano Qplus. It consists of several hardware device components: LED, CLOCK, POWER, RFM(RF Module), UART, and ADC (Analog to Digital Converter). Nano Qplus’ task scheduler, based on Linux schedulers, takes account of energy-efficiency and resource limitation. It provides a subset of POSIX threads APIs and various scheduling policies, such as non-preemptive FIFO, preemptive round robin, preemptive round robin with energy efficiency, etc. Power manager manages major parts of sensor node, i.e. six sleep modes in ATmega128 and transceiver turn off/on switch in CC2420. There are three levels, full, middle, and low, to know how long the node will survive in the sensor networks.
Recommend
More recommend