INSTRUCTOR

    Md Jahidul Islam. Office Hours: Friday 4:00 PM - 5:30 PM. @LAR-339D.

CLASS SCHEDULE

    Lecture: M/W/F 4:00PM-4:55PM @LAR-0340
    Laboratory: six sections; please check canvas for specific schedule.

TAs

    Xuanhao Shi. Office Hours: MW 10:40AM-11:30AM @NEB-281/222.
    Kevin D Mcgrath. Office Hours: Tu/Th 12:50-1:40PM @NEB-281/222.

COURSE PREREQUISITES

    EEL 4744C with minimum grade of C
    Fluent in C and assembly programming
    Proficiency in Python programming

Hardware and Software

    TI Tiva C Series LaunchPad
    TI SENSOR Booster Pack
    TI BeagleBone Black Board
    IoT Development Board (with LEDs, LCD touch display and joystick)
    TI Code Composer Studio 11
    Beagle-Board firmware image
    Some relevant libraries and source code (will be provided in class)

Textbooks

    Real-Time Operating Systems for ARM Cortex-M Microcontrollers (4th Edition)
    By Jonathan W Valvano. ISBN-13: 978-1466468863, ISBN-10: 1466468866.

Lectures

Laboratory

  • Lab #0   Introduction: Hw & Sw setup.
    Part A: Introduction and setup
    Part B: Blinking TIVA C on-board LEDs
    [See Lecture_1   Code]
  • Lab #1   Basic Interfacing, Linking, and Communication.
    Part A: Interfacing LED drivers, I2C communication
    Part B: ARM assembly checksums with the LED driver
    Part C: Basic UART with LED driver and console I/O
    [Manual   Code]
  • Lab #2   G8RTOS Scheduler and Synchronizers.
    Part A: Setting up support packages, drivers, & OS structure
    Part B: Implementing threads, exception handlers & schedulers
    Part C: Implementing semaphores & peripheral controls
    Part D: Adding threads to control LEDs via sensor feedback
    Part E: Putting it all together!
    [Manual   Code]
  • Lab #3   G8RTOS Periodic Threads and Queueing.
    Part A: Implementing Blocking, yielding, and sleeping
    Part B: Integrating periodic threads with background threads
    Part C: Enabling inter-process communication with FIFOs
    [Manual   Code]
  • Lab #4   G8RTOS Dynamic Threads and LCD Interfacing.
    Part A: Interfacing a touchscreen color LCD
    Part B: Convert Round-Robin Scheduler to Priority Scheduler
    Part C: Dynamic Thread Creation and Destruction
    Part D: Aperiodic Event Threads
    [Manual   Code]
  • Lab #5   AI with RTOS.
    Part A: Interface & communicate with a Beagle
    Part B: Setup Python-OpenCV pipeline
    Part C: On-Board Face detection
    [Manual   Code]