Lecture
notes*
Lecture 1: Introduction
Readings:
--[1] Edward A. Lee and Sanjit A. Seshia,
Introduction to Embedded Systems, A Cyber-Physical Systems Approach.
(Chapter 1), Available
for download here: http://LeeSeshia.org
--[2] Wayne H. Wolf, Hardware-software
co-design of embedded systems, Proceedings of the IEEE, 1994.
--[3] M. Timmerman, Embedded
Systems Defined, 2007.
Lecture 2: C Programming
--Part 1:
Variables, Structures 1, Instructions (for, break, switch)
--Part 2:
Bitwise operators, Functions, Pointers 1
--Part 3:
Pointers 2, relation between pointers and arrays, operations on
pointers
--Part 4:
Structures 2, access to structure members, structure inside
structure
Readings:
--[1] C Tutorial, http://www.cprogramming.com/tutorial/c-tutorial.html
Lecture 2: Data flow
graphs, Call graphs, Flowcharts, Algorithmic
State Machine (ASM) charts
Readings:
-- Optional: Jonathan W. Valvano, Embedded
Systems: Real-Time Interfacing to ARM Cortex Microcontrollers,
Volume 2, 2012 (Ch. 1).
Lecture 3: Intro to ARM Cortex-M3
processor and LPC1768 microcontroller, (Notes 1)
Readings:
--[1] Joseph
Jiu, The Definitive guide to the ARM Cortex-M3, 2007 (Chapters
1..4)
--[2] ARM
Architecture Reference Manual, (Look for ARMv7-M, Known as the
ARM_ARM document, Requires free registration to download PDF 1020
pages, browse it only)
--[3] Cortex-M3
processor
Technical Reference Manual (browse it all)
--[4] LPC17xx
microcontroller
User Manual (Chapters 1,2)
Additional:
--[5] Shiam
Sadavisan, An Introduction to the ARM Cortex-M3 Processor, 2006
(browse it all)
--[6] P. Knaggs
and S. Welsh, ARM Assembly Language Programming, 2006 (if
interested in studying more Assembly programming)
Lecture 4: Interrupts 1,
Interrupts
2, (Notes on
INT0)
Readings:
--[1] Joseph
Jiu, The Definitive guide to the ARM Cortex-M3, 2007 (Chapters
5..9; Appendices C,D)
--[2] LPC17xx
microcontroller
User Manual (Chapters 6,23)
Lecture 5: Memory revisited
Readings:
--[1] Joseph
Jiu, The Definitive guide to the ARM Cortex-M3, 2007 (Chapter
5)
--[2] LPC17xx
microcontroller
User Manual (Chapter 2)
Lecture 6: Serial communication
buses: UART, CAN, I2C, SPI
Readings: See last slide of the PPT presentation.
Lecture 7: DAC and ADC
Readings:
--[1] Optional: Sergio Franco, Design with
Operational Amplifiers and Analog Integrated Circuits, McGraw Hill,
3rd edition, 2003 (Ch. 12).
--[2] Optional: Jonathan W. Valvano, Embedded
Systems: Introduction to Arm Cortex-M3 Microcontrollers, 2012 (Ch.
10).
Lecture 8: WiFi, BlueTooth
Lecture 8 supplemental: SPI and SD cards
Readings:
--[1] LPC17xx
microcontroller user manual (Focus on Chapters 14,15,16,18).
--[2] Optional: Jonathan W. Valvano, Embedded
Systems: Introduction to Arm Cortex-M3 Microcontrollers, 2012 (Ch.
8).
Lecture 9: RTOS 1 (process/task, thread,
OS, RTOS)
Lecture 10: RTOS 2 (task scheduling, task
communication)
Lecture 11: RTOS 3
(mutexes vs. semaphores)
Readings:
--[1] James K. Peckol, Embedded Systems, A
Contemporary Design Tool, John Wiley & Sons, Inc., 2007. (Ch.
11,12)
--[2] Jonathan W. Valvano, Real-Time Operating
Systems for ARM Cortex-M Microcontrollers, 2012. (Ch. 3,4)
--[3] Class
Notes
of EE472 Univ. of Washington (Chapter 5)
--[4] Ivan
Cibrario
Bertolotti, Real-Time Embedded Operating Systems: Standards and
Perspectives, 2006.
Lecture 12: Ethernet
Readings:
--[1] Lab#10, references therein, and the pdf
files included in lab10_files archive.
Lecture 13: Introduction to FPGAs
Lecture 14: UML
Statecharts
*In creating many of the lecture notes here, I got inspiration from
some of the teaching materials and lecture notes graciously shared
by many professors/researchers from different
universities/organizations. As an open-source supporter, hereby, I
acknowledge them all and extend my many thanks to all of them for
publicly sharing their course materials!
http://homes.soic.indiana.edu/geobrown/c335
(lab manual)
// Jeff Brown, Indiana
http://abstract.cs.washington.edu/~shwetak/classes/ee472/
// Shwetak N. Patel, Univ. of Washington
http://kastner.ucsd.edu/ryan/courses
// R. Kastner, UCSD
http://www1.cs.columbia.edu/~sedwards/classes/2012/4840/index.html
// S.A. Edwards, Columbia
http://users.ece.utexas.edu/~valvano/
// Jonathan W. Valvano, UTexas
http://users.ece.utexas.edu/~valvano/EE319KSp13.html
// Jonathan W. Valvano, UTexas
http://users.ece.utexas.edu/~valvano/EE345M/
// Jonathan W. Valvano, UTexas
http://users.ece.utexas.edu/~gerstl/ee319k_s13/resources.html
// Andreas Gerstlauer, UTexas
http://users.ece.utexas.edu/~gerstl/ee382v_f11/schedule.html
// Andreas Gerstlauer, UTexas
https://ece.uwaterloo.ca/~yqhuang/labs/ece254/document.html
// Irene Huang, Univ. of Waterloo
http://www.eecs.umich.edu/eecs/courses/eecs373/refs.html
// Mark Brehob, UMich
http://wiesel.ece.utah.edu/redmine/projects/ece5780-s12/wiki#Books-on-Embedded-Systems
// Thomas Schmid, Utah
http://ecee.colorado.edu/~mcclurel/index.html
// Linden McClur, Boulder
http://www.cecs.uci.edu/~gajski/eecs222/index.html
// D. Gajski
http://cseweb.ucsd.edu/classes/wi12/cse237A-a/index.html
// T. Rosing, UCSD
http://chess.eecs.berkeley.edu/design/index.html
// A. Sangiovanni-Vincentelli
http://chess.eecs.berkeley.edu/eecs149/overview.html
// Edward A. Lee and Sanjit A. Seshia
http://www.engr.colostate.edu/~sudeep/teaching/cs_ece_561.htm
// Sudeep Pasricha, Colorado State
http://esd.cs.ucr.edu/index.html
// Frank Vahid and Tony Givargis
http://ls12-www.cs.tu-dortmund.de/daes/daes/mitarbeiter/prof-dr-peter-marwedel/embedded-system-text-book/slides/slides-2010.html
// P. Marwedel, Dortmund
http://ls12-www.cs.tu-dortmund.de/daes/en/lehre/english-courses/ss11-cyber-physical-system-fundamentals.html
// P. Marwedel, Dortmund
http://www2.hh.se/staff/tola/cooperating_embedded_systems
// Tony Larsson, Halmstad University
http://ecee.colorado.edu/~ecen5623
// Sam Siewert, Boulder
http://web.eecs.umich.edu/~jfr/embeddedctrls/index.html
// Jim Freudenberg, UMich
ARM
Teaching Resources, Guest Lectures/Workshops, Research Papers