‹‹ All zyBooks

Programming Embedded Systems


Frank Vahid

Professor of Computer Science
University of California, Riverside

Tony Givargis

Professor of Computer Science
University of California, Irvine

Bailey Miller, Ph.D (UC Riverside)

CSE Ph.D., Univ. of California, Riverside
zyBooks (Former software engineer at SpaceX)


  • Introduction to Embedded Systems
  • Embedded Programming
  • State Machines
  • Synchronous State Machines
  • Concurrent State Machines
  • Input/Output
  • Peripherals
  • Task Scheduler
  • Programming Issues
  • Utilization/Scheduling
  • Control Systems
  • Digital Signal Processing
  • Field-programmable Gate Arrays
  • Pattern Recognition

Complete Table of contents


  • Teaches the discipline of embedded programming, independent of any particular device
  • Emphasizes capturing behavior with a computation model (state machine)
  • Students write their own task scheduler in C (basis of RTOSes)
  • ~400 participation activities: Questions, animations, tools
  • Browser-based tools include SM capture, PID simulator, and more
  • Accompanies the RI Tools suite (Windows): C programming, emulation, state machine capture; good for additional homework
  • Can be used for classes with or without a physical device-specific lab

The zyBooks Approach

Teaches a lasting discipline of embedded programming independent of a specific device. The material emphasizes concurrent synchronous state machines for robust real-time programming. Behavior is captured as C-based synchronous state machines, and then converted to structured C code intended for a microcontroller. To teach principles, the material is accompanied by the (Windows-based) RI toolset consisting of a graphical virtual microcontroller with embedded C compiler/debugger, a state machine capture tool, and a timing diagram viewer. The RI Tools enable in-depth mastery of principles without distraction of microcontroller-specific details.