GGrantIndex
← Search

Third Party Programmability for Embedded Systems

$180,000FY2002CSENSF

University Of Pennsylvania, Philadelphia PA

Investigators

Abstract

There are a rapidly-growing number and diversity of embedded processors in general use today. In a growing number of cases the device is programmable by its user. Programmablility varies in complexity from simple memory functions, like a cell phone that remembers a list of numbers, to full third-party programmability (TPP), where, for example, a cell phone can download new software from the Internet and offer significantly new functionality. This feature allows the device to exploit some of the advantages of general-purpuse computers like personal desktop computers or Internet servers. The device serves as a platform for a diversity of applications, even applications that were not yet conceived at the time the device was built. In order to exploit these advantages, embedded processor software platforms must offer a range of features well-known from general purpose computers: flexibility, portability, extensibility, predictability, and deliverability. Of these, a particularly unique challenge arises in the delivery of new programs to the device. Installing new code on general-purpose computers attached to the Internet is already a significant challenge, but the support of TPP embedded processors is an even more diverse and unsettled issue. It is often the case that smart devices are not networked, have only intermittent Internet connectivity, or operate primarily in networks consisting of other smart devices through local peer-to-peer links. This makes code delivery a particular challenge and impels the need for new architectures. In this project we will derive a range of code delivery architectures for TPP smart devices based on the assumption of complex connectivity requirements. In the general case issues include small code size (for instance programs may be limited to one or two kilobyte sizes), interaction with operational requirements (like naivety of a human operator in the field or kitchen), safety requirements for TPP devices with high-energy actuators, security issues for network communication or when mischief is particularly threatening (like programming for automobiles), interplay with network connectivity (like ability to function both with and without access to the Internet). We will analyze architecture, language, and analysis techniques available to deal with the issues. An early basis for our study of requirements will be the area of smart appliances for homes. A diversity of delivery options are the subject of current research in this area. We will begin by developing a system for programming microwave ovens using bar codes on food packages and generalize our experience with this system to others. Existing systems in this area assume too little (like recipes that can be expressed with 3-10 numbers) or too much (like an attached PC that must access recipes from the Internet). An ideal system will allow small programs to be delivered on packages that can function as scripts or invoke network connectivity if it exists to download code for more substantial functionality. Our research also focuses on predictability using advanced analysis techniques such as formal verification. Our research will identify the appropriate subsets of general-purpose programming languages for embedded applications and develop tools for applying verification techniques directly to the source code using domain-specific and automated abstractions.

View original record on NSF Award Search →