The purpose of the course is to provide the student with an understanding of the particular challenges posed by real-time systems, particularly those for embedded and pervasive applications. Topics include the hardware and software co-development methodology, scheduling, tasks, semaphores, message queues, kernel objects, RTOS services, handling exceptions and interrupts, timer services, I/O concepts, memory management, and inter-task synchronization and communication. This course meets the expectations for alumni working in industry.

Logistics Spring 2018

  • PLEASE NOTE: All content on the page subject to and probably will change until 31 January 2017
  • Lectures: TTH, 12:30-1:45PM, ECCR1B51
  • Project Exercises: Will require checkout of development kits
  • Prerequisites: Knowledge of assembly and C Programming, Digital Logic Design, and basic computer architecture.
  • Students should have a first course in each of these subjects. The corresponding CU-Boulder courses are ECEN 2120/2350, ECEN 3100/3350, and ECEN 1030/1310/CSCI 1300. Recommended: ECEN 5803 and ECEN 5813 prior to taking this course.
  • Office hours: Tuesday and Thursday, 10:00-11:00AM ECEE 1B67
  • TA Contact Information:
    • Saritha Senguttuvan ( Saritha.Senguttuvan@Colorado.EDU)
    • Gaurav Gandhi ( Gaurav.Gandhi@Colorado.EDU)

      Course Description and Topics covered

        The course introduces the concepts of real-time systems from the user and designer viewpoint. The requirements, design, implementation, and basic properties of real-time application software are described with an overview of system software. Related topics such as interrupts, concurrent task synchronization, sharing resources, and software reliability are discussed. A team project on a real-time prototype application may be incorporated in the course.

        • 1. Knowledge of the issues, the decision and design process, and the available tools and methods for designing real-time, embedded systems
        • 2. The particular challenges presented by real-time, embedded systems
        • 3. The common design problems and their solutions
        • 4. The interaction of the cross-compiler and linker, and how that interaction is controlled during the development of the real-time, embedded system.
        • 5. The concepts of time-critical computing and the techniques used to identify real-time systems
        • 6. Understanding of the host-target development environment for time-critical systems
        • 7. Methods to write multitasking computer programs with inter-task communication and synchronization
        • 8. The concepts of inter-task communication and synchronization via shared memory, message queues, signals, semaphore
        • 9. Real-time kernels and task scheduling
        • 10. Techniques for interfacing hardware
        • 11. Concepts of reliability in relation to real-time software
        • 12. Basic understanding of Safety Critical Real-Time software

      Readings

      Course materials include textbooks, papers, lecture slides, project guides, and other online materials.

      • Textbooks (CU bookstore)
        • Real-Time Embedded Components and Systems with Linux and RTOS, 2nd Edition, Sam Siewert and John Pratt, October 2015, 978-1942270041 (Mercury Learning, Amazon)
        • Linux Kernel Development (3rd Edition), Robert Love, Addison-Wesley Professional; (July 2, 2010), ISBN-10: 0672329468, ISBN-13: 978-0672329463
      • Course website
        • Course lecture slides posted weekly on D2L
        • Course labs and project material posted weekly on D2L
      • Other online materials
        • http://www.linux.com - Main Linux OS Site
        • http://www.freertos.org - site for FreeRTOS
        • http://www.gnu.org - central site for free software
        • Altera DE1-SoC Development Board
        • ARM information center

      GRADING

      The course grade will be based on in-class participation, exercise assignments, quizzes, course projects, and 2 exams. The grade proportions are as follows:

      • Exercises 30%
      • Course projects 20%
      • Quizzes 10%
      • Final and Mid-term Exam 40%

      Honor code

      A complete description of the honor code can be found here .

      To summarize: "Violations of the Honor Code are acts of academic dishonesty and include but are not limited to plagiarism, cheating, fabrication, aid of academic dishonesty, lying to course instructors, lying to representatives of the Honor Code, bribery or threats pertaining to academic matters, or an attempt to do any of the aforementioned violations."