EE 599 - Topics in EE: Real-Time Operating Systems - Fall 2013

Instructor: Dr. Samir Rawashdeh
Office: 559 FPAT
Email: s [dot] rawashdeh [at] uky [dot] edu
Office Hours: MW 2:4 PM or by appointment
Lecture: MWF 01:00-01:50PM, FPAT 460
Hardware Kit: STM32F4-DISCOVERY

Course Information: PDF


Date Lecture Slides Assignments
W 8/28/13 Course Overview
F 8/30/13 Embedded Systems Intro to Embedded Systems HW1
M 9/2/13 No Class: Labor Day
W 9/4/13 ARM Architecture and Dev Kit ARM Architecture and Instruction Set Lab1
F 9/6/13 ARM Assembly - Addressing Modes
M 9/9/13 JEL: Lab Introduction: Meet in FPAT551
W 9/11/13 Guest Lecture: KySat-2
F 9/13/13 ARM Assembly - Data processing HW2
M 9/16/13 Subroutines and Stack
W 9/18/13 Interrupts Lab2
F 9/20/13 Recorded Lecture: Microcontroller Basics, Debugging Titus_4.ppt, Titus_4.mp3 (rename to mp3)
M 9/23/13 ST32F4 Standard Peripheral Library: GPIO, UART STM32F4 Standard Peripheral Drivers Quiz1
W 9/25/13 Using Standard Peripheral Library. Other subsystems.
F 9/27/13 Interrupts and Shared Data Problem Interrupts Lab3
M 9/30/13 Embedded Software Architecture Embedded Software
W 10/2/13 Introduction to RTOS RTOS Introduction
F 10/4/13 RTOS: Semaphore, and Mutex HW3
M 10/7/13 Operating System Structures ch01_os_intro.ppt
W 10/9/13 Lab day: Meet in FPAT551 HW4
F 10/11/13 OS Processes ch03_processes.ppt
M 10/14/13 Using Keil RTX RTX Slides, RL_RTX User's Guide
W 10/16/13 RTX Task Synchronization, OS Threads ch04_threads.ppt Lab5
F 10/18/13 Process Synchronization ch05_process_synchronization.ppt
M 10/21/13 Presentation Rubrics and Advice The Beginner's Guide to Bad Engineering Presentations (…and how to not give one)
W 10/23/13 Research Presentation Structure
F 10/25/13 uCOS-II Intro, Lab6 (Dining Philosophers) Lab6
M 10/28/13 Student Talks: Xiaowei, Kiran
W 10/30/13 Student Talks: Pablo, Jacob
F 11/1/13 Student Talks: Robert, Joseph
M 11/4/13 Projects Overview and Description
W 11/6/13 Lab6 in FPAT 551
F 11/8/13 Project Requirements Projects Assigned
M 11/11/13 I2C I2C
W 11/13/13 Project Documentation, SVN Getting Started
F 11/15/13 Project Presentations: status update
M 11/18/13 CPU Scheduling 1 ch06_cpu_scheduling.ppt
W 11/20/13 Project Meetings (SAR Travel)
F 11/22/13 Project Presentations: status update
M 11/25/13 CPU Scheduling 2, Deadlocks ch07_deadlocks.ppt
W 11/27/13 No Class: Thanksgiving
F 11/29/13 No Class: Thanksgiving
M 12/2/13 Deadlock Prevention, Detection and Recovery
W 12/4/13 Example Embedded Systems
F 12/6/13 Project Update
M 12/9/13 Grad Students: DCMI, CAN
W 12/11/13 Grad Students: RTC, USB
F 12/13/13 Project Final Presentations

Student Presentations (20 minutes each):

  1. Xiaowei Zhang, “Real-Time Operating Systems for Small Microcontrollers” pdf, second reference, pdf
  2. Pablo Quevedo, “RTOS for PIC18 Microcontrollers”
  3. Robert Kane, “Preemptability in Real-Time Operating Systems” pdf
  4. Kiran Arcot, “Sloth on Time: Efficient Hardware-Based Scheduling for Time-Triggered RTOS
  5. Joseph Weber, “Operating Systems for Tiny Networked Sensors” pdf
  6. Jacob Travis, “Improving Reliability Through Task Recomputation in Heterogeneous Multi-Core Embedded Systems” pdf


Experiment Reference Material Signatures Date Writeup Due
Lab 1: The STM32F4 and the Keil IDE,
Steps 1:12 from:
KEIL Lab for ST32F4 Cortex-M4 Discovery Board
13 Sep 18 Sep
Lab 2: ARM Assembly, Measuring Execution Time, Cosine Approximation Accuracy 25 Sep 27 Sep
Lab 3: Interrupts and Shared Data Discovery Board Firmware Package (see Getting Started, below) 4 Oct 7 Oct
Lab 4: Keil RTX RTOS Steps 13,14, and 15 from:
KEIL Lab for ST32F4 Cortex-M4 Discovery Board
Refer to: RL_RTX User's Guide
14 Oct 16 Oct
Lab 5: RTX RTOS Task Synchronization Refer to: RL_RTX User's Guide 24 Oct 25 Oct
Lab 6: uCOS-II Dining Philosophers philosophers_main.c: template for 8051 Arch 6 Nov 8 Nov


Motion Capture and Recognition using an Inertial Measurement Unit (IMU)

Embedded Imaging, Motion Detection, Object Recognition


Assignment Details Due Date
HW1 Read Jack Ganssle's top ten reasons embedded systems projects get into trouble 4 Sep
HW2 Survey research papers 16 Sep
HW3: RTOS Intro Watch: Ganssle3.ppt , Ganssle3.mp3 (rename to mp3) Quiz: 7 Oct
HW4: RTOS Concepts Read Chapter 2 of ( Salvo RTOS User Manual) Quiz: 16 Oct

Course Information

ARM STM32F4 Discovery Board

Keil Notes

STM Resources

STM Peripherals



ARM Assembly




DigiKey Continuing Education Talks

Remember to rename file.doc to file.mp3 for the audio files.

Topic Slides Audio
Microcontroller Basics: Fundamentals Titus_1.ppt Titus_1.mp3
Microcontroller Basics: Choose MCU Titus_2.ppt Titus_2.mp3
Microcontroller Basics: SW Dev. Titus_3.ppt Titus_3.mp3
Microcontroller Basics: Debugging Titus_4.ppt Titus_4.mp3
Microcontroller Basics: PIC tips Titus_5.ppt Titus_5.mp3
Advanced MCU: RT Challenges Ganssle1.ppt Ganssle1.mp3
Advanced MCU: Mulitcore Ganssle2.ppt Ganssle2.mp3
Advanced MCU: RTOS Ganssle3.ppt Ganssle3.mp3
Advanced MCU: Debugging Ganssle4.ppt Ganssle4.mp3
Advanced MCU: Testing Ganssle5.ppt Ganssle5.mp3

Getting Started

This is a guide to setup a computer to work with the ST32F4-DISCOVERY board.

1. Keil uVision MDK-ARM

  • When working in the university labs, the professional version of Keil uVision and the tools should already be installed. Contact an instructor if you are facing problems.
  • To install the Evaluation tools on your personal computer (limited to 32 Kbytes of code):
  1. For the latest version, go to the Keil products page, look for the MDK-ARM Development environment for Cortex and ARM devices.
  2. You will have to fill out a contact/information form. Download and install the software.

On the STM32F4DISCOVERY board, the ST-Link debugger is a circuit on the board itself. Check under the windows Device Manager to see if the ST-Link USB drivers installed properly. Here are the drivers if needed.

3. Example Projects and Sub-system Drivers

Planning Calendar

Note: This calendar changes and evolves all the time and is only an estimate.

classes/13f/599/default.txt · Last modified: 2013/12/09 12:49 by srawashdeh
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki