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.
- Homework solutions will be posted soon after the deadline. Late
homework assignments will not receive any credit. To reduce the
angst this policy may cause, your lowest homework score for the
semester will be dropped.
- 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.
- 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 one
graded practice session. The goals of these presentations are to
- Educate students about a wide variety of embedded systems topics
- Provide students with the opportunity practice preparing
and giving technical talks to their peers.
The following gives the approximate grade breakdown for labs and exams.
Labs (7) 25%
Exams 34% (17% midterm 1; 17% midterm 2)
Oral presentation 6%