EE445M/EE380L Course material, Spring 2016

Jonathan Valvano

Volume 3 Embedded Systems: Real-Time Operating Systems for ARM Cortex M Microcontrollers

                        Available on Amazon  Available on CreateSpace
Go to Home Page 



view01_Dataflow_Intro.pdf              Introduction

view02_debug.pdf                              Debugging

view03_LM3Sxx.pdf                         Architecture

view04_IntroRTOS.pdf                     Real-time operating systems

view05_threads.pdf                            Thread scheduling

view06_semaphores.pdf                     Thread synchronization

view07_priority.pdf                            Priority scheduling               Monitor example written in java (from

EE345M_022912.pdf                         Gerstlauer’s lecture on real time scheduling

view08_analogMicrophone.pdf          Sound input, more figures

view08_analogMicrophone.ppt          Sound input

view09_analogfilter_speaker.pdf       Sound output

view10_DigitalFilter.pdf                    Fundamentals of digital signal processing

view11_DigitalFilter.pdf                    Filter design techniques

view11_FFT.pdf                                 Discrete Fourier Transform

view12_SPI_SDC.pdf                       Flash disk interface

view13_DMA.pdf                              Fundamentals of high speed interfacing

view14_Filesystem.pdf                       File system management                    

view15_Ethernet.pdf                        Low-level Ethernet

view16_inputcapture.pdf                    Measurement of period and pulse width

view17_Ping.pdf                                Sensor interfacing

view18_PWM.pdf                              Pulse width modulation

view19_motors.pdf                             Motor interfacing

view20_Teams.pdf                     Management of teams and Lab 7 design process

view21_PID.pdf                                 Linear control systems

view22_fuzzylogicOdometry.pdf          Fuzzy logic controllers and odometry

view23_CAN.pdf                               Microcontroller network

view24_fixedRateScheduler.pdf        Real-time operating system


view25_heap.pdf                                Memory management

view26_Paging.pdf                             Virtual memory

view27_USB.pdf                                Universal serial bus

view28_MicriumuCOS.pdf                Commercial RTOS

view29_Review.pdf                           Review                            

Arm_EE382N_4.pdf                          Professor McDermott’s lecture on Arm

McDermott_5_ARM_ISA.pdf      Professor McDermott’s lecture on ARM ISA

McDermott_6_ARM_Programming.pdf   Professor McDermott’s lecture on programming

McDermott_7_Interrupt_Handlers     Professor McDermott’s lecture on interrupts

 McDermott_13_RTOS.pdf      Professor McDermott’s lecture on real time operating systems

Lab introduction

labintro.pdf                             Lab introduction, policies

KeilStart.pdf                           How to install compiler

style.pdf                                  C programming guideline

style_policy.pdf                      Grading policies about style

c_and_h_files.pdf  Header and Code file syntax


Lab assignments (a refers to the new TM4C123, b refers to the old LM3S8962)

Lab01a.pdf   Lab01b.pdf    Real-time clock, Display, ADC and serial port drivers on the board

Lab02.pdf       Real-time operating system kernel: thread switching and synchronization

Lab03.pdf      Blocking semaphores, priority scheduling, performance measures, profiling

Lab04.pdf        Microphone or Sharp distance sensor input, digital filters, FFT, display spectrum on the LCD (Graphics driver in ST7735.h ST7735.c is ready for Lab 4)

Lab05.pdf       Solid state disk, SSI, address translation, layered software, file system

Lab06.pdf        Distributed data acquisition using CAN of IR distance sensor and Ping))), H-bridge for DC motor

                postscript code for creating wheel patterns for tachometer (not needed 2014)

Lab07.pdf  ready     Formula 0001 Racing Robot  2011 Photos   2011 Racing Video  2012 racing video   2014 racing video

                        KitSignOut.doc      KitSensorSignOut.pdf    List of parts in the kit

                        track1.jpg  track1.pdf  track1.pcb

                        track2.pdf  track2.pcb

                        Monaco.jpg  track3_Monaco.pdf  track3_Monaco.pcb

                        track4_Spain.pdf  track4_Spain.pcb

                        track5_Longhorn.pdf  track5_Longhorn.pcb

                        track6_germanGP.pdf  track6_germanGP.pcb

                        track7_US_AustinGP.pdf  track7_US_AustinGP.pcb

                        track8_buddh.pdf  track8_buddh.pcb

                        Tshirt.pdf        Winners of the race get this shirt


Reference Material

CreatingProject.pdf                            uVision4 instructions

LM3S8962EvalBoard.pdf                  Details of the EKK-LM3S8962 kit, circuit diagram

LM3S8962PortPins.pdf                      Available I/O pins on the EKK-LM3S8962 kit

LM3S8962_Kit.jpg                             Photo of the EKK-LM3S8962 kit

LM3S8962kitOverview.pdf               2 page flyer

CortexM3InstructionSet.pdf              Thumb2 Assembly

CortexM3Programmer.pdf                 Thumb2 Assembly

CortexM3_TRM_r2p1.pdf                 Assembly instruction set

LM3S8962-Datasheet.pdf                  Data sheet

LM3S8962_ADC.pdf                           Details of ADC on LM3S8962

LM3S8962_UART.pdf                      Details of serial port on LM3S8962

LM3S8962Errata.pdf                         Errors in the LM3S8962

LM3S2110.pdf                                   Data sheet

lm3s2110errata.pdf                             Errors in the LM3S2110

RiT_OLED_P1420_revision2.pdf      OLED data sheet

SD_Physical_Layer_Spec.pdf            Secure digital card specification

Servomanual.pdf                                 How to interface and control servo motors

Ifyoumessuptheboard.pdf                  How to reflash chip



Example code

integer.h                                              Integer manipulation

os.h                                                      Possible header files for OS (feel free to change this)

ST7735.h    ST7735.c               A version of the LCD driver that doesn't use SysTick (feel free to change this). Includes graphics for Lab 4.

Lab2.c                                                 Possible main program for OS (feel free to change this)

Lab3.c included in Lab2.c                     Possible main program for OS (feel free to change this)

edisk.c edisk.h                                     SDC card interface, see also

efile.h                                                  Possible header files for file system (feel free to change this)

sqrt.c                                                   Integer square root using Newton’s method

cr4_fft_1024_stm32.s                         ST Microsystems Fast Fourier Transform code for 1024 elements

cr4_fft_256_stm32.s                           ST Microsystems Fast Fourier Transform code for 256 elements

cr4_fft_64_stm32.s                             ST Microsystems Fast Fourier Transform code for 64 elements

PID_stm32.s                                       ST Microsystems digital controller code for 64 elements

Lab5.c                                                 Possible main program for OS (feel free to change this)

Lab6.sch                                              Starter circuits for robot


Design tools

ScheduleFinder.c                                            Find a real-time periodic schedule with minimum jitter

STM32F10x_DSP_Lib_V2.0.0_setup.exe     ST Microsystems digital signal processing tools

            UM0585.pdf                                       Details of ST Microsystems digital signal processing tools

lpf.xls                                                                An Excel sheet to build an analog 2-pole Butterworth low pass filter

DigitalNotch60Hz.xls                                     Simple IIR digital filter design using pole-zero plot

DigitalFilterDesign.xls                                                Complicated IIR digital filter design using pole-zero plot
DigitalHighPassFilter.xls                    Simple IIR high pass digital filter using pole-zero plot

FIRdesign51.xls                                              FIR digital design tool using DFT

FIRdesign64.xls                                              FIR digital design tool using DFT

filterpro_design_program_download-h.exe   Texas Instruments’ Analog filter tool  (version 2)

Micrium-uC/OS                   Example RTOS for the Cortex M Get the book  Version 3

Micrium-ARM-uCOS-II-Cortex-M3.pdf       Description of Micrium uCOS-II


Controller Area Network (CAN) material

CANbroadcast.gif                  Animation of CAN broadcast

CANarbitration.gif                 Animation of CAN arbitration

CanReception.pdf                   Logic analyzer trace of Receiving CAN

CanTransmission.pdf              Logic analyzer trace of Transmitting CAN


Last updated April 27, 2016, Send comments to: Jonathan W. Valvano .

  Go to Home Page