EE 599 - Topics in EE: Real-Time Operating Systems - Spring 2014

Instructor: Dr. Samir Rawashdeh
Office: FPAT 699, often in FPAT 559
Email: s [dot] rawashdeh [at] uky [dot] edu
Office Hours: MW 2:4 PM or by appointment
Lecture: MWF 10:00-10:50AM, FPAT 253 (was ChemPhys 201)
Hardware Kit: STM32F4-DISCOVERY, Purchase from Mouser: link
Lab Open Hours (FPAT551) Wednesday 8:45 - 10:45 a.m. and 2:00-5:00 p.m
Thursday: 11:00 a.m. - 01:00 p.m.
Friday 8:45 - 10:45 a.m.
SAR Available for Signatures Monday 2:00 - 3:00 p.m.
Tuesday 10:00 - 11:00 a.m.
Wednesday 2:00 - 3:00 p.m.

Course Information: PDF


Date Lecture Slides Assignments
W 1/15/14 Course Overview
F 1/17/14 Embedded Systems Intro: Microcontrollers and Embedded Systems HW1
M 1/20/14 No Class - MLK Day
W 1/22/14 Embedded Challenges, “Jack's top 10” Lab1
F 1/24/14 ARM Architecture, HW Intro ARM Architecture and Instruction Set
M 1/27/14 Recorded Lecture: Microcontroller Basics, Debugging Titus_4.ppt, Titus_4.mp3 (rename to mp3)
W 1/29/14 Lab introduction, Lab1
F 1/31/14 Recorded Lecture: Real-Time Challenges Ganssle1.ppt, Ganssle1.mp3 (rename to mp3)
M 2/3/14 Classes canceled due to snow
W 2/5/14 ARM Instruction Set
F 2/7/14 ARM Assembly Examples, Stack, Branching Refer to Cortex-M Instruction Set
M 2/10/14 Interrupts Lab 2
W 2/12/14 ARM Assembly: Memory Access, Stack
F 2/14/14 Lab day: Lab 2 discussion
M 2/17/14 ST32F4 Standard Peripheral Library: GPIO, UART STM32F4 Standard Peripheral Drivers
W 2/19/14 Interrupts and Shared Data Problem Interrupts and Shared Data Lab3
F 2/21/14 Interrupts on Cortex-M, Lab 3 Discussion
M 2/24/14 Meet in Lab (Lab 3 discussion)
W 2/26/14 SW Architectures Embedded Software Exam1, HW2
F 2/28/14 RTOS Intro RTOS Introduction
M 3/3/14 No class: Snow closure
W 3/5/14 Semaphore and Mutex
F 3/7/14 RL-RTX RTX Slides, RL_RTX User's Guide Lab4
M 3/10/14 RTX Task Synchronization
W 3/12/14 RTX Mailboxes, Projects Discussion
F 3/14/14 Lab4 signatures. Project assignments. Lab5
M 3/17/14 Spring Break
W 3/19/14 Spring Break
F 3/21/14 Spring Break
M 3/24/14 OS Structures ch01_os_intro.ppt
W 3/26/14 Project HW Discussion, and Lab5
F 3/28/14 Lab5 Discussion
M 3/31/14 OS Tasks, Task Control Block, Scheduler Design ch03_processes.ppt
W 4/2/14 Data sharing, Mailbox Design
F 4/4/14 Threads ch04_threads.ppt
M 4/7/14 Project kickoff. Exam 2.
W 4/9/14 Project Team Meetings
F 4/11/14 Recorded Lecture: Jack Gannsle; RTOS Ganssle3.ppt, Ganssle3.mp3 (rename to mp3)
M 4/14/14 I2C, Project Update Presentations I2C
W 4/16/14 Process Synchronization ch05_process_synchronization.ppt
F 4/18/14 CPU Scheduling ch06_cpu_scheduling.ppt
M 4/21/14 Deadlock Prevention, Avoidance, and Detection ch07_deadlocks.ppt
W 4/23/14 PID Control PID Control: "PID Control for Embedded Systems", R. Ortman and J. Bottenberg, "PID without a PHD", T. Wescot
F 4/25/14 Project Updates
M 4/28/14 PID Control Demonstration
W 4/30/14 Exam 3
F 5/2/14 Final Project Presentations and Demonstrations


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
Jan 29 Feb 5
Lab 2: Inline Assembly and Measuring Execution Time Feb 14 Feb 17
Lab 3: Interrupts and Shared Data Discovery Board Firmware Package (see Getting Started, below) Feb 26 Feb 28
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
Mar 14 Mar 14
Lab 5: RTX RTOS Task Synchronization Refer to: RL_RTX User's Guide Mar 28 Mar 31


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

Battleship over Controller Area Network (CAN)

Weather Data Recorder and Transmitter

Homework and Assignments

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/14s/599/default.txt · Last modified: 2014/04/29 10:35 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