Skip to Main Content
This tutorial focuses on the development of systems software for embedded applications. The software structure for embedded systems from processor specific instructions, operating system, middleware and application layers is discussed. Three high-level (new) languages for designing embedded systems are: Esterel for control applications, Handel-C for dataflow (e.g., DSP) applications, Lava to verify systems within the same framework. The resource Management and scheduling paradigms based on static priorities, static schedules, dynamic scheduling, and best effort approaches is discussed. To make the concepts concrete, examples of OSs for embedded systems are presented, with a critical evaluation of Real-Time Linux as an embedded operating system. The possibility of developing real-time embedded systems without using an OS e.g., by "synthesizing" the OS capabilities into the s/w code will also be probed. A digital camera case study is used to illustrate the concepts.