Teaching

ECE 460/560: Embedded System Architectures

Semester: Fall

Offered: 2023

This hands-on course builds upon basic embedded systems knowledge to show how to provide multi-tasking and then use it in a variety of application spaces. The concurrent operation of the CPU and peripherals is highlighted throughout as critical to creating cost-effective embedded systems. This course gives an early introduction to practical multitasking on the CPU, with the goals of improving responsiveness and software modularity while reducing CPU overhead. The interplay of interrupts, peripherals and schedulers is explored. 

The development platform hardware is the NXP FRDM-KL25Z MCU board with a 48 MHz ARM Cortex-M0+ CPU core and a custom expansion shield with debug signal connectors, touch-sensitive full color 320x240 LCD, speaker, microSD socket, and asynchronous buck converter driver for high-brightness LED. Software used includes Keil MDK-ARM and the Keil RTXv5 RTOS. To monitor signals and evaluate performance, each student purchases and uses the Digilent Analog Discovery 2 tool as an oscilloscope, logic analyzer, protocol decoder and voltmeter. 


ECE 461/561: Embedded System Design (Analysis and Optimization)

Semester: Spring

Offered: 2024

This hands-on course covers the analysis and optimization of four different embedded system characteristics: code speed (task execution time), system responsiveness, power and energy use, and memory requirements. The quantitative and pragmatic approach of measure, modify, and measure again is used. 

The development platform hardware is the NXP FRDM-KL25Z MCU board with a 48 MHz ARM Cortex-M0+ CPU core and a custom expansion shield with debug signal connectors, touch-sensitive full color 320x240 LCD, speaker, microSD socket, and asynchronous buck converter driver for high-brightness LED. Software used includes Keil MDK-ARM and the Keil RTXv5 RTOS. To monitor signals and evaluate performance, each student purchases and uses the Digilent Analog Discovery 2 tool as an oscilloscope, power analyzer, logic analyzer, timing analyzer, protocol decoder and voltmeter.

ECE 785: Topics in Computer Design

Semester: Spring

Offered: 2024

Students learn to develop multithreaded Linux applications and interface with analog, digital, and serial devices. Students learn how to measure, analyze and optimize the raw code speed for a high-performance CPU running Linux using the compiler and C-language extensions for Advanced SIMD processing. Concepts in for real-time systems, and power or energy optimization are also covered.