Embedded and Real-Time Systems / Real-Time Operating Systems
EE445M, Unique: 15675, 15680, 15685, 15690, 15695
EE380L.12, Unique: 15995, 16000, 16005, 16010, 16015
Semester: Spring 2018
Graduate students should register for EE380L.12 and undergraduates should register for EE445M (credit for both will not be allowed).
Home
Syllabus
Lectures
Labs
Resources
Canvas
Reference material
Coding Guides
C programming guidelines:
style.pdf
Good header and code file syntax:
c_and_h_files.pdf
Reference card from Stanford:
c-refcard.pdf
JPL's official C coding standard mandated for all their embedded code:
JPL Institutional Coding Standard for the C Programming Language
Automatically generate software documentation from header files:
Doxygen
An excellent overview of synchronization issues (the good and bad): Allen B. Downey,
The Little Book of Semaphores
Manuals and Data sheets
Data sheets:
http://www.ece.utexas.edu/~valvano/Datasheets
.
ARM Cortex-M4
manuals:
ARM and Thumb-2 Instruction Set Quick Reference Card
Technical Reference Manual
Cortex-M3/M4F Instruction Set
by TI
Cortex M Instructions
used in EE319K
TM4C123GH6PM Microcontroller
manuals:
Data Sheet
Known bugs
Known ARM Cortex-M4 bugs
EK-TM4C123GXL LaunchPad Evaluation Board
manuals:
User's Guide
Secure Digital (SD) card physical layer specification
Controller Area Network (CAN) specifications
Animations of
CAN broadcast
and
CAN arbitration
Logic analyzer trace of
receiving CAN
and
transmitting CAN
Robot documentation
Sensor board
version 3 schematic
and
version 3 PCB layout
Motor board
version 6 schematic
and
version 6 PCB layout
Eagle
files for
sensor board schematic
,
sensor PCB
,
motor board schematic
,
motor PCB
Mechanical design of
Formula0001 Robot Car
(source
drawings
in
PCB Artist
format)
Parts lists/bill of materials (BOM)
Tools
Keil µVision
manuals and instructions:
Keil installation instructions
LaunchPad drivers
Creating a Project
Reference manuals for µVision and the ARM compiler toolchain
Micrium µC/OS
sample RTOS implementations
µC/OS-II on the ARM Cortex-M3
Books for
µC/OS-II
and newer
µC/OS-III on Cortex-M
ST Microelectronics STM32F10x digital signal processing (DSP) library
, Version 2.0 (Lab 2)
User Manual
Find a real-time periodic schedule with minimum jitter:
ScheduleFinder.c
Examples and Starter Files
Starter files:
http://www.ece.utexas.edu/~valvano/arm
Linux/gcc development starter project:
Setup for EE445L labs on Linux
by
Josh Minor
linux_skeleton.tar.gz
by Kevin George
Integer manipulations:
integer.h
,
sqrt.c
(square root using Newton's method)
Possible OS header files and main programs (feel free to change):
os.h
,
Lab2.c
(includes Lab3.c),
Lab4.c
Lab 1
Sensor board test project:
SensorTestProject.zip
Lab 2
ST Microelectronics Fast Fourier Transform (FFT) code:
cr4_fft_64_stm32.s
,
cr4_fft_256_stm32.s
,
cr4_fft_1024_stm32.s
ST Microelectronics digital controller code:
PID_stm32.s
Lab 4
SD card interface (see also
SDC_4C123.zip
starter file):
eDisk.h
,
eDisk.c
Possible header files for file system (feel free to change):
eFile.h
Lab 4 starter project:
Lab4_4C123_FileSystem.zip
Lab 5
FAT file system:
SDCFile_4C123.zip
, and heap manager:
Heap_4C123.zip
ELF file format:
Executable and Linkable Format (ELF) Specification
,
ELF for the ARM Architecture
ELF file loader for ARM:
elfloader
project on GitHub
User test program:
Lab5_Proc.zip
Lab 6
Motor board test project:
MotorTestProject.zip
Lab 7
Parts lists for robot kit:
KitRobotSignOut.pdf
CAD files for rack-and-pinion steering:
RackAndPinion.zip
(credit to Shantanu Kanvinde)
CAD files for 3D-printed sensor mounts:
SensorMounts.zip
(credit to Travis Llado)
Starter project for ESP8266 Wifi module:
ESP8266_SensorBoard.zip
(allows robot to stream data to a web page)
Previous race track layouts:
Race Tracks
Exams
Midterm Study Guide
Final Study Guide
Old exams:
Midterm Sp'16
(
Solutions
) and
Final Sp'16
(
Solutions
)
Midterm Sp'15
(
Solutions
) and
Final Sp'15
(
Solutions
)
Prof. Valvano's old exams:
http://www.ece.utexas.edu/~valvano/EE345Moldquiz/
Equipment
Other cool parts
(but not needed)
MAX1247ACPE+ 12-bit ADC, such as the (A or B, with/without +)
MAX492CPA rail-to-rail dual op amp (any plastic DIP, with/without +)
MAX494CPD rail-to-rail quad op amp (any plastic DIP, with/without +)
MAX539ACPA single 12-bit SPI interface DAC (ACPA or BCPA)
MAX6225ACPA+ 2.500V analog reference (with/without +) (ACPA or BCPA)
MAX5154ACPE dual 12-bit SPI interface DAC (ACPE or BCPE)
TLC2272ACP rail-to-rail dual op amp
INA122P rail-to-rail instrumentation amp
OPA2350PA rail-to-rail dual op amp
SamTec
, click Samples, register
Samtec SD-115-G-2 (could use two for LM3S8962 Board)
Samtec SD-110-G-2 (could use two for LM3S2110 Board)
Samtec ESW-110-37-L-D (could use two for each LM4C123 LaunchPad)
Places to buy parts in Austin
AlTex Electronics
Frys Electronics
Radio Shack
Full service online sales
Digikey
Mouser Electronics
Newark
Sparkfun
Jameco
Arrow
Surplus sales
BG Micro
All Electronics
Contents © Copyright 2016 Andreas Gerstlauer
http://www.ece.utexas.edu/~gerstl/ee445m_s16