Week |
Tuesday |
Thursday |
1
|
Jan 15
|
Lecture 1: Introduction (Chapter 1; Syllabus)
|
- Course administration
- Electronics, logic
- Numbers, binary, decimal, hexadecimal
|
|
|
Jan 17
|
Lecture 1: Embedded systems (Chapter 2)
|
- Development cycle
- Flow charts, data flow and call graphs
- ARM programming
|
|
|
2
|
Jan 22
|
Lecture 2: I/O (Sections 4.1.2, 4.2.1)
|
- Parallel ports, direction registers
- Logical and shift operations
- Keil tools
|
|
|
Jan 24
|
Lecture 2: Architecture (Chapter 3, Patt Chapter 11, 12)
|
- ARM architecture and execution
- Simple addressing modes, memory operations
- Introduction to C programming
|
|
|
3
|
Jan 29
|
Lecture 3: Debugging (Section 4.6, 5.8; Patt Chapter 15)
|
- Debugging techniques: monitors, breakpoints, single stepping
- Debugging using Keil tools
|
|
|
Jan 31
|
Lecture 3: Board (Section 4.2.2)
|
- Switch and LED interfacing
- Demo of the board (bring board to class)
|
|
|
4
|
Feb 5
|
Lecture 4: Arithmetic (Section 3.3.6, 5.3; Patt Chapter 13)
|
- Arithmetic overflow
- Condition code bits, Conditionals
- Control structures: branches, loops
|
|
|
Feb 7
|
Lecture 4: Modular programming (Section 5.2, 3.3.8; Patt Chapter 14)
|
- Abstraction and refinement
- C functions
- Subroutines and parameter
|
|
|
5
|
Feb 12
|
Lecture 5: Pointers (Section 6.1-6.3; Patt Chapter 16)
|
- Indexed addressing mode
- Arrays and strings
- C pointers
|
|
|
Feb 14
|
Lecture 5: Functional debugging (Section 6.9)
|
- Debugging dump
- Arrays and strings in C
|
|
|
6
|
Feb 19
|
Lecture 6: Timers (Section 4.4)
|
- SysTick Timers
- Review for Test 1
|
|
|
Feb 21
|
Test 1 (closed book):
|
|
|
|
7
|
Feb 26
|
Lecture 7: FSMs (Section 6.4, 6.5)
|
- Finite state machines (FSMs)
- Linked structures
- C structures
|
|
|
Feb 28
|
Lecture 7: Data structures (Patt Chapter 19)
|
- Abstract C data types
- Linked lists
- FSMs in C
|
|
|
8
|
Mar 5
|
Lecture 8: Variables, parameters (Section 7.1-7.5; Patt Chapter 17)
|
- Local variables
- Stack frames and recursion
- C parameter passing and scoping
|
|
|
Mar 7
|
Lecture 8: LCD interface (Section 7.6-7.8)
|
- Fixed-point numbers, number conversions
- LCD programming
|
|
|
9
|
|
|
10
|
Mar 19
|
Lecture 9: Interrupts (Section 9.1, 9.2, 9.4)
|
- I/O synchronization
- ARM interrupts and interrupt processing
- Interrupt controller
|
|
|
Mar 21
|
Lecture 9: Interrupts (Section 9.6, 9.3)
|
- Periodic (SysTick) interrupts
- Thread synchronization
|
|
|
11
|
Mar 26
|
Lecture 10: D/A conversion (Section 10.1-10.3)
|
- Digital to analog conversion (DAC)
- Resistor networks, voltage dividers, DAC design
- Sound and music generation
|
|
|
Mar 28
|
Test 2 (closed book):
|
- In lab (room TBA), 7-9pm
- Chapter 1 - 7
|
|
|
12
|
Apr 2
|
Lecture 11: A/D conversion (Section 10.4-10.6)
|
- Analog to digital conversion (ADC)
- Lab 8 design methods
|
|
|
Apr 4
|
Lecture 11: Numerical calculations (Section 7.6)
|
- Multiplication and division
- Interpolation and calibration
|
|
|
13
|
Apr 9
|
Lecture 12: Serial I/O (Section 8.1-8.2)
|
- Serial communications interface (SCI)
- Serial interrupts
- Lab 9 introduction
|
|
|
Apr 11
|
Lecture 12: Thread communication (Section 11.1-11.4)
|
- Producer-consumer problems
- FIFO queues
|
|
|
14
|
Apr 16
|
Lecture 13: Game programming
|
- 2-D arrays
- Bitmaps, sprites
- Data structures
|
|
|
Apr 18
|
Lecture 13: Game programming
|
- Game engine design
- Lab 10
|
|
|
15
|
Apr 23
|
Lecture 14: Floating-point
|
- Number representation
- IEEE 754
|
|
|
Apr 25
|
Lecture 14: Embedded system design
|
- Design trends and technologies
- Future design challenges
|
|
|
16
|
Apr 30
|
Lecture 15: Review and Wrapup
|
|
|
|
|
Final
|
Saturday, May 11
|
Final Exam:
|
7:00 pm - 10:00 pm
|
|