Embedded System Lecture Notes and Presentations
Prof. Phil Koopman, Carnegie
Mellon University
This is a unified listing my lecture materials on a variety of
topics from my Carnege Mellon University courses, keynote lectures, and other
talks I've given. Please see the copyright notice at
the end of this page before e-mailing about use.
Also see my other content distribution sites:
Code quality, safety, security. (Last update Fall 2021.)
Alternate sources:
Archive.org
18642
Embedded software quality, safety, security
Slides
YouTube
Video
Full Lecture
YouTube Play List
(To access single slides)
Topics
1
Course Overview
Embedded Software
Code Quality,
Safety, Security
(44 min)
Embedded
Software
Code Quality,
Safety, Security
(44 min)
Challenges of embedded code; it only takes one line of bad
code; problems with large scale production; your products live or die by their
software; considering the worst case; designing for safety; security matters;
industrial controls as targets; designing for security; testing isn't
enough
Fiat Chrysler jeep hack; Ford Mytouch update; Toyota UA code quality;
Heartbleed; Nest thermostats; Honda UA recall; Samsung keyboard bug; hospital
infusion pumps; LIFX smart lightbulbs; German steel mill hack; Ukraine power
hack; SCADA attack data; Shodan; traffic light control vulnerability;
hydroelectric plant vulnerability; zero-day shopping list
2
Course administration
No video
6
Peer Reviews
Peer Reviews
(33 min)
Peer
Reviews
(33 min)
Effective code quality practices, peer review efficiency and
effectiveness; Fagan inspections; rules for peer review; review report;
perspective-based reviews; review checklist; case study; economics of peer
review.
Peer Review Checklist
7
Requirements
Requirements
(24 min)
Requirements
(24 min)
Ariane 5 flight 501; rules for good requirements; problematic
requirements; extra-functional requirements; requirements approaches; ambiguity
19
Date/Time
Date Time
(26 min)
Date/Time
(26 min)
Keeping time; time terminology; clock synchronization; time
zones; DST; local time; sunrise/sunset; mobility and time; date line; GMT/UTC;
leap years; leap seconds; time rollovers; Zune leap year bug;
internationalization.
27
Dependability
Dependability
(19 min)
Dependability
(20 min)
Dependability; availability; Windows 2000 server crash;
reliability; serial and parallel reliability; example reliability calculation;
other aspects of dependability
29
Safety Plan
Safety Plan
(26 min)
Safety
Plan
(26 min)
Safety plan elements; functional safety approaches; hazards
& risks; safety goals & safety requirements; FMEA; FTA; safety case
(GSN)
33
Redundancy
Management
Redundancy
Management
(20 min)
Redundancy
Management
(20 min)
Bellingham WA gasoline pipeline mishap; redundancy for
availability; redundancy for fault detection; Ariane 5 Flight 501; fail
operational; triplex modular redundancy (TMR) 2-of-3 pattern; dual 2-of-2
pattern; high-SIL Doer/Checker pattern; diagnostic effectiveness and proof
tests
35
Cryptography
Cryptography
(33 min)
Cryptography
(33 min)
Confusion & diffusion; Caesar cipher; frequency analysis;
Enigma; Lorenz & Colossus; DES; AES; public key cryptography; secure
hashing; digital signatures; certificates; PKI; encrypting vs. signing for
firmware update
37
Security Threats
Security
Threats
(24 min)
Security
Threats
(24 min)
Stuxnet; attack motivation; attacker threat levels; DirectTV
piracy; operational environment; porous firewalls; Davis Besse incident;
BlueSniper rifle; integrity; authentication; secrecy; privacy; LG Smart TV
privacy; DoS/DDos; feature activation; St. Jude pacemaker recall
38
Security
Vulnerabilities
Security
Vulnerabilities
(29 min)
Security
Vulnerabilities
(29 min)
Exploit vs. attack; Kettle spambot; weak passwords; master
passwords; crypto key length; Mirai botnet attack; crypto mistakes; LIFX
revisited; CarShark revisited; chip peels; hidden functionality; counterfeit
systems; cloud connected devices; embedded-specific attacks
40
Security Pitfalls
Security
Pitfalls
(24 min)
Security
Pitfalls
(24 min)
Konami code; security via obscurity; hotel lock USB hack;
Kerckhoff's principle; hospital WPA setup hack; DECSS; Lodz tram attack; proper
use of cryptography; zero day exploits; security snake oil; realities of
in-system firewalls; aircraft infotainment and firewalls; zombie road sign hack
AV Safety
Slides
YouTube
Video
Full Lecture
YouTube Play List
(To access single slides)
Topics
100
Look Who's Driving
AV:
Look Who's
Driving
(54 min) (PBS Nova)
PBS Nova episode featuring experts on autonomous vehicle
development: how AVs work; how close are we to large-scale deployment; will we
ever be able to trust AI with our lives? (Released: Oct 23, 2019)
105
AV: Safety
Architectures
AV: Safety
Architectures
(28 min)
AV:
Safety Architectures
(28 min)
Safety envelopes; doer/checker; shuttle incidents;
physics-based rule checking; uncertainty in world model; validating an AV
pipeline; importance of behavior prediction; fail silent to fail operational;
example architecture; redundancy & decomposition; move to centralized
architecture
Supplemental materials:
NOTES:
- The videos omit some supplemental slides that are included in the slide
handout version
- The "playlists" on youtube have been broken down into
single-slide videos so you can mix and match to make your own playlist lecture
sequences. You should watch the entire playlist to see all the content for a
lecture. In some cases videos from other sources have been included in the
playlist. Full-length lecture videos do not include the other-source material.
- You might want to play some of these videos with a 1.2x to 1.5x speedup if
you are a fluent speaker. (Usually the gear/settings icon will let you do this
in the playback window.)
- If you don't have access to YouTube, most videos are available here:
https://archive.org/details/@pkoopman
Please see the permissive copyright notice
Microcontroller hardware, software, I/O, coding techniques, with coverage of
9S12 microcontroller. (Last taught Spring 2016.)
- Course Intro Background
- Embedded Hardware
- Microcontroller
Instruction Set - Part 1
- Microcontroller
Instruction Set - Part 2
- Engineering Process
Design Techniques
- Embedded Language
Use
- Coding Tricks;
Multiprecision Math; Reviews
- Memory and Memory Bus
- Economics, Code Optimization,
and Fixed Point
- Debug Test
- Serial Ports
- Time; Timer/Counters;
Watchdog Timers
- Interrupts
- Interrupt Cyclic Task
Response Timing
- Preemptive
Context Switching
- Concurrency
- Scheduling
- Digital to Analog, PWM
- Analog Inputs
- Other I/O
- Control
- RTOS Selection; Why
Software Quality Matters
- System Resets,
Robustness Power Management
- Checksums and CRCs
- Bluetooth CAN
Software process, distributed systems, embedded networks, critical systems.
(Last taught Fall 2015.)
- Course Overview Introduction
- Elevators as a distributed embedded
application
- Requirements and Methodical
Engineering
- UML-Based Design Process
- End-to-end design example
- Distributed + Embedded Systems;
Event Triggered vs. Time Triggered
- Reviews Software Process
- Embedded Software Testing
- Verification, Validation Certification
- Embedded System Engineering
Economics
- Embedded Communication Protocols
- CAN Protocol
- CAN Performance
- End-To-End System Scheduling
- Embedded Internet
Embedded Security
- Distributed Timekeeping
- Dependability/Reliability
- Critical Systems Software
Safety
- Critical Systems Engineering
- Humans as a System Component
- FlexRay Protocol
- Ethics Societal Impact
- Time Triggered Protocol (TTP)
Additional reading list. (Note that
"local" links are probably non-functional.)
Memory hiearchy from cache out to virtual memory. (Last taught Fall 1998.)
- Introduction & Overview
- Key Concepts
- Physical Memory Architecture
- Cache Organization &
Access
- Virtual Memory Architecture
- Cache Data Organization
- Associativity
- Data Management Policies
- Memory Devices & Chip
Area
- Multilevel Strategies
- System-Level Effects on
Performance
- Tuning Software for Speed
- Main Memory Architecture
- Main Memory Performance
- Storage Systems
- Vector Architecture
- Vector Performance
- Buses
- Multiprocessor Coherence
- Fault Tolerance in the Memory
Hierarchy
Copyright notice: These
materials are copyrighted by Philip Koopman in the year indicated on the
materials. Downloading and viewing materials for personal use is acceptable
with no further permission. Use in academic settings, informal lunch-and-learn
study groups, and so on is acceptable with no further permission provided
attribution is made to me as author of the material. For-profit training use
(i.e., someone is getting paid specifically to deliver the training, which is a
higher bar than a volunteer presenting a lunch-and-learn informally at a
company) requires permission and a fee, except for small snippets (e.g., no
more than one slide from a lecture) that fall under Fair Use copyright
doctrine. Posting on public web sites, including slide sharing services, video
services, and course note sites is strictly prohibited unless I, the author,
personally do the upload myself. Linking to material I post, including embedded
display of a link to my material, is acceptable and does not require
permission. These are historical lecture slides and might not represent my
current opinions on various topics due to newly available research and
experience. Due to lack of time and resources I do not attempt to keep the
technical content of historical lectures up to date, but pointing out any
substantive errors for future correction on a time-available basis is
appreciated.
Some files may have less restrictive copyright permissions
either noted on the materials themselves or in metadata in my accounts (e.g.,
on archive.org). So long as materials are accessed via my personal account
(e.g., https://archive.org/details/@pkoopman)
those less restrictive copyright permissions prevail on files accessed from
those sources.
If you plan to make substantive use of this material in your
teaching I'd be happy to hear about it, but non-profit teaching, including use
in university courses, use does not require additional permission. In
general I don't have time to respond to queries already handled by this
copyright notice. This information is provided as-is, and proper use, safety,
and other outcomes despite any potential errors or omissions are entirely your
responsibility. For other queries please contact: koopman@cmu.edu