Skip to content
Tentative Schedule
- Intro and Embedded Systems
- ZyBooks: assignment 1 and assignment02
- Basic Electronics
- Class Mechanics and Introduction
- Arduino and use of digital pins
- Arduino and use of analog pins
- Design, Abstraction Ladder, and State Machines.
- ZyBooks: Chapters 34.2 and missed-assignment2.5
- Design Methodologies
- Requirements analysis
- State Diagrams
- Debouncing
- Input Devices and Sensing
- DAC, Resistor Tree, PWM, and Filtering
- ZyBooks: assignment03 and assignment04
- More Debouncing (and rolling zeroes algorithm)
- Electronics Recap (Kirchhoff’s and Ohm’s Laws)
- Digital to Analog Converters
- PWM
- Signal Processing (Filtering)
- Arduino and Assembly; Assembly-based delay
- Micro Performance, Optimization, and communication protocols.
- ZyBooks: (no explicit assignment for this one)
- Measuring and Improving Performance
- Performance Optimization Strategies
- Communication Protocols
- More communication protocols and I2C (Practical).
- I2C concepts from Lecture 4; ZyBooks: (no explicit assignment for this one)
- Importance of I2C Addresses
- I2C wiring
- Overall Master-Slave communication steps
- Intro to UNIX I/O.
- ZyBooks: assignment06
- Unix I/O
- RIO (robust I/O) package
- Metadata, sharing, and redirection
- Standard I/O
- Closing remarks: Pros and Cons of each
- Virtual Memory.
- ZyBooks: assignment07 and assignment08
- Types of Computer Storage
- Physical Addressing
- Virtual Memory
- Virtual Address Spaces
- Page Table + Address Translation
- Replacement Algorithms
- Simple Memory Systems
- Core i7/Linux memory system
- Processes.
- ZyBooks: assignment08
- Exceptional Control Flow
- Exceptions
- Processes
- Process Control
- Shells
- Signals
- Nonlocal Jumps
- Memory Allocation.
- Basic Dynamic Memory Allocation
- Implicit free lists
- Advanced Dynamic Memory Allocation
- Explicit free lists
- Segregated free lists
- Garbage collection
- Memory-related perils and pitfalls