|
CE-2810
Embedded Systems 2
Spring 2008
Dr. Mark L. Hornick
|
Description
Syllabus
Policies Quizzes/Homework
Grading
Revision History
3/12/2008 Quiz schedule published.
4/6/2008 Final Exam date posted
4/14/2008 Midterm study guide posted
* * * 5/8/2008 Final Exam date updated * * *
This page was last updated on
05/19/2008.
Class Schedule
Lectures are held on Monday and Wednesday in
L306
from 2:00pm to 2:50pm.
Labs are on Thursday in S314 from 2:00pm to
3:50pm.
As stated in my
general course policies,
attendance is mandatory for all lectures and labs. Email me when you
foresee yourself to be absent. I will administratively drop anyone who misses 3
or more lectures or labs. Be sure to read the entire document for all
relevant policies that apply to this course.
Course
Description
This class builds on CE-2800
and introduces C as a high-level language for embedded systems programming. C
pointers are introduced. C functions are introduced. Parameter passing by value
versus using pointers is described. Interrupts in C are introduced and then the
C/assembly interface is described. Designing modular applications by use of
multiple files is described. Several subsystems, such as the USART and Timer
system, are introduced . Key concepts are applied in laboratory exercises.
Please consult the
official course description for detailed objectives.
Textbook, Documentation & Toolset
No textbook is required for this course. You will instead
be making extensive use of the AVRStudio and GCC reference guides, which are distributed via
the wiki.
Syllabus
Week |
Day |
Topics |
Reading |
Lab
(Thursday) |
1
|
M |
Course Introduction
AVR Studio GCC Development
tools |
|
Lab 1:
Embedded C Application |
W |
Similarities between C and Java
(conditionals, loops, primitive types) |
Update
WinAVR |
2
|
M |
Differences between C and Java
(header files, global/local variables, storage classes, type qualifiers,
conditional compilation) |
|
Lab 2: Keypad
Reader |
W |
...continued
Standard C Libarary |
Sample code from lectures:
gccDemo.zip |
3
|
M |
Quiz 1
Analyzing compiled code |
wiki explanation of .lss file
content |
Quiz 2
Lab 3: LCD Device Driver |
W |
Interrupts in C |
handout #1 given in class
wiki article on interrupts in C |
Spring Break |
4
|
M |
Mixing C and Assembly |
handout #2 given in class |
Quiz 3
Lab 4: Interrupts in C |
W |
Mixing C and Assembly continued |
|
5
|
M |
Mixing C and Assembly continued |
Sample code from lecture:
ArgumentPassing.zip |
Quiz 4
Lab 5: Mixing C and Assembly |
W |
C Pointers |
|
6
|
M |
Review/Catch-up |
Study Guide for exam |
Lab
6: Annoying Greeting Card |
W |
Midterm Exam |
|
7
|
M |
More on C Pointers
Arrays and
Strings in C |
|
Quiz 5 - C pointers
Lab 7: Jawdropper lab |
W |
Addressing, Indirection
(passing arguments by value vs. reference)
Structs |
|
8
|
M |
Serial Communications |
pp 138-166
Atmega32 Manual
pp 40-43
Atmega32 Reference Guide |
Lab 8: USART
Quiz 6(W9) - C typedefs, function pointers,
"classes"
Lab 8: final
demonstrations |
W |
USART subsystem |
Sample Code:
echo.c |
9
|
M |
structs, typedefs,
function pointers, & the genesis of C++ |
Sample Code:
rectangle.zip |
W |
mini lab CClassApp.zip |
|
10
|
M |
Building C libraries (.a files) |
|
W |
Review and Study Guide |
|
11
|
Common
Final Exam
Tuesday, May 20, 2008
11:00am-1:00pm
L306 |
Course policies
My general course policies
apply to this course.
Quizzes & Homework
Quizzes or Homework will be given or assigned each week.
You are encouraged to work with your classmates on
homework, so that you can more fully understand the problem and discuss
approaches to solution. However, you should work out the solutions to problems
individually. Homework problems will be kept short, and will be due the next
class period after which they are assigned unless stated otherwise in the
homework description.
Quizzes, when given instead of homework, will be given at the beginning of
the Lab session. No quiz will be given the week of the Exams. No make-up quizzes will be given.
Grading algorithm
Note that this algorithm indicates how a grade will be determined for
students who have successfully demonstrated mastery of the course objectives. An acceptable level of
success in meeting all course objectives is a prerequisite for a passing grade
in the course.
Criterion |
Weight |
Labs |
35% |
Quizzes |
20% |
Midterm Exam |
20% |
Final Exam |
25% |
Documentation Standard
All source code submitted must use
JavaDoc commenting conventions and meet the minimum documentation standards
outlined below.
- The beginning of each source
file should contain:
- The name of the file.
- A short description of the
purpose of the code contained in the file.
- The date it was originally
written.
- The original author.
- A modification log (when
appropriate) which describes:
- What modifications were
made.
- When the modifications
were made.
- Who made the
modifications.
- Each function should
contain the following documentation:
- Explanatory notes regarding
the overall usage of the function; that is, what the functiondoes.
- The parameters passed in
the formal argument
- What the functionreturns
(if anything)
- Any sources other than the
author (Web URL, fellow student, etc.) that aided in the design of
the function(and what aid was provided).
- Explanatory notes regarding
the internal workings and coding whose purpose is not immediately
obvious to someone with your current level of programming knowledge
.