Embedded systems have changed dramatically in recent decades. At their start in the 1970's and growth in the 1980's, embedded systems consisted of relatively simple microcontroller hardware, often programmed in low-level assembly language, to configure a few peripherals and interact with a few input/output pins. Today, improvements in speed, memory size, and power have changed the emphasis from hardware to software, with microcontrollers supporting tens of thousands of lines of code, perhaps programmed in C, often with concurrent tasks, interacting with dozens of peripherals and potentially hundreds of input/output pins in time-multiplexed manner, and dynamically changing among numerous power states. Yet, many university embedded systems courses and textbooks still look similar to those in the 1980's, emphasizing low-level programming of hardware. Little guidance is provided to teach students in a first course how to program using disciplined methods. The result is an improper foundation and perspective, leading to ad hoc unstructured code, or over-reliance and inefficient use of real-time operating systems. To remedy the situation, we describe a model-based discipline for introductory embedded systems courses, developed over the past decade at the University of California, Riverside and at UC Irvine. The discipline has students describing desired behavior using synchronous state machines, and capturing those state machine using standard C templates. As such, students develop software paying strict attention to timing issues, and create their own C-based task scheduler, leading to a solid understanding of concurrency and RTOS functionality. This paper highlights that discipline, and describes new web-based interactive learning material emphasizing the discipline, which is best used for the lecture portion of a course with an accompanying microcontroller lab. The paper also introduces web-based tools that support the discipline.
Are you a researcher? Would you like to cite this paper?
Visit the ASEE document repository at
for more tools and easy citations.