ECE 2564 Embedded Systems | ECE | Virginia Tech

Undergraduate PROGRAMS

Course Information


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.

Course Topics


Percentage of Course

1. Embedded computing systems for digital control and sensing 10%
2. Microcontroller programming methodologies for real-time and resource design constraints 10%
3. Finite state machines and their software implementations 10%
4. Event-driven programming 10%
5. Hardware peripherals, digital and analog interfaces 20%
6. Analog to digital converters 10%
7. Hardware abstraction layers 5%
8. Microcontroller architectures 10%
9. Software toolchains, debugging, and testing 10%
10. Project management and version control 5%