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:
- 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
- Designed for On-Campus CU and CAETE Industry Students
- Applicable to Robotics, Aerospace, Medical, Instrumentation, Industrial Automation, Process Control, and Transportation Industry
- Summer Term-B Short Version has NO PROJECT, but does have EXTENDED APPLICATION LAB
- 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.
- ECEN 5623, Real-Time Embedded Systems is Offered Every Fall - x86 IA32 based, full project.
- 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.
- 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
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 email@example.com, 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),
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.
FIRST LIBRARY COURSE LECTURE JUNE 2ND, 2014
(Need Directions? -- Engineering Center Map, CU Interactive Campus Map)
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)
- "Real-Time Embedded Components and Systems", Sam Siewert, ISBN 1584504684, publisher link, Amazon link, Softpro Books, Barnes&Noble, also available in CU bookstore.
- 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 Linux Tools and Linux in General
Android Builder's Summit
Linux USB Project Page,
Linux USB Device Support Status
Nice page on how to enable ftrace
Linux Weekly News
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
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
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
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
- "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.
- "Linux Program Development - a guide with exercises", by Jerry Cooperstein, available on-line from Amazon.
- "Writing Linux Device Drivers - a guide with exercises", by Jerry Cooperstein, available on-line from Amazon.
Digital Signal and Image Processing References
- "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.
- "Video Processing and Communications", Yao Wang, Jorn Ostermann, and Ya-Qin Zhang, 2002, (ISBN 0-13-017547-1), Prentice Hall, Book web link.
- Computer Vision: A Modern Approach, Forsyth and Ponce, ISBN 0-13-085198-1, (2003).
- Digital Image Processing, Gonzalez and Wintz,Addison-Wesley, 1987
Fundamentals of Digital Image Processing, A.K. Jain,Prentice Hall, 1989.
- "An Embedded Software Primer", David E. Simon, Addison-Wesley Professional, 1999, (ISBN 978-0201615692). publisher link, Amazon link.
- "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.
- "Fundamentals of Embedded Software: Where C and Assembly Meet", Daniel W. Lewis, Prentice Hall, 2002, (ISBN 0130615897). publisher link
- "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
- "Doing Hard Time: Developing Real-Time Systems with UML, Objects,
Frameworks and Patterns", Bruce P. Douglass, Addison-Wesley, 1999, (ISBN
0201498375), library link.