AX12Robot RobotChess

ECEN 5623/4623 - Fall 2013
Real-Time Embedded Systems

Class in ECEE 1B32 on Mondays 6:00-8:30PM, (ECEE 2B37 Lab)

  1. Hard Real-Time theory, Wind River VxWorks RTOS/IA32 based labs, and application focused on Robotics, Computer Vision, and Digital Control
  2. Designed for On-Campus CU and CAETE Industry Students
  3. Applicable to Robotics, Aerospace, Medical, Instrumentation, Industrial Automation, Process Control, and Transportation Industry

Please see more information on our ECEN5623 Blog and Wiki.

CU Embedded Certificate Program Offering Camera

Course Description:

In this course, students will design and build a microprocessor-based embedded system application requiring integration of sensor/actuator devices, A/D and D/A I/O interfaces, single and multi-core microprocessors, commercial real-time operating system, and multi-tasking application software. The course focus is on the process as well as fundamentals of integrating microprocessor-based embedded system elements for digital command and control of typical embedded hardware systems. Standard project options include: 6 DOF robotic arm tasking and control, stereo vision, computer/machine vision, voice-over-IP, tilt/pan computer vision tracking systems, facial recognition and numerous related projects that emphasize real-time applications. Topics include: PCI bus architectures and programming; device firmware; system firmware architectures; microprocessor and I/O architectures; error detection and correction memory architectures; interrupt service routines; real-time clocks/timers; real-time kernel configuration and extension; main loop designs; multi-tasking; asymmetric multi-processing; inter-task communication; cooperative and priority pre-emptive designs; hard real-time scheduling theory and design (Rate and Deadline Monotonic), latency, response time, system performance, and development and testing techniques. Students configure and extend a priority pre-emptive multi-tasking operating system for a student-built hardware/software embedded system. The student will be introduced to the full embedded system lifecycle process in this course including: analysis, design (using extended finite state machine specification), programming, hardware assembly, unit testing, integration and system testing.

Upcoming RT Embedded Systems Courses offered through CAETE and CU ECEE. See description of course goals on CAETE website.

  1. ECEN 5623 is Offered Every Fall
  2. ECEN 5623 will be offered Summer 2013 with the Linux/Beagle platform.

Please e-mail Valerie Matthews [] for more info or e-mail Robin McClanahan [] with CAETE.

John Pratt, John.Pratt@Colorado.EDU,
Office Hours: Sunday 1 PM - 3 PM ECEE 2B37, Wed/Thurs 8:30 PM - 10 PM by E-mail/IM/Skype (Skype ID=johnpratt07, Google Talk=john.c.pratt) and in 2B37.

TA: Jay Khandhar,
Office hours: Tuesday: 2 PM - 4 PM.
Wednesday: 6 PM - 8 PM.
Sunday: 5:30 PM - 7:30 PM.

TA: Swetha Natham,
Office hours: Friday: 5 PM - 7 PM.
Sunday: 10 AM - 12 PM.

TA: Neel Desai,
Office hours: Monday: 1 PM - 3 PM.
Thursday: 7 PM - 9 PM.

Classes: Held on Mondays 6:00-8:30 pm with lectures in ECEE 1B32
Labs: labs/demos wil be held by appointments through Google Calendar in ECEE 2B37, BuffOne Card Access

Special Thanks to the University of Colorado Engineering Excellence Fund.

Special Thanks to Industry Sponsors: Qualcomm, Intel Embedded, and Wind River Systems.

Offered by Electrical Engineering Dept. (ECEE Schedule) and by CAETE in the Embedded Systems Certificate Program

Non CU students may register through CAETE:registration Info

Prerequisites: ECEN 5613/4613 - Embedded System Design (recommended) and C programming proficiency (required)

Other courses in Embedded Systems Program:

  1. ECEN 5613/4613 - Embedded System Design
  2. ECEN 5543- SW Engineering of Standalone Systems
  3. ECEN 5653/4653 - Real-Time Digital Media Systems
  4. ECEN 4610 - Capstone Design, counts for Ugrads only!
The courses may be taken in any order, but the recommended order is 1) Embedded System Design, 2) Real-Time Embedded Systems, 3) Real-Time Digital Media Systems OR Software Engineering of Stand-alone Systems

Important Links to Course Materials (Desire2Learn Access)

Lab and Project Assignments (Coming soon to Desire2Learn)
Lecture Archive
Grading and Policies
Document Archive (Password Required)
Example Code Archive (Password Required)
ECES Lab System Accounts
CU Academic Honesty Policies
ECES Lab Systems Help Pages

Important Links to Wind River Tools

NEW Workbench 3.2 TA HOWTO Pages
OLD Workbench 2.6 TA HOWTO Pages
**** Wind River Tools DVD ISO Download (Password Required) ****
**** Download VxWorks 6.8 Client License for Tools in C:\WindRiver\license (Password Required) ****
**** Download VxWorks 6.9 Client License for Tools in C:\WindRiver\license (Password Required) ****
VxWorks/Tornado Help and Documents (Password Required)

Important Links to Group Project Planning

Status, Debug and Demo Schedule
Hardware Check-Out Records
Top Errors and Mistakes with VxWorks Projects

Helpful Tips on Bt878 Driver and example code
Helpful Tips on Crystal Sound Card Driver and example code

Google Code Subversion Source Code Management
Verilog CASE Tools for SDL
Rational Rose Real Time CASE Tools

Intel Embedded Resource Links

Tunnel Creek Notes
Tunnel Creek Dev Board Info
TC User Guides
Intel / Cornell Embedded Competition
Intel Embedded Program Materials

Important Links to Project Resources & Background

Course Project Video Footage
Course Project Photos
Course Project Detailed Description Page

Selected Sites with Robotics Info (5-DOF Robotic Arm Projects)
Selected Sites for Hardware (x86 Architecture, PCI, Audio, and Computer Vision / Optical Navigation Projects)
Selected Sites for Computer Vision and Image Processing Info and Code
Selected Sites with Chipset Docs and Databooks (VoIP and Video / Peak-Up Projects)
CU ECEE Capstone Design Resource Page (PCB, digital, analog design resources)

Selected Sites with Standards Info (PCI, VME, POSIX, NTSC)
Linux ALSA Datasheet Page
Video 4 Linux
Video 4 Linux Wiki

Potentially Interesting Links

IEEE Denver Robotics & Automation Chapter News
Guest Speaker Page
Advanced Real-Time Systems Research
MIT OpenCourseWare - Electrical Engineering and Computer Science
Khan Academy - e.g. to Brush Up on Math
Udacity - Free online university classes (background).
OSI Reference Model

Real-Time Linux

Linux Low-Latency Patches
Linux/RT and Linux Video Page
Surprising Truth About What Motivates Us - Open Source
Real-Time Linux Help

Dr. Siewert's IBM and Intel Articles

Intel Paper on VTune
Intel Paper on SIMD SSE4.x
IBM SoC Drawer Series - Prof. Siewert
IBM Big Iron Lessons - Prof. Siewert
Related Research and Conference Papers
IBM Systems Journal, Vol 47, Number 2, 2008 - Real-Time Systems

Old Archived Materials

Lab Hardware/Software Known Problems and Repair Status
Muhammad's Quick Home Setup Link for Tornado 2.2 Dan Walkes - Former TA Web-Link
Course E-mail Archives

Required Texts (Available for Order On-line)

  1. "Real-Time Embedded Components and Systems", Sam Siewert, ISBN 1584504684, publisher link, Amazon link, Softpro Books, Barnes&Noble, also available in CU bookstore.

  2. "PCI System Architecture", Tom Shanley and Don Anderson, 4th Edition, 1999, (ISBN 0-201-30974-2) MindShare, Inc., E-book link, publisher link, retailer link, library link.

Required On-Line Texts (Available on CULearn)

  1. "VxWorks Reference Manual 5.4", available on-line as "windman" or hard copy, Edition 1, (PDF available on this WWW page, password required, please use CULearn).
  2. "VxWorks Programmer's Guide 5.4", Edition 1, (PDF available on this WWW page, password required, please use CULearn).
  3. "Windview Guide for Tornaldo 2", (PDF available on this WWW page, password required, please use CULearn).

Supplemental Embedded Systems Texts - CU Library Search by ISBN

Digital Signal and Image Processing References

  1. "The Scientist's and Engineer's Guide to Digital Signal Processing", Steven W. Smith, 1997, (ISBN 0-9660176-3-3), California Technical Publishing, Free E-book link.
  2. "Video Processing and Communications", Yao Wang, Jorn Ostermann, and Ya-Qin Zhang, 2002, (ISBN 0-13-017547-1), Prentice Hall, Book web link.
  3. Computer Vision: A Modern Approach, Forsyth and Ponce, ISBN 0-13-085198-1, (2003).
  4. Digital Image Processing, Gonzalez and Wintz,Addison-Wesley, 1987 Fundamentals of Digital Image Processing, A.K. Jain,Prentice Hall, 1989.

More Advanced PCI Books

  1. "PCI-X System Architecture", Tom Shanley, 2001, (ISBN 0-201-72682-3), MindShare, Inc., E-book link.
  2. "PCI Express System Architecture", Ravi Budruk, Don Anderson, Tom Shanley, 2003, (ISBN 0-321-15630-7), MindShare, Inc., E-book link.

Review Books

  1. "An Embedded Software Primer", David E. Simon, Addison-Wesley Professional, 1999, (ISBN 978-0201615692). publisher link, Amazon link.
  2. "Programming for the Real World - POSIX.4", Bill O. Gallmeister, O'Reilly and Assoc., Inc, 1995, (ISBN 1-56592-074-0). publisher link, library link.
  3. "Fundamentals of Embedded Software: Where C and Assembly Meet", Daniel W. Lewis, Prentice Hall, 2002, (ISBN 0130615897). publisher link
  4. "Real-Time Systems and Software", Alan C. Shaw, 2001, John Wiley and Sons Inc., ISBN 0-471-35490-2, library link.

Reference Books

  1. "Meeting Deadlines in Hard Real-Time Systems - The Rate Monotonic Approach", Loic Briand and Daniel Roy, IEEE Computer Society Press, 1999, (ISBN 0-8186-7406-7), retailer link, 2nd retailer link, library link.
  2. "Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks and Patterns", Bruce P. Douglass, Addison-Wesley, 1999, (ISBN 0201498375), library link.
  3. "Applying UML And Patterns", Craig Larman, Prentice Hall, 2002, (ISBN 0-13-092569-1), library link.
  4. "SDL: Formal Object-oriented Language for Communicating Systems", Jan Ellsberger, Dieter Hogrefe, Amardeo Sarma, Prentice Hall, 1997 (ISBN 0-13-621384-7), library link.
  5. "Modern Structured Analysis", Edward Yourdon, Yourdon Press, 1989 (ISBN 0135986249), library link.

Supplemental Development/Test Host Systems Texts - CU Library Search by ISBN

  1. "Practical Unix Programming - A Guide to Concurrency, Communication, and Multithreading", Kay Robbins and Steven Robbins, Prentice Hall, 1996 (ISBN 0-13-443706-3), library link.

  2. "Unix Network Programming -- Networking APIs: Sockets and XTI", Volume 1, 2nd Ed.", Richard Stevens, Prentice Hall, 1998 (ISBN 0-13-490012-X), library link.

Reference Specifications - Available by Subscription Only

  1. "PCI Sig PCI Specification", PCI-SIG. publisher link

  2. "PICMG PCI Specification", PICMG. publisher link

  3. "VITA VME Specification", VITA. publisher link