Lecture
notes*
Lecture 1: Course overview
and introduction
Readings (references marked with # are
required to be read by graduate students only):
--[0] Chaper 0 of Textbook
--[#] Edward A. Lee and Sanjit A. Seshia, Introduction to Embedded
Systems, A Cyber-Physical Systems Approach. (Chapter 1), Available at:
http://LeeSeshia.org
--[#] Wayne H. Wolf, Hardware-software
co-design
of
embedded
systems, Proceedings of the IEEE, 1994.
Lecture 2: Computer basics
Readings:
--[0] Chaper 1 of Textbook
--[1] M. Morris Mano and Charles Kime, Logic and Computer Design
Fundamentals, Pearson Prentice Hall, 2008. (Chapter 9), Less
than $10 on Amazon
Lecture 3: Intro to ARM Cortex-M3
processor and LPC1768
microcontroller
Readings:
--[1] Shiam
Sadavisan,
An
Introduction
to
the
ARM
Cortex-M3
Processor,
2006 (All)
--[2] Joseph
Jiu,
The
Definitive
guide
to
the
ARM
Cortext-M3,
2007 (Chapters
1,2,3,4)
--[3] LPC17xx
microcontroller
user
manual (Chapters 1,2)
--[4] Cortex-M3
processor
technical
reference
manual (browse it all)
--[5] P. Knaggs and S.
Welsh, ARM assembly language programming, 2006 (browse it all, use
it as additional reference for Lab1)
Lecture 4: Intro to C Programming 1
Lecture 5: Intro to C Programming 2
Lecture 6: Intro to C Programming 3
Lecture 7: Intro to C Programming 4
Lecture 8: Intro to C Programming 5
Readings (apply for lectures 4,5,6,7,8):
--[0] Chapers 6,7 of Textbook
--[1] C Tutorial, http://www.cprogramming.com/tutorial/c-tutorial.html
(All)
--[2] EE 472 Course Note Pack, Univ. of
Washington, 2009, http://abstract.cs.washington.edu/~shwetak/classes/ee472/notes/472_note_pack.pdf
(Chapters 1,2,3,4)
--[3] Teach Yourself C in 21 Days, http://kldp.org/files/c+in+21+days.pdf
(All)
--[4] Jacob Navia (author of lcc-win), C Tutorial,
http://www.cs.virginia.edu/~lcc-win32/C-Tutorial.pdf
(Read quickly all of it; focus on main concepts only)
--[5] Brian W. Kernighan and Dennis M. Ritchie. The
C
Programming
Language. Computer Press. 1989. (very popular book,
some refer to it as the bible?)
--[#] Edward A. Lee and Sanjit A. Seshia,
Introduction to Embedded
Systems, A Cyber-Physical Systems Approach. (Chapter 2,3,4), Available at:
http://LeeSeshia.org
Lecture 9: Interrupts 1, Interrupts 2, Interrupts 3, Interrupts 4
Readings:
--[0] Section 7.6 of Textbook
--[2] Joseph
Jiu,
The
Definitive
guide
to
the
ARM
Cortext-M3,
2007 (Chapters 6,7,8,9;
Appendices C,D)
--[3] LPC17xx
microcontroller
user
manual (Focus on Chapters 6,23)
Lecture 10: Memory revisited
Readings:
--[0] Chapter 4 of Textbook
--[2] Joseph
Jiu,
The
Definitive
guide
to
the
ARM
Cortext-M3,
2007 (Chapter 5)
--[3] LPC17xx
microcontroller
user
manual (Focus on Chapter 2)
Lecture 11: Serial communication buses: UART,
CAN, I2C, SPI, Interrupt
EINT0
Lecture 12: SPI and SD cards
Readings:
--[0] Chapters 16,18 of Textbook
--[2] LPC17xx
microcontroller
user
manual (Focus on Chapters 14,15,16,18)
--[3] Optional: Jonathan W. Valvano, Embedded
Systems: Introduction to Arm Cortex-M3 Microcontrollers, 2012 (Chapter
8)
Lecture 13: DA and AD converters
Readings:
--[0] Chapter 17 of Textbook
--[1] Optional: Jonathan W. Valvano, Embedded
Systems: Introduction to Arm Cortex-M3 Microcontrollers, 2012 (Chapter
10)
Lecture 14: RTOS 1 (process/task, thread, OS,
RTOS)
Lecture 15: RTOS 2 (task scheduling, task
communication), RTOS 3
(mutexes vs. semaphores)
Readings:
--[0] Chapters 11,12 of Textbook
--[1] Optional: Jonathan W. Valvano, Real-Time
Operating Systems for ARM Cortex-M Microcontrollers, 2012.
(Chapters 3,4)
--[2] Optional: Class
Notes
of
EE472
Univ.
of
Washington (Chapter 5)
--[3] Optional: Ivan
Cibrario
Bertolotti,
Real-Time
Embedded
Operating Systems: Standards
and Perspectives, 2006.
Lecture 16: Ethernet
Readings:
--[1] Lab#7, references therein, and the pdf files
included in lab7_files.
--[2] Optional: Class
Notes
of
EE472
Univ.
of
Washington (Chapter 9)
*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!
ARM
Teaching
Resources,
Guest
Lectures/Workshops,
Research
Papers
http://abstract.cs.washington.edu/~shwetak/classes/ee472/
// Shwetak N. Patel, Univ. of
Washington
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://homes.soic.indiana.edu/geobrown/c335
// Jeff Brown, Indiana
http://www.eecs.umich.edu/courses/eecs373/overview.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://cseweb.ucsd.edu/~kastner/teaching/cse237d/lectures
// R. Kastner, 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