Department of Electrical and Computer Engineering
Montana State University

EE475:  HW & SW Engineering for Embedded Systems

Topics and Notes Summary (12/15/2003; updated frequently):


Dec. 18

Final Exam.
Meet at noon in the normal class room.  Exam is open book and comprehensive:  material will come from the two midterms, the lab exercises, the homework problems, and the lecture notes.  I will be looking primarily at your software design and embedded systems problem solving skills.

 

Dec. 11

Last class period.

Lecture:  finish project demonstrations.
Discuss final exam topics.
Discuss a few issues for starting a new business.

 

Dec. 9

Meet in the lab room during class time for the project demonstrations.  Any projects that we don't get to will be demonstrated on 12/11/03 during class.

 

Dec. 4

Project reports are due at the start of class.

Lecture:  Continue discussion of digital signal processing (DSP) in microcontrollers.  The course/instructor evaluation forms will be filled out during class.

 

Project demonstrations will be held during class time on Tuesday, December 9.  Please meet in the lab room at the normal class time (9:00AM).

 

Dec. 2

Lecture:  Complete Huffman decode example.  Discuss microcontroller hardware timers.  Begin discussion of digital signal processing (DSP) in microcontrollers.

 

Lab:  Please meet with your team.  Project reports are due at the start of class on Thursday!

 

Nov. 27

Thanksgiving Holiday (no MSU classes)

 

Nov. 25

Lecture:  Review exam results (hi:  100, low: 52, avg: 85).
Discuss rate monotonic scheduling.  Go through a simple Huffman decoding example.

 

Lab:  I will meet with each team starting at 2:10PM in the lab.  Project reports are due a week from Thursday!

 

Nov. 20

Second midterm exam (in class).  The exam is open book and open notes (but NO CONSULTANTS). Be sure to bring a calculator to help solve one of the exam problems.

 

Nov. 18

Lecture:  Timing, latency, and tick resolution issues.  Begin encoded data example using Huffman code.

Lab #8 is due at the start of class.

Lab:  I will meet with each project team individually starting at 2:10PM in the lab room.  Please be prepared to give a status report, thanks.

Nov. 13

Lecture:  Discuss project proposals; discuss guest speaker's presentation; continue task timing/latency discussion.

Homework #4 is due at the start of class.

 

Nov. 11

Veterans' Day Holiday (no MSU classes)

 

Nov. 6

Lecture:  Table lookup wrap-up (look up index and sample increment calculations); begin discussion of task timing issues, priority inversion, and interrupt latency for microC/OS-II and in general.

 

Nov. 4

Lecture:
(1) Table lookup methods (here are some supplementary notes)
(2) Discuss microC configuration for Lab #8

I've written a short description of how to use command line arguments in C.  I discovered that this isn't explained in the course textbooks.

Lab:  Work on Lab #8, using microC/OS-II in a command window on the PC.

  • Here are the lab #8 example files.

  • If not installed already:  Unzip turbocpp.zip into a directory c:\borland\bc31  .  Be sure to check "use folder names" when unzipping.

  • If not installed already:  Unzip micrium.zip into the c:\ directory.  Be sure to check "use folder names" when unzipping.

Oct. 30

Lecture:
(1) Semaphores in microC/OS-II, and example #1.  This will be used in the lab next Tuesday.
(2) Table lookup methods.

Homework #4 (.pdf or .htm):  C programming problems involving writing signal data to a text file, due at the start of class on Thursday, November 13, 2003.
Here is the table data file (header):

sinetable.h

EE475 Project Assignment (.pdf or .htm):  Written proposals are due AT THE START OF CLASS on Thursday, November 6, 2003.  Proposals will be approved, modified, or rejected by the next class period. Completed project reports are due AT THE START OF CLASS on Thursday, December 4, 2003.

Oct. 28

Lecture:  RTK concepts, stream processing, and scheduling alternatives.

Lab:   Work on Lab #7, which involves a few exercises with the ZAP Simulator (part of the Cosmic Tools).

Here are the two test files:
lab7_1.c
and
lab7_2.c

Here is a summary of results for the course questionnaire.  Thanks again for your time and comments!

Oct. 23

Lecture:  microC/OS-II task control and task creation.

Mid-semester course questionnaire was distributed and collected.

Handout:  Audio RTK article (please read before next class).

 

Oct. 21

Lecture:  microC/OS-II tasks and control structures.

Lab:   Work on Lab #6, which involves a simple multitasking arrangement on the EVBs.  There are two code segments that will help get you started:

lab6.framework1.txt
and
lab6.framework2.txt

 

Oct. 16

Lecture:  Semaphores and task communication.

Homework #3 is due at the START of class.

 

Oct. 14

Lecture:  Return mid-term exams and discuss results.  Continue material on Real Time Kernels and start specifics of microC/OS-II.

Lab:   Work on Lab #5, which involves setting the LEDs and reading the toggle switches on the EVB I/O board, plus using the HC-12 Real Time Interrupt to generate a digital waveform to view on the oscilloscope.

 

Oct. 9

NO EE475 CLASS THIS DAY

We will have a special guest lecture early in November as a make-up.

 

Oct. 7

First midterm exam (in class).  The exam is open book and open notes (but NO CONSULTANTS).

There will be NO LAB this day.

Lab #4 is due by 2PM (at my office or in my mailbox).

 

Oct. 2

Lecture:  Continue intro material on real time kernel processing.

Homework #3 (.pdf or .htm):  One C programming problem involving opening and reading a binary file, due at the start of class on Thursday, October 16, 2003.
Here are the four data files:

binfile_0.dat
binfile_1.dat
binfile_2.dat
binfile_3.dat

ReminderWe will have the first midterm exam in class on Tuesday, October 7.

 

Sept. 30

Lecture:  Start material on real time kernel processing.

Lab:  Turn in Lab #3 at the START of the lab period.  In  Lab #4 you will implement a simple foreground/background system using interrupts.

ReminderWe will have the first midterm exam in class on Tuesday, October 7.  The exam will cover concepts of C programming and the topics covered in the labs up through 9/30/03.

There will be NO LAB on 10/7/2003.  Memo Reports for Lab #4 are due by 2PM on 10/7/2003.

There will be NO CLASS on 10/9/2003.

 

Sept. 25

Lecture:  Wrap-up C language review (complete the rest of notes on the use of pointers in C).

Assignment:  Look over Chapter 2 of the MicroC/OS-II textbook and start learning the terms used in real time kernel systems.

Advance noticeWe will have the first midterm exam in class on Tuesday, October 7.  The exam will cover concepts of C programming and the topics covered in the labs up through 9/30/03.

There will be NO LAB on 10/7/2003, and NO CLASS on 10/9/2003.

 

Sept. 23

Lecture:  C Language review (notes on the use of pointers in C).

Lab:  Remember to turn in Lab #2 at the START of the session today.  For Lab #3 we will be investigating memory usage of C programs using the Cosmic tools, including a basic understanding of the linker and some practice using the D-Bug12 commands.

Here is a helpful reminder sheet prepared by Prof. Cady for the HC12 EVBs (D-Bug12 routines, interrupt addresses, etc.).

 

Sept. 18

Lecture:  C Language review (flow control; start discussion of pointers).

Homework #2 (.pdf or .htm):  One C programming problem involving opening and reading a text file, due at the start of class on Thursday, September 25, 2003.

Here is an example text file for use in verifying your HW2 solution.

 

Sept. 16

Lecture:  C Language review (storage classes, variable scope, arrays and structures).

Assignment:  review the material on "pointers" in the textbook.

Lab:  Plan to turn in Lab #1 at the start of the session today.  We will be working on Lab #2 (Tornado RTOS simulator) using the tutorial.  A printout of the tutorial is located in the back of the white binders in 601 CobH.

 

Sept. 11

Lecture:  C Language review (data types, names, functions, and control flow).

Homework #1 (.pdf):  Two C programming problems, due at the start of class on Thursday, September 18, 2003.  Here is the homework #1 assignment as html.

 

Sept. 9

Lecture:  C Language review and possible live demo.

Lab:  I would like you to prepare your lab reports using the Memo Report Format.

The Lab#1 exercises "Using the Cosmic C IDE" will be done today (2:10PM in CobH 601).  The report is due at the start of lab next week (Sept. 18).

Here are the files needed for the Lab #1 exercises:

lab1.c
lab1.lkf
crts.s
dbug12.h

 

Sept. 4

Continue introductory remarks, and start review of C language.  Information regarding the GCC compiler is now available.

Sept. 2

First class meeting at 9:00AM in Roberts Hall 319.
 

NOTE:  there will be NO LAB on Sept. 2.

 

 

 

 

Tuesday Thursday Friday

 

10/30 Project and HW#4 assigned

 

11/4 Lab #8 (last scheduled lab); Lab #7 due

11/6 Project proposals due

11/7 guest lecture

11/11 Veterans' Day (MSU holiday:  no class or lab)

11/13 HW#4 due

 

11/18 lab:  work on projects (Lab #8 due)

11/20 EXAM #2 (in class)

 

11/25 lab:  work on projects

11/27 Thanksgiving (no class)

 

12/2 lab:  work on projects

12/4 Project reports due.
Course evaluation forms.

 

12/9 Project reports, during class (meet in lab)

12/11 Finish project reports; wrap-up; last class

 

 

NOTE:  Here is some information about the GCC compiler.  This version will run in a DOS window (command line) on a Windows PC.


Friday, November 7: Guest Lecture, 11:00AM, 113 RobH

Programming and Project Planning for Embedded Systems
Dr. John Strawn, S Systems, Inc.

Abstract:
There are many ways to approach a complex embedded programming assignment. Based on industry experience, the lessons of object-oriented programming can be applied to planning an embedded programming project. This is true even if the project is implemented in assembler and "objects" in the strict sense of Java or C++ are not used. We will cover some useful ideas from object-oriented programming and show how they can be applied to real-world programming situations.