EECS 373: Design of Microprocessor Based Systems
We have a number of educational goals when teaching 373. The primary ones
In the classroom, we will focus on generic principles and ideas. In the
lab, we will focus on the ARM Cortex M3 and the specific
support hardware and software found in the lab. When needed the lecture
will support the lab, and where possible, the lab will support the lecture.
You will find that you will need to spend large amounts of time in the
lab in order to complete your projects -- this is a lab intensive class.
- Learning the basics of embedded systems including hardware/software
- Learning about computer architecture outside of the CPU core.
- Design and implementation of non-trivial projects involving both
hardware and software.
You must have taken EECS 270 and EECS 370 to take this course. This also
implies you have taken EECS 280. I will assume you are familiar with: (on the
hardware side) Boolean algebra, gates, multiplexers, flip-flops, and
finite-state machines, (on the computer architecture side) assembly
language, pipelining, memory, and caching, and (on the software side)
program control structures (if/then/else, while and for loops), functions,
procedures, parameter passing, pointer-based data structures, and basic
structured programming techniques (information hiding, modular programming,
- The honor code is in force on all assignments and
See the Engineering Honor Council web page for more details.
- All individual assignments (e.g. exams, pre-labs, homework and
exams) are to be performed on your own. All group assignments
(e.g., in-lab work, post-labs, group talk) are to be performed
only by members of the group. Verbal collaboration between
members of different groups is permitted for the purpose of helping
classmates to understand concepts essential to the labs or providing
one another with insights into the best way to approach the in-lab
assignments. However, non-verbal collaboration (e.g. drawing
detailed schematics on paper or chalkboard, sharing schematics or
code) is forbidden. You may not help debug another group's hardware
or software without consent from the lab or course instructor. You
are also not allowed to possess, look at, use, or in any way derive
advantage from the existence of code, lab reports, or other material
prepared in prior years.
It is my opinion that students who are
cheating are putting their peers at a disadvantage. We will
very aggressive in dealing with any occurrences.
- Pre-labs are to be done individually. The intent is that both
partners walk into the lab comfortable with the material and ready to
start the in-lab. Pre-labs are due at the start of the lab
session. Pre-labs not turned in within the first 10 minutes of lab
will be considered to be a day late. Late pre-labs lose 10% per
school day that they are late.
In-lab and post-lab assignments are due in lab the week
after the lab is assigned unless otherwise noted. Though
your in-lab work must be done before the start of lab, in-lab
sign-off sheets are due within an hour of the start of lab (so you
have a chance to have your lab instructor sign off on your in-lab
assignment). In-lab and post-lab assignments lose 5% for each day
that they are late.
Be aware that most of the variation in lab grades between
different students will be due to late penalties and pre-lab
questions because the in-lab is graded almost entirely on a done/not
done basis. Staying on top of the labs--even in the face of
technical problems, makes a significant difference in your lab
- You are expected to attend the lab section for which you are
registered. If you would like to switch lab sections, but the
section you want is full, you must find someone in that lab section
to switch with. Once you have agreed on a switch, send email to Matt
Smith. All section switches must be completed before the
second week of lab.
- If there are computers available, you may work in lab during
other lab sections. However the lab staff's first priority will be
the students who are actually enrolled in that lab. The one
exception is that inlab sign-offs will be given reasonable priority.
Each student will be in a 3 person presentation group (there may be one or
two 2-person groups). Each group will
give a 10-12 minute technical talk in class. Each group will have two
graded practice sessions. The goals of these presentations are to A)
Educate students about a wide variety of topics at a "familiarity" level B)
Provide students with the opportunity practice preparing and giving
technical talks to their peers. In some cases students will be able to give
talks on topics related to their class project. Details about these
presentations will be given in class. See the class schedule for details on
The following gives the approximate grade breakdown for labs and exams.
Labs (7) 25%
Exams 35% (15% midterm; 20% final)
HW/Guest talk(s) 10%
Oral presentation 5%