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 15RTOS 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