CS 445 REAL-TIME SYSTEMS

 

Spring 2010

 

by independent study led by Betty O’Neil

 

Meetings:              TuTh 6:00-6:50  S-3-169

Office Hours:       TuTh 4:00-5:30  S-3-169

 

Course Description:

 

A real-time system is one whose basic specification and design requirements include its ability to meet its timing constraints. This course will cover the following real-time system topics:

 

1.       Basic concepts and hardware: definitions, real-world interfaces, DAC and ADC, motor control, stepper and servo motors, interrupts.

2.       Real-time software- Development: specifications and design, use of Linux as embedded RTOS, writing a Linux driver, using user-level programming in conjunction with a custom driver.

3.       Real-time software- Kernel: RTOS strategies, task scheduler, rate monotonic systems, message queues, mailboxes and semaphores, synchronization, communication and concurrency, kernel services.

 

Four machine projects will be completed as team projects.  Each machine project will require you to work in the lab and write a working program based on given specifications, and appropriate documentation.

 

Books:

 

The course textbook is:

 

·         Real-Time Concepts for Embedded Systems, Qing Li, CMP Books, 2003, ISBN 1-57820-124-1


Reference books are:

 

·         Embedded Linux Primer, Christopher Hallinan, Prentice Hall Prof. Tech. Ref., 2007, ISBN 0-13-167984-8

 

·         The Personal Computer from the Inside Out, 3rd edition, Murray Sargent III & Richard L. Shoemaker, Addison-Wesley, 1995. [ISBN 0-201-062646-2]

 

We will cover the text to learn the general issues of RTOS’s. We will study Linux in light of that coverage and use it to solve the cs445 projects previously done with more specialized operating systems. Modern Linux is commonly used for embedded systems, even real-time systems, because of its lightweight processes/threads, its fast scheduling, and the ease of writing drivers for it. Also it’s free.

 

Of course Linux is not the answer to all problems. When power is at a premium and/or small cost/unit is important, tiny systems with microcontrollers are used. Luckily these are very affordable today, so we may be able to try them out.

 

Grades:

 

Grades will be determined from your machine projects (50%), midterm (20%), and final exam (30%).

 

Reading:

Jan. 26-28: Read Li, Chap. 1-2. Think about how this relates to our SAPC setup for cs341. Start mp1 using SAPCs linked together, one generating the pulses, and the other counting and timing them.

Feb: read chapter 10 on interrupts.

Mar: Midterm reading

 

Projects:

mp1 Interrupt programming: LPT and timer.

 

Word Display Project for deaf driver

·         Specs for word display for deaf driver (specifically Prof. Ethan Bolker’s wife): http://www.cs.umb.edu/~eb/ledDisplay/

·         AVR info at atmel.com: we have ATMEGA168-20PU: datasheet for ATMEGA168P (summary)

mp2: D/A and A/D conversion: first using SAPC, then Linux busybox

old cs445 materials  mp2 schematic

Linux i/o port programming HOW-TO

 

Resources

ulab and SAPC info—let me know of any fixes for this material.

SAPC motherboard manual (ASUS P5A-B)

Excerpts from Sargent and Shoemaker (book itself is out of print, here is its info on COM ports, LPT, interrupt system)

CS444 F06: see lectures on hardware and interrupts Sept. 14-21

From www.gnu.org: GDB manual, other manuals

Copied from http://instruct1.cit.cornell.edu/courses/ee476/labs/s2009/lab6.html

Our own additions: