Learning Materials for Introductory Embedded Systems Programming Using a Model-Based Discipline

Published 2016


Frank Vahid
University of California, Riverside

Alex Edgcomb
zyBooks, A Wiley Brand

Bailey Miller
zyBooks, A Wiley Brand

Tony Givargis
University of California, Irvine

Free Download

Ready to explore in depth? Download a copy for free.

Get the full version


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 higher-level 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 University of California, Irvine. The discipline has students describing desired behavior using synchronous state machines, and capturing those state machines 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 real-time operating system 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 having an accompanying microcontroller lab.  The paper also introduces web-based tools that support the discipline.

or, go back to the blog.

More action with less text.

zyBooks strike the perfect balance between text volume and engaged learning, with studies showing that students spend more time learning. Performance has been proven to increase and we have research to show it.

Get A Demo
zyBooks textbooks increase student engagement