Mar 20, 2023  
2020-2021 Undergraduate Academic Catalog 
2020-2021 Undergraduate Academic Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

EE 4930 - Advanced Embedded Systems

2 lecture hours 2 lab hours 3 credits
Course Description
This course presents advanced techniques for solving problems with embedded microcontroller-based systems. Topics include Real Time Operating Systems, low power operation modes, code optimization, system response, and Finite State Machines. Laboratory work reinforces the concepts learned in the classroom and provides practical experience working with these techniques.  (prereq: EE 2920  or EE 3910B )
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Use a debugger to diagnose problems in source code
  • Set up tasks in a Real Time Operating System (RTOS) with appropriate priorities
  • Use semaphores and events in an RTOS to coordinate resource use between tasks
  • Utilize memory management mechanisms to dynamically control the use of memory resources
  • Interface to external devices over a serial communication channel
  • Implement a Finite State Machine (FSM) solution to an engineering problem
  • Specify an appropriate optimization level for the code in a project
  • Calculate the interrupt latency of a microcontroller
  • Utilize low power modes and sleep features in a microcontroller to minimize the system power consumption

Prerequisites by Topic
  • Procedural programming concepts in C 
  • Practical understanding of basic microcontroller architecture and peripherals 
  • Developing and debugging programs for an embedded system 

Course Topics

  • Advanced microcontroller architecture overview (1 class)
  • Peripheral overview for target system - GPIO, A/D, timers, serial communication (2 classes)
  • Stacks - purpose, structure, design considerations (1 classes)
  • Interrupt latency and system response (1 class)
  • Real Time Operating System - general features, tasks, events, semaphores, memory management, peripheral drivers (6 classes)
    • Finite State Machine (FSM) implementation using Lookup Tables (LUT) (3 classes)
    • Controlling code size/speed using compiler optimization levels (1 classes)
    • Low power modes - behavior and usage (3 classes)
    • Power management and sleep modes (2 class)

Laboratory Topics
  • Target microcontroller peripherals
  • Finite State Machine implementation
  • Code optimization for speed or size
  • Low power modes of operation
  • Real Time Operating Systems

Dr. Kerry Widder

Add to Portfolio (opens a new window)