Virginia Tech®home

ECE 2564 - Embedded Systems (3C)

Course Description

Use of microcontroller-based embedded systems as a tool to address digital control and sensing in engineering applications. Modern methodologies for programming microcontrollers including programming under real-time and resource design constraints. Finite-state machine modeling and software implementation. Event-driven programming including polling-based and interrupt-driven input/output. Integration of sensors and actuators, use of standard digital and analog interfaces, and use of hardware peripherals in microcontroller architectures. Design of hardware abstraction layers and software architectures for embedded systems. Integration of hardware peripherals into real-time, software applications. Software toolchains for embedded systems, use of debugger and development and testing methodologies. Professional project management and version control.

Why take this course?

Microcontroller-based embedded system software and hardware is pervasive in modern electrical and computer engineering applications. This course introduces students to microcontroller-based embedded systems as a tool to address digital control and sensing in engineering applications. Embedded systems and software are extensively used in electrical and computer engineering capstone design projects and junior and senior level technical electives.

Learning Objectives

  • 1. Develop microcontroller-based embedded system software that meets real-time specifications.
  • 2. Document and implement a finite state machine.
  • 3. Implement polling-based and interrupt-driven software.
  • 4. Organize software interfaces as a hardware abstraction layer.
  • 5. Build software interfaces to common peripheral devices, sensors, and actuators.
  • 6. Describe the architecture of a microcontroller-based embedded system.
  • 7. Develop embedded system software to meet resource and design constraints.
  • 8. Use software toolchains, debugging techniques, testing methodologies, project management, and software version control.