Embedded Software R&D at ETRI: Qplus, Esto, and Nano Qplus - - PDF document

embedded software r d at etri qplus esto and nano qplus
SMART_READER_LITE
LIVE PREVIEW

Embedded Software R&D at ETRI: Qplus, Esto, and Nano Qplus - - PDF document

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


slide-1
SLIDE 1

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

  • perating 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

  • f 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

  • perating 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:

slide-2
SLIDE 2

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

  • perating 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

Configuration tree kernel, application, target system environment setup view Dependency list Project view Symbol property

  • 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.

slide-3
SLIDE 3

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.

Project Creation Build Configuration Remote Running Configuration IDE Main Window Editing View Project Tree

  • 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.

slide-4
SLIDE 4

A sensor has very limited power (AA 3.3V battery) and memory (4 Kbytes) capacities. Therefore network stack of Nano Qplus is designed to use power, memory, and layered network stack very

  • efficiently. It passes pointers instead of copying packets. The network stack of Nano Qplus consists of

four stacks: application layer, network layer, MAC layer, and physical layer. Physical layer is implemented by Chipcon CC2420 radio for IEEE802.15.4 compliant PHY. MAC layer is in charged of RF channel access with CSMA-CA algorithm. Nano Qplus has two advanced features for ubiquitous sensor network: scalable reconfiguration and star-mesh dynamic routing. From various modules of Nano Qplus, users can select only a set of modules to meet application specific goals, such as optimization and resource limitation. For easy reconfiguration, Nano Qplus supports Linux kernel configuration script, kconfig. In a sensor network system, failure of network nodes is regarded as a regular phenomenon due to battery power shortage and mobility of nodes. Furthermore, there are diverse requirements on network topology and characteristic of data transmission. Network architecture of Nano Qplus provides a flexible network stack with affordable various protocols at different levels and reliability of data transmission between distributed sensor nodes. Star-meshed network topology, which is new cluster-based network architecture, provides reduced routing and ad-hoc nodes. In this network, developers can make a group of sensor nodes according to geometrical factor or similarity of their tasks

  • n the deployed area. Among the sensor nodes, cluster head nodes are elected to provide master device
  • peration and coordination of network, and they take a part of ad hoc multihop routing.

nHAL(nano Hardware Abstract Layer) System APIs MCU (8bit) RF (ZigBee) Sensor & Actuator Task Mgmt RF Message Handling Power Mgmt Sensing & Actuating Router Map Router Sensor/ Actuator Application VM

LED CLOCK UART ADC RFM POWER

H/W Nano Qplus Application

  • Fig. 3. Architecture of Nano Qplus
  • 5. Conclusion

Many parts of ETRI’s embedded software solutions owe to open source and free software. Since ETRI is a government-funded research institute, its objective is to transfer its technology to those who need it and to support them. The source code of Qplus and Nano Qplus and the binary code of Esto are already opened to public at www.qplus.or.kr. Also the previous version of target builder is available with its source code at soureforge.net. As soon as the current development of Qplus is completed, we are going to initiate an open project for Qplus so that many developers outside ETRI can join to improve it together. Esto for Qplus has been released several times since 2002 and its upgraded version will be released at the end of this year. The first version of Esto for Nano Qplus will be released in August this year, and the next version will show up at the end of this year.