Embedded Syllabus
Embedded Syllabus
A hands-on lab component will provide students with direct experience on both the hardware and
software commonly used in embedded system design.
Classroom lectures will also be augmented with handouts and other materials.
Goals of the Course
This course is designed with two complementary goals:
1. To understand the scientific principles and concepts behind embedded systems, and
2. To obtain hands-on experience in programming embedded systems.
The first goal will enable you to transcend the "hot technology du jour" and the "buzzword of the
month" trends, and apply concepts as technologies mature/obsolesce and new technologies are
born.
The second goal will instill practical skills using hands-on intensive experience and will serve as
the path by which you will be "learning by doing".
Specific Goals
Understand the "big ideas" in embedded systems
Obtain direct hands-on experience on both hardware and software elements commonly used
in embedded system design.
Understand basic real-time resource management theory
Understand the basics of embedded system application concepts such as signal processing
and feedback control
Understand, and be able to discuss and communicate intelligently about
Embedded processor architecture and programming
I/O and device driver interfaces to embedded processors with networks, multimedia cards
and disk drives
OS primitives for concurrency, timeouts, scheduling, communication and synchronization
Due to hardware constraints, you may have to wait for workstation space in the course laboratory. So,
please, please, plan to work on your lab projects early and do not wait until the last minute.
You may miss your project deadline just because you had to wait for a workstation to become
available. You will not be given grace extensions just because you could not get access to the lab
equipment on your schedule. You will have adequate time for each project to be carried out in
the lab; this is ample time for you to schedule completion of your project despite these lab
constraints.
Use the blackboard facilities available on the course web-page to send e-mail to the instructors,
TAs, the course secretary, class students or all of the above. A discussion board is also available
for posting questions, comments and answers.
Special Circumstances This version of the course will be broadcast live to an AIT campus in
Greece (Athens Institute of Technology). As such, a batch of students will join us remotely on an
interactive audio-video hookup adding to the already rich diversity of students on CMU campus.
We encourage students on both the CMU and AIT campuses not to be distracted by such a
distance-learning infrastructure it is likely to be the wave of the future! Please engage yourself
in the activities of the class by being interactive, raising questions (and offering answers, too) and
we strongly expect that the differences posed by the distances essentially go away.
Course/Office Hours
Class CMU campus students: Wednesday & Friday 09:30 - 11:20 am (Eastern Time)
AIT campus students: Wednesday & Friday 04:30 - 06:20 pm (Greece Time)
Very Important: We have a limited number of hardware kits, relative to the class size. Please
do not postpone working on your project until the last minute; you may not get access to the
lab equipment workstations at the times you like. Failure to obtain access to a workstation at
the last minute will not be considered a valid reason for postponement of a project deadline, or
for elimination of penalties in your project score.
Evening recitations will be conducted as the situation warrants and will be relatively infrequent.
When conducted, they will normally be in the evening (possibly 7-9pm). Due to the time-zone
differences, it is likely that the CMU and AIT campus students will have separate recitation
sessions conducted by their respective local personnel.
Office Hours: As listed above for each instructor and by appointment.
Textbooks
No regular textbooks will be used in the course. Copies of all reading materials, and lecture
handouts, will be available online on the blackboard course web-site. . You are responsible for
printing your own hard-copies of handouts to bring to the class-room for each lecture. To give
you enough time to do this, electronic versions of the slides for each lecture will be available off
the courses BlackBoard site, inside the Lectures folder, 24 hours before each lecture.
Exception: The instructors will bring the handouts for quizzes and exams to class.
References
Embedded Systems Design by Steve Heath.
The IEEE POSIX standard.
"Principles of Concurrent and Distributed Programming", by Ben Ari.
"Real-Time Systems", by Jane Liu.
Meeting Deadlines using the Rate-Monotonic Analysis Approach by Leblanc and D. Roy.
Programming in C
Because the projects involve extensive use of C programming, it is a good idea to own a C book. One
good choice is Practical C Programming' by Steve Qualline, which can be ordered from O'Reilly &
Associates (http://www.oreilly.com/) by calling (800) 998-9938.
Another is Portable C' by Henry Rabinowitz and Chaim Schaap, which should be available at the
CMU bookstore.
In addition to a general C book, we recommend C Traps and Pitfalls by Andrew Koenig for novice
C programmers -- it illustrates common problems encountered by those new to C.
You will need to know Intel Xscale (or ARM) assembly-language programming fairly well, to get
good grades in this course. If you have not learnt or done assembly-language programming in the past,
you have to dedicate considerable time and effort to come to speed on this component of the course.
Things to remember:
You will need to know assembly language programming to just get Project 1 done.
Significant amounts of literature and training materials with examples are available online on the
course web-site.
In addition, use Internet search engines (using keywords like "ARM Assembly Language
Programming Tutorial" to track down and read more examples until you feel comfortable.
Assignments/Grading
The course will be graded on an absolute scale, with a total of 1000 possible points partitioned as:
200 points from Quizzes (5 of them, each worth 50 points). The lowest quiz score will be dropped
and there will be no make-up quizzes.
300 points from Exams (2 of them, each worth 150 points)
500 points from Projects (5 of them, each worth 100 points)
Grading Scale
90% - 100%: A
80% - 89%: B
70% - 79%: C
60% - 69%: D
00% - 59%: R
2 Sep 03 Intel Xscale Assembly Intel Xscale Exception Recitations will be held
Language and C Handling and SWI
to provide more
detailed information
3 Sep 10 Intel Xscale Monitor, Profiling and Code Quiz #1 on Fri
Program Loading and Optimization
Initialization Quiz #1
11 Nov Applying RMA in Real Life A/D & D/A Conversion Quiz #4 on Wed
05 Quiz #4
2 This
schedule is tentative and subject to revision to accommodate instructors and travel
schedules.
Extra Credit
In addition to the 1000 points, with the permission of the instructors, students may earn up to 25
points of extra credit by writing documentation for various parts of the 18-349 lab.
Evening Recitations
The evening recitation sections will only meet a few times during the term, generally for tutorial
sessions or project reviews. Advance warning (including notices on the web pages) will be provided
when the recitations will meet. Although it is not required, you should otherwise view the recitation as
pre-scheduled time for working on your projects. However, please remember that you signed up for
these times, and are required to have them available if they are needed.
Exams
There will be two exams: a mid-term exam and a final exam. The mid-term exam will be in class,
in lieu of a lecture. The final exam will be scheduled later during finals week. Tentative exam
dates are shown on the class schedule. Exams will focus on newer material (i.e., topics covered
since the last exam), but they will be cumulative in that the class builds upon its own foundations.
Do not be surprised to see a question about something that many students struggled with on an
earlier quiz or exam.
Quizzes
Quizzes will be given in class throughout the term. Tentative quiz dates are shown on the class
schedule. Quizzes will test material covered during the previous few lectures. Quizzes are only given
during class and no early or make-up quizzes will be given. The lowest quiz score will be dropped at
the end of the semester; so if you expect to miss a quiz, plan on missing no more than one quiz!
We encourage you to work together with your classmates to help you understand the basic
concepts. However, you are required to do your own projects. Any aid or ideas that you
incorporate into your project must be documented with:
1) The extent of the help that you received, and
2) The names of the individuals who helped you.
Failure to do this will constitute cheating and result in a failing grade for the course.
Projects may be submitted after the due date, but are subject to a 10% (of the available points) per
day late penalty 1.
1. Any days, including Saturday and Sunday, are counted as late days.
2. Due to Carnegie Mellon University policy, we cannot accept any work after the last day of
class. Therefore, all projects must be submitted by 5:00 pm on the last day of classes - there will
be no exceptions.
The class is expected to be big (>100 students) - so get the biggest bang for your tuition dollars
by contacting and interacting with the instructors directly and personally.
The instructors will also try to stimulate your thinking juices by giving out handouts and articles
that discuss advanced concepts pertaining to embedded real-time systems. While you do not need
to understand these materials to do well in 18-349, they will try to provide additional food for
thought. The market for embedded systems is exploding, and you should each be thinking of new
and innovate ways to contribute to (and benefit from) this trend.
Cheating will result in a failing grade for the course. Students are referred to the University Policy
about Cheating and Plagiarism.
Maintain integrity
You are all training to become professionals. So, act professionally. Integrity is a core aspect of
professional ethics. You need to both exhibit integrity and expect integrity.
Do not use solutions from prior years.
Do not hand over solutions to students for use in successive years.
To be fair to most students who work hard and play fair, any and all violations will be dealt
with seriously. You could be putting your degree and career in serious trouble by violating
this code of ethics. Think before you act: are you ready to take the fallout? If you think you
can, you would be wrong.