Learning Materials
This page contains links to materials that can be used to teach an introductory class on embedded systems. These materials include lecture slides, lab manual, YouTube videos from the MOOC, and interactive web pages. PowerPoint lectures written by Professors Ramesh Yerraballi, Andreas Gerstlauer, Bill Bard, Nina Telang, Vijay Janapa Reddi, and Jonathan Valvano. There are 15 lectures, corresponding to approximately one powerpoint file per week. For each of the lectures there is a corresponding worksheet that can be used as a follow up to gauge students' understanding of that week's lecture.
Lecture slides
Lec1.ppt WS_01.doc |
Introduction, microcontroller, binary, digital logic, Ohm's Law TM4C123, Flowcharts, Design Cycle embedded systems, Thumb-2 |
Lec2.ppt WS_02.doc NOTGate-asm.zip Rand100_4F120asm.zip |
Data flow graphs, call graphs, numbers Debugging, design of a microcontroller-based NOT gate Fixed-point, condition codes, errors, dropout, overflow, truncation, roundoff |
Lec3.ppt WS_03.doc |
Assembly syntax Functions, logic operations Parallel I/O Switches and LED interfaces |
Lec4.ppt WS_04.doc NOTGate-C.zip Primes.zip |
I/O Abstraction, software design, branches Carry and overflow bits |
Lec5.ppt WS_05.doc ParamPassingASM.zip ParameterPassing_4F120.zip FunctionalDebugging.zip |
Functions, ARM Architecture Procedure Call Standard (AAPCS), parameter passing, call by value, call by reference, arrays,
indexing, functional debugging.
Code for parameter passing examples from the slides, book and more.
Parameter passing example (in C).
Functional debugging code from slides |
Lec6.ppt WS_06.doc |
SysTick, and review for Exam1 |
Lec7.ppt WS_07.doc |
PLL, Array access, Abstraction, finite state machines, linked structures, introduction to I/O synchronization |
Lec8.ppt WS_08.doc ModularProgramming.zip |
I/O synchronization, Thread synchronization, fundamentals of interrupts, Periodic interrupts with SysTick, DAC, sound
generation. Modular programming in C |
Lec9.ppt WS_09.doc LocalVariablesASM.zip |
Local variables, LCD interface, blind cycle, fixed-point |
Lec10.ppt WS_10.doc |
ADC fundamentals, Nyquist Theorem ADC Programming |
Lec11.ppt WS_11.doc |
Fixed-point, Data acquisition system, Lab 8 |
Lec12.ppt WS_12.doc |
FIFO Queues UART |
Lec13.ppt WS_13.doc Lec13_UART.zip |
2-D array, structures, Timer2A periodic interrupt, Kentec display, sounds Project illustrating the use of struct |
Lec14.ppt |
Floating Point Security |
Lec15.ppt |
Review |
Lab Manual
There are two lab manuals available for use with this book. The MOOC lab manual describes the labs we used for the edX UT.6.01x online class that we presented Spring 2014. Each lab has two parts, developing the software in the simulator, and then building the hardware. There are interactive and automatic graders for each lab for both simulation and real board. These graders can be found step 2 on the Software Downloads page. The following list maps the twelve labs to the corresponding book chapters:
Lab 2. Hello LaunchPad | Chapters 1, 2 |
Lab 5. Functions in C | Chapters 1, 2, 5 |
Lab 6. Branching, functions, and time delays | Chapters 3 and 4 |
Lab 7. Design and Development | Chapters 2 and 5 |
Lab 8. Switch and LED Interface | Chapters 2 and 4 |
Lab 9. Functional Debugging | Chapter 6 |
Lab 10. Traffic Light Controller | Chapters 6 and 8 |
Lab 11. UART Serial Interface | Chapters 7 and 8 |
Lab 12. Square wave Tuning Fork | Chapters 8 and 9 |
Lab 13. Digital Piano | Chapters 9 and 10 |
Lab 14. Measurement of Distance | Chapters 8, 9 and 10 |
Lab 15. Systems-Level Approach to Embedded Systems | Chapters 1 - 11 |
The other lab manual is the one we use here at the University of Texas to teach our introduction to embedded systems lab. This lab differs from the MOOC lab four ways. First, students are graded by designing, testing, and then showing their system to a teaching assistant or instructor. Second, the first five labs are in assembly, and the last five labs are in C. Third, this manual includes a communications lab, where the students connect two LaunchPads together. Fourth, this manual defines labs with color graphics LCD modules such as the Kentec EB-LM4F120-L35 or ST7735. There are automatic simulation graders for the first six labs.
Lab 1. Digital Logic Implementation | Chapters 1, 2, 3, 4 |
Lab 2. For-loops, while-loops | Chapters 3 and 4 |
Lab 3. Switch and LED Interface | Chapters 2 and 4 |
Lab 4. Functional Debugging | Chapter 6 |
Lab 5. Traffic Light Controller | Chapters 6 and 8 |
Lab 6. Digital Piano | Chapters 9 and 10 |
Lab 7. LCD Device Driver | Chapter 7 |
Lab 8. Measurement of Distance | Chapters 8, 9 and 10 |
Lab 9. Measurement of Distance | Chapter 11 |
Lab 10. Systems-Level Approach to Embedded Systems | Chapters 1 - 11 |
Teaching Videos
Professors Yerraballi and Valvano produced about 170 YouTube videos for the edX UT.6.01x online class. The videos are grouped into 15 YouTube playlists that correspond in number with the MOOC labs. The following is a list of links to the YouTube playlists:
1. Introduction to Class | |
2. Fundamental Concepts | Chapters 1 |
3. Electronics | Chapters 1, 2 |
4. Digital Logic | Chapters 1, 2 |
5. Introduction to C | Chapters 1, 2, 5 |
6. Microcontroller Ports | Chapters 3 and 4 |
7. Design and Development | Chapters 2 and 5 |
8. Switch and LED Interface | Chapters 2 and 4 |
9. Functional Debugging | Chapter 6 |
10. Finite State Machines | Chapters 6 and 8 |
11. UART Serial Interface | Chapters 7 and 8 |
12. Interrupts | Chapters 8 and 9 |
13. DAC and Sound | Chapters 9 and 10 |
14. ADC and Data Acquisition | Chapters 8, 9 and 10 |
15. Systems-Level Design | Chapters 1 - 11 |
Interactive web pages
As part of the edX online class, we made some interactive web pages to illustrate fundamental concepts.
2. Fundamental Concepts | Number conversions |
5. Introduction to C | Flowcharts, C vs assembly |
6. Microcontroller Ports | Input/output, direction register |
7. Design and Development | Successive refinement, if-then, loops |
10. Finite State Machines | Vending machine and stepper motor |
11. UART Serial Interface | Blind, busy-wait, interrupt, serial port |
12. Interrupts | Mail box, context switch |
13. DAC and Sound | Sampling rate, precision, how a DAC works |
14. ADC and Data Acquisition | How an ADC works, Nyquist Theorem |