CS/ECE 5785/6785: Advanced Embedded Software (Fall 2012)
|
This course is about building reliable and efficient embedded
software, with a bias towards whole-system issues. Students complete
several projects in C running on ARM/Linux-based embedded development
boards. The course covers a number of special topics such as embedded
software architectures, digital signal processing, feedback control,
real-time scheduling, verification and validation, wired and wireless
embedded networks, and safety-critical embedded systems.
Also see this blog entry:
Why Take an Embedded Systems Course
- lectures: Tues, Thurs at 02:00 PM-03:20 PM in WEB L110
- labs: TBD
- instructor: John Regehr
- John's office hours: talk to me during lab sessions, or
stop by my office MEB 3470
(also see my schedule)
- TA: TBD
- TA's office hours: TBD
- prerequisites: ECE/CS 5780/6780 is the
suggested prerequisite. However, 5785 is also open to students who
know C and who have taken an undergrad OS course, or equivalent. If
in doubt talk to the instructor.
- class mailing list: cs5785@list.eng.utah.edu -- everyone
enrolled in the class should subscribe to
this list (the list archive may also be useful)
- instructor+TA mailing list: teach-cs5785@list.eng.utah.edu
- add/drop policy: the University is strict on this, see
here for
details and also keep the academic
calendar in mind
- incomplete policy: incompletes are a pain for everyone
involved; I won't give you one unless you have a documented legal or
medical emergency
There is no required textbook. However, these books are recommended:
-
The C Programming
Language (2nd Edition) by Brian W. Kernighan and Dennis M. Ritchie (CS
and ECE students should own a copy of this book anyway).
-
Better Embedded System Software
by Phillip Koopman
-
Students are encouraged to discuss homework solutions and
programming assignments with each other. However, you must never
make an electronic copy of someone's code or assignment, or
type/write while looking at their code or assignment. These count
as cheating.
-
Late homeworks will not be accepted unless you have a good excuse AND
you have made arrangements with me in advance.
- Submission instructions that apply to all labs and homeworks
Every student needs to purchase a
Raspberri Pi model B board.
Of the distributors in the
USA, Element14/Newark
has the shortest lead times. Please order your board ASAP. You also
need accessories
such as an Ethernet cable, a memory card, a power adapter, a video
adapter, etc. It is strongly possible that you can scrounge up this
stuff at little or no cost, but if not, you'll need to buy it.
- Students, working in teams, will complete a
number of programming projects.
-
For cheating purposes labs are like homeworks except that you
work in groups. It is never acceptable to look at another group's
source code or make an electronic copy.
-
All members of a group receive the same grade for each lab.
- The software platform for this course is C.
- For more information see the lab page.
- Late labs will not be accepted unless you have a good excuse AND
you have made arrangements with me in advance.
- Submission instructions that apply to all labs and homeworks
This schedule is always tentative, I always reserve the right to move
lectures around. However, exam dates are fixed once they appear here.
Due dates for homeworks and labs may rarely be moved later, but will
never be moved earlier.
Slides from a previous version of this course (Fall 2010) can all be
found here.
date |
topic | slides | assigned | due |
8/21 |
intro | pdf |
|
|
8/23 |
requirements and architectures | pdf | homework 1 |
|
8/28 |
device teardown |
|
| homework 1 |
8/30 |
architectures |
|
|
|
9/4 |
ISA survey | pdf |
|
|
9/6 |
more ISA survey |
|
|
|
9/11 |
toolchains | pdf | read this |
|
9/13 |
debuggers; embedded C | pdf |
|
|
9/18 |
embedded C |
pdf |
|
|
9/20 |
more embedded C |
|
| LI handin #1 |
9/25 |
volatile | pdf |
|
|
9/27 |
more volatile |
|
|
|
10/2 |
embedded C | pdf |
|
|
10/4 |
more embedded C |
|
|
|
10/9 |
fall break |
|
|
|
10/11 |
fall break |
|
|
|
10/16 |
bounded resources | pdf |
|
|
10/18 |
code review, more stack depth |
|
|
|
10/23 |
interrupts | pdf |
|
|
10/25 |
|
|
|
|
10/30 |
RTOSes | pdf |
|
|
11/1 |
|
|
|
|
11/6 |
embedded networks | pdf |
|
|
11/8 |
|
|
|
|
11/13 |
CAN bus | pdf |
|
|
11/15 |
|
|
|
|
11/20 |
intro to real-time and cyclic executives | pdf |
|
|
11/22 |
Thanksgiving |
|
|
|
11/27 |
scheduling with priorities | pdf |
|
|
11/29 |
response time analysis | pdf |
|
|
12/4 |
rocket launch |
|
|
|
12/6 |
NO CLASS |
|
|
|
12/11 |
take-home final exam due at 3:00pm |
|
|
|
This page is maintained by John Regehr, mail me if you find a
mistake or if any content is unclear.