MISSION
Embedded Systems


Reconfigurable Software


Microcontrollers


Digital Signal Processors


Hardware/Software Co-Design


Experimental Testbeds


Software Modeling


Memory Management


Device Drivers


Communication and Synchronization


Debugging


Real-Time Scheduling


Agent


Component-Based Design


Automated Analysis


Error Detection and Handling


Software Reuse

The Software Engineering for Real-Time Systems (SERTS) Laboratory is leading University of Maryland's efforts in advancing software technology for embedded systems. Embedded systems pervade nearly every aspect of our lives. They can be found in VCRs, vending machines, and cellular phones, as well as being critical components in complex industrial applications such as manufacturing plants, flight and traffic controllers, and medical systems. Even your car has ten to twenty embedded processors in it!

Industry has a significant demand for engineers experienced in developing embedded real-time software. In fact, the growth of the embedded systems market has been so substantial that some experts cite a 25% growth rate each year, in an annual market of more than $10 billion. The training offered by universities in embedded systems, however, is growing by only a fraction of that amount. As a result, many of the people creating embedded software are engineers trained in other areas- most notably hardware design, mechanical engineering, controls, or communications. This lack of software engineering expertise leads to lower quality software and higher development costs.

There are two fundamental methods of improving this serious manpower problem: (1) educate more engineers in the field of embedded real-time software; and (2) reduce the complexity of embedded software, so that less expertise is needed to build the systems. The first method is addressed by the educational goals in SERTS, while the second method is addressed by the research objectives.

The SERTS educational goals emphasize practical hands-on, inter-disciplinary learning by designing and implementing real embedded systems in a university laboratory. SERTS projects include pinball machines, electric trains, cameras, microphones, and remote control units. These projects have many of the same design and implementatio issues as the systems developed by industry, but are much cheaper and safer, making them ideal for student experimentation.

The SERTS research plan focuses on investigating advanced real-time operating system (RTOS) technology for embedded systems. By enhancing the operating system, it is possible to create a virtual machine that is more user friendly, so less expertise is required to program and debug the software. Such an approach has been extremely successful in the general-purpose computing domain. For example, Windows 95 is much more user friendly and contains many more development tools than its predecessor, MS-DOS. It attracts many users with little computer expertise. Unfortunately, similar progress has not occurred in the embedded systems domain. The functionality and quality of today's RTOS is not much different than the RTOS of 10 years ago, so significant computer engineering expertise is still needed to build a reliable embedded system. Key research challenges include creating a more friendly operating system without sacrificing the performance, predictability, and reliability; developing software components that only uses a small amount of memory, and modeling specialized target hardware that is often difficult to generalize.

The SERTS RTOS research falls into two broad categories: (1) operating system mechanisms that execute on the target embedded platform; and (2) tools that execute within the host development environment.

In the first category, we have three projects addressing the operating system mechanisms. In one of these projects, we are investigating hardware/software co-design of an RTOS and a microcontroller. This will reduce the overhead incurred by more complex RTOS functions. As part of a second project, we are creating an RTOS for microcontrollers and digital signal processors to support dynamically reconfigurable component-based software. This project includes research in software modeling, scheduling, communication, memory management, device drivers, and embedded networking. In the third project, we have identified the key research issues for improving real-time error detection and handling, and we are developing methods and techniques to address those issues.

In the second category, we are developing computer-aided software engineering (CASE) tools that help designers implement embedded software. In one of these projects, our goal is to develop a tool that automates the analysis, debugging, and fine-tuning of an embedded system's temporal properties. Existing CASE tools focus on the software specification and design of embedded systems. However, they provide little-if any-support after the software has been implemented. In a second project, we are analyzing the memory performance in digital signal processors, and creating a tool that aids designers to structure and configure their applications to most efficiently use memory, taking into account differences in performance when accessing internal versus external memory.



Mission
Research
Education
Publications
Personnel
Resources
Sponsors
Awards
SERTS Home
Site Map
UMIACS
ISR
ECE Dept
UMD
School of Engr
Search UMD

© 1999 University of Maryland, College Park, MD 20742. All Rights Reserved.
For more information on the SERTS Laboratory, contact Dr. D. Stewart at
dstewart@eng.umd.edu