Term-D ECEN 5623/4623 - Summer 2014 Library Version, Remote Lab and Distance Student Signup Option Possible

Real-Time Embedded Systems (RT-Linux Mobile Focus Version)

Class Lectures Pre-Recorded by CAETE in Video Library, Skype Office Hours with Instructor Tues/Wed/Thurs: June 2nd through August 8th - Sign Up Through CAETE
For REMOTE and LIBRARY STUDENTS: Echo360 Recordings

  1. Hard Real-Time theory, Linux based labs, and application focused on Robotics, Computer Vision, and Digital Control - Summer session focus on Computer and Machine Vision
  2. Designed for On-Campus CU and CAETE Industry Students
  3. Applicable to Robotics, Aerospace, Medical, Instrumentation, Industrial Automation, Process Control, and Transportation Industry
  4. Summer Term-B Short Version has NO PROJECT, but does have EXTENDED APPLICATION LAB
  5. All students MUST purchase their own TI DM3730 ARM Beagle xM Beagle boards - order no later than mid May to ensure you have it in time for the course. See this page ---- BUY Beagle xM ---- and order your board and accessories.

Please see more information on our ECEN5623 Blog.

CU Embedded Certificate Program Offering

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

  1. ECEN 5623, Real-Time Embedded Systems is Offered Every Fall - x86 IA32 based, full project.
  2. ECEN 5653, Real-Time Digital Media (A Linux-Based Soft Real-Time Systems Course focused on Digital Media - Video, Audio, Transport) will be offered ONLY as a Library course in Summer 2014.
  3. ECEN 5623 Term-D Short Version of Real-Time Embedded Systems is offered Summer 2012 - ARM based, extended application lab work instead of a full project.

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

Dr. Sam Siewert, Sam.Siewert@Colorado.EDU or siewerts@erau.edu, Web-Link
Instructor Office Hours: Tues/Wed/Thurs 11:30AM-1:00PM and by Appointment (you can text me at 303.641.3999 and I will call you back or skype you back as soon as I can), (SkypeID=sam.siewert).

TA/Grader: Kaushik Kanetkar, Kaushik.Kanetkar@Colorado.EDU
Office Hours: TBD, Skype ID=kaushik.kanetkar, Phone=303-886-7974

Special Thanks to the University of Colorado Engineering Excellence Fund and Industry Sponsors Wind River, Intel Corp., and Qualcomm.


(Need Directions? -- Engineering Center Map, CU Interactive Campus Map)

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: ECEN 5613/4613 - Embedded System Design, ECEN 5543- SW Engineering of Standalone Systems, and ECEN 5653/4653 - Real-Time Digital Media Systems. 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

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. Linux Kernel Development (3rd Edition), Robert Love, Addison-Wesley Professional; 3 edition (July 2, 2010), ISBN-10: 0672329468, ISBN-13: 978-0672329463, Linux Kernel Development (3rd Edition), by Robert Love

Important Links to Course Materials (Desire 2 Learn Access)

Lab and Extended Lab Assignments (Also on CU-Learn)
Library Syllabus
Lecture Archive
Grading and Policies
RT Linux Document Archive (Password Required)
General Real-Time Document Archive (Password Required)
Example Linux RT Code Archive (Password Required)
Example RT Code Archive (Password Required)
ECES Lab System Accounts
CU Academic Honesty Policies

Important Links to Linux Tools and Linux in General

Android Builder's Summit
TimeSys Linux
Linux USB Project Page, Linux USB Device Support Status
Nice page on how to enable ftrace Linux Weekly News Linux Journal
Linux Device Drivers, 3rd Edition, Jerry Cooperstein's Books on Linux, Linux Driver Soulutions from Cooperstein
Linux Source Browser
Google I/O Android Dev Tools, Google I/O Android Dev Tools

Important Links to Extended Lab Resources

Extended Lab 1:1 Schedule
Schemes for Camera Testing and Development on VB/Ubuntu Host and Beagle xM Target Top Errors and Mistakes with RT-Linux Projects

Request for Proposal (RFP)
Minimum System Requirements and Required Testing
Final Report Format Required
Grading Criteria

Download V4L2 utils and library, V4L2 Spec, V4L2 with Logitech, , V4L2 Official Home
LWN Article on Video4Linux2 API
LWN Article on Video4Linux2 API: Part 2
LWN Article on Video4Linux2 API: Part 3
LWN Article on Video4Linux2 API: Part 4
LWN Article on Video4Linux2 API: Part 5a Colors and Formats
LWN Article on Video4Linux2 API: Part 5b Formats
LWN Article on Video4Linux2 API: Part 6a Frame I/O
LWN Article on Video4Linux2 API: Part 6b Streaming I/O
LWN Article on Video4Linux2 API: Part 7 Controls
LWN Article on Video4Linux2 Enhancements
UVC driver and Tools Home
LWN Article on UVC
Linux Journal Article on Linux Kernel Locking Techniques
UVC HowTo Part 2
Ubuntu Webcam Help Pages
Linux Supported USB Devices
Linux USB Org

Helpful Tips on Beagle xM Board
Helpful Tips on Beagle Board Leopard Imaging Cameras
Rose Hulman University Beagle Page
Texas Instruments University Page

Noritsuna Imamura Kinect x Android x Beagle xM
Beagle xM with Touchscreen
Porting Android to Beagle xM

Google Code Subversion Source Code Management
Tortoise Subversion Client

Important Links to Resources & Background

Selected Sites for Computer Vision and Image Processing Info and Code

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

Potentially Interesting Links

IEEE Denver Robotics & Automation Chapter News
MIT OpenCourseWare - Electrical Engineering and Computer Science
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

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, stereo vision, computer vision, voice-over-IP, tilt/pan computer vision tracking systems, facial recognition and numerous related projects. Topics include: PCI and/or USB bus architectures and programming; device firmware; system firmware architectures; microprocessor and I/O architectures; ECC/EDAC memory architectures; interrupt service routines; real-time clocks/timers; real-time kernel configuration and extension; main loop designs; multi-tasking; 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 tools), programming, hardware assembly, unit testing, integration and system testing.

Supplemental Linux Driver and Kernel Books

  1. "Universal Serial Bus System Architecture (USB 2.0), Second Edition", Don Anderson, 2nd Edition, 2001, (ISBN 0-201-46137-4) MindShare, Inc., E-book link, publisher link, retailer link, library link.
  2. "Linux Program Development - a guide with exercises", by Jerry Cooperstein, available on-line from Amazon.
  3. "Writing Linux Device Drivers - a guide with exercises", by Jerry Cooperstein, available on-line from Amazon.

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.

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.

Design Reference Books for UML

  1. "Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks and Patterns", Bruce P. Douglass, Addison-Wesley, 1999, (ISBN 0201498375), library link.