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: