The best way to understand what you will learn in this class is to list the labs you will complete. In a series of six labs, you will develop your own real-time operating system on either the TM4C123 or the MSP432 LaunchPad, written in C and debugged using Keil uVision. The labs will also require a MK-II Educational boosterpack that will be used for the input/output.
Lab 1: Introduction to I/O using the BSP and debugging
Learn about Keil compiler and debugger. Understand what the MK-II boosterpack measures. Learn how to perform timing profiles of the software system. A very simple personal fitness application will be demonstrated.
Lab 2: Thread management for a personal fitness device
You will design, develop and debug an RTOS with multiple threads, real-time periodic threads, spinlock semaphores, and a round robin scheduler. A personal fitness application will run on top of your RTOS.
Lab 3: Thread synchronization and scheduling for a personal fitness device
You will design, develop and debug an RTOS with timer-based real-time threads, thread sleeping, and blocking semaphores with first come first serve scheduler. A personal fitness application will run on top of your RTOS.
Lab 4: Real-time operating system for a hand-held video game
You will design, develop and debug an RTOS with edge triggered interrupts, and blocking semaphores with priority scheduler. A hand-held video game will run on top of your RTOS.
Lab 5: File system using the flash ROM of the microcontroller
You will extend your RTOS so that data can be logged onto internal flash of the microcontroller. The data will be organized as a file system so that you can record and playback simultaneously. A personal fitness application will run on top of your RTOS.
Lab 6: Bluetooth personal area network
This lab will require the CC2650 boosterpack or the CC2560 LaunchPad. Together the TM4C123/MSP432 (running your OS), EK-II boosterpack, and the CC2650 create a personal fitness device with Bluetooth connectivity. You will be able to interact with the system using a smart phone.