SE3910
Outcomes
This is an old version of this course, from Spring 2015. A newer version is available here.
Key for this Page
Something like (2_1), for example, indicates that we began learning the outcome in Week 2 on Class 1.
Something like (L3?) for objectives I'm considering for Lab 3
Tips, Tricks, Reference Manuals, and required setup
The only items that are required are those that have class or lab numbers in parenthesis before them, e.g. (L1)
BeagleBone
- Sofware
- Win32 Disk Imager Win32 Disk Imager (For Writing SD Card Images)
- Dr. Schilling's BeagleBone image (Win32 Disk Imager (For Writing SD Card Images)) onto the micro SD card.
- Documentation
- BeagleBone white reference manual (esp. p. 54, Table 8)
- BeagleBone black reference manual (p. ~80)
- BeagleBone pinout (black or white?)
- BeagleBone Black Pinout (source)
- Instalation
Virtual Machine for BeagleBone Development
Unix/Linux
- The
scp
command can be handy to move files between the vm and the bone:scp source_file username@BeagleBone.local:destfile
. You can omit destfile, in which case it goes into the home directory. Just remember to include the colon:scp source_file username@BeagleBone.local:
. - You can start the top program by typing
top
and pressing enter. This program shows CPU usage.
Analog Discovery
- Analog Discovery Pinout (Digilent)
Schematics
Week 1
Review
Simple Circuits
- (1_1) Describe the concepts of voltage and current to various audiences
- (1_2) Explain Ohm's law with a physical analogy
- (1_2) Write Ohm's Law from memory
- (1_2) Describe the concepts of resistance and power to various audiences
- (1_2) Compute the power flowing into or out of a component given the voltage and current across/through that component
- (1_2) Create a schematic or a physical circuit based on the other
- (1_2) Design circuits involving diodes, resistors, and switches in series and parallel
- (1_3) Design and implement a dropping resistor -- a resistor to limit the current flowing through an LED
- (2) Explain how a dropping resistor is different from a pull-down resistor
- (2) Explain the concept of a pull up and a pull down resistor
- (2) Explain how a schematic relates to a physical circuit
- (2) Understand how to read a basic schematic
- (2) Interpret resistor color codes, given a color chart
Simple circuits - BeagleBone Safety
- (2) Compute minimum resistance between single GPIO pin and ground.
- (2) Compute minimum resistance between a single GPIO pin and 3.3 V.
- (1) Never connect GPIO pins to higher than 3.3 V
- Explain why GPIO pins should NEVER be connected to 5 V
- (2) Find Ground, 3.3V, 5V, and 5v on P8 and P9 headers
- (2) Find GPIO pins on P8 and P9 headers
- (2) Wire up the built-in LED on the BeagleBone black breadboard cape
- (2) Wire up an (extra) LED to the BeagleBone black output
- (2) Wire up the built-in switch on the BeagleBone black cape without damaging the BeagleBone
Circuits and the BeagleBone TODO: Where does this belong?
Explain how Embedded Linux can perform low level input and output through device drivers.Construct an embedded Linux program which performs low level Linux I/O to read and write to an output pin.- (3) Measure the systemic latency of input and output control using embedded Linux.
- (3) Construct software which uses
both polling andinterrupts to detect input value changes
The BeagleBone
- (2) Explain the role of GPIO pins on the P8 and P9 headers
- (2) Configure GPIO pins as input or output
- (2) Identify the P8/P9 location of a GPIO pin
- (3) Explain why GPIO pins might not be IO pins
- (4) Explain the concept of a BeagleBone cape
- (2_1) Heed all warnings in the BeagleBone Black System Reference Manual Revision C.1
- (1) Identify various activities as allowed or not allowed according to the warnings in the BeagleBone Black System Reference Manual Revision C.1
- (2) Given a circuit configuration, compute voltages and currents applied to the BeagleBone Black
- (4) Determine if a voltage/current combination is safe for the BeagleBone Black
- (1_2) Determine if a voltage/current combination is safe for a resistor
- Determine if a voltage/current combination is safe for an LED
Other Circuit exercises (partial list)
- (3_1 & 3_3) Resistor color codes
- (3_1) Parallel/Series
- (3_1) Pull-up resistors
- (3_3) Sourcing/Sinking
- (3_3) Messy IO circuit
Oscilloscope
- (2) Using an Oscilloscope, measure voltage differences in a circuit
- (3_1) Using an Oscilloscope, measure time differences between signals
Hardware Interrupts
- (L3) (1_3) Explain the purpose of hardware interrupts
- (L3) (1_3) Explain the difference between polling and interrupts
(later) Explain how an interrupt service routine is handled
Week 2
Languages
- List several popular modern programming languages
- Describe the advantages of these various langauges
Programming in C
- (L3) Interpret and write C programs including pointers, references, function calls, arrays, and declarations.
- (L3) Identify and correct errors in C programs involving pointers
- Interpret and write C code using function pointers
- Write code using conditional compilation
- (3) Explain the performance advantage of conditional compilation
Response time
Much overlap with the later section "Real-time Embedded Systems- (2_2) Explain the importance of response time
- (2_2) Define the concept of a system
- (2_2) Define response time
- (2_2) Compare and contrast soft, firm, and hard real time systems
- (3) Define punctuality
- (2_2) Define event
- (2_2) Define release time
- (2_2) Classify events as either being synchronous or asynchronous
- (2_2) Classify events as periodic, aperiodic, or sporadic
- Define deterministic system
- (3_2) Predict the response-time of a system based on the response-time of its components and their dependencies
Latency
- (3_2) Define Latency
- (3_2) Construct a system diagram from a real world problem
- (3_2) Predict the latency of a system based on the response-time of its components and their dependencies
- (3_2) Experimentally determine the response time for a system
- (3_2) Experimentally analyze the latency of various parts of a system.
- (L3, L4, 3_2) Measure response time experimentally
Week 3
Real-time Embedded Systems
- (2_2) Define soft, firm, hard real-time systems
- (2_2) Define real-time system
- (2_2) Define embedded system
- (2_2) Explain the difference between a microcontroller and a microprocessor
- (2_2) Explain why a given application is embedded or general-purpose.
- (2_2) Define event, synchronous, asynchronous, aperiodic, sporadic, punctual, deterministic, and stochastic
- (2_2) Don't exhibit the 5 misconceptions commonly made about real-time systems
- Explain the advantage of deterministic algorithms in real-time systems
- (2_2) Compare and contrast microcontrollers and microprocessors (Also below)
- (2_2) Explain the concept of a system on a chip
The BeagleBone as a Real-time Embedded Development Platform
- (4_1) Identify the key components of the BeagleBone platform
- (4_1) Describe how the BeagleBone platform is an embedded platform
Describe how the BeagleBone platform can be used to learn real-time systemsExplain why the BeagleBone changes operating frequency under different power conditions
POSIX/Linux multithreading
- (8_2) Use pthreads to ensure synchronization of programs. (see also: qt threads)
- (3_3) Use POSIX sockets to communicate between computers. (see also: qt sockets)
- (3_3) Sockets on an embedded platform
Video and Audio Signals
- (6_3) Describe what a hardware (or multimedia) signal is in your own words
- (6_3) List the differences between a hardware (or multimedia) and a software signal
- (6_3) List several hardware or digital signals found in computer systems
- (5_3 boardshot) Using the oscilloscope, measure the peak-to-peak voltage of a signal
- (4_1) Explain the concept of a pulse width modulated waveform
- (4_1) Measure/compute the duty cycle of a pulse width modulated signal
- (2_2) Explain the concept of rise time and fall time.
Video capture & display on the BeagleBone
- (L5 & L8) Write programs to capture video from a webcam on the BeagleBone
- (L6 & L8) Write programs to display video to an LCD cape on the BeagleBone
Estimating Video Data Rates
- (6_3) List a variety of applications that move data (hardware/multimedia signals) from one point to another
- (4_2) Explain the relationship between bandwidth and image quality for a video stream.
- (4_2) Calculate the bandwidth needed to deliver a given quality video
- (4_2) Calculate bandwidth required to achieve a particular compression ratio, etc.
- (4_2) Explain the differences between MB, Mb, MiB, and Mib, and similarly for KB, GB, and TB.
- (5_1 boardshot) Write out MB, etc. in full form (e.g. Mebibits for Mib).
- (4_2) Convert between orders of magnitude using MiB and MB, etc.
- (4_2) Explain the advantage of MiB over the modern (SI) MB.
- (4_3?) Explain actions you should take if you see a unit like MB in documentation. Explain why you should take action.
Give two reasons why a higher frame-rate might be good- (5_3) Explain the stroboscopic (time-aliasing) effect
- Be familiar with a variety of physical data channels and their relative speeds
- (5_1 & 5_3) Calculate the maximum data rate of a channel under noisy signal conditions
Week 4
Audio input/output on the BeagleBone
- (L7) Write programs to capture audio on the BeagleBone
- (L7) Write programs to play audio on the BeagleBone
Estimate Audio Data Rates
Describe the difference between an analog and a digital signal.- (6_3) List a variety of examples of
analoghardware/multimedia signals - (5_3) Convert between the (analog) frequency and period of a signal.
- (6_3 code) Given information about standard encodings, describe maximum analog frequency that can be heard.
- (6_3 code) Explain in your own words the Nyquist sampling theorem
- (6_3 code) Calculate the minimum sampling rate necessary to transmit a signal using the Nyquist Theorem
Explain the relationship between the number of bits and quality when quantizing a signal- (5_3 boardshot) Use an oscilloscope to measure the frequency and DC bias of a signal.
- (6_3) Estimate bit rates and radio bandwidths needed to transmit audio signals
Real-time Operating Systems
Define "Operating System" in your own wordsDescribe the relationship between an Operating System and the rest of an embedded real-time system.Classify OS roles such as Scheduling, Dispatch, Intertask comm and sync, Privatized memory, I/O services, "Supporting features", UI, Security, File Management as essential, important, or handy
Watchdog Timer and Details of Interrupts
InterruptsDefinitions, Flowchart, Timing diagramDetailed steps
Explain the purpose for a watchdog timerExplain the process of setting the time out on the Watchdog Timer
Week 5
Task Scheduling
- (6_3 & 7_1) Compute CPU Utilization given task running times and periods
- (7_1) Describe these real-time OS (RTOS) scheduling strategies and their relationships to one another
- (7_2, last slide) Task State Diagram
Pre-runtime vs runtime scheduling- (7_1) Round Robin Scheduling
- (7_1) Cyclic Code Scheduling
- (7_1) Rate-Monotonic Scheduling
Describe the impact different scheduling algorithms have on latency and meeting deadlinesSelect frame size in cyclic code schedulingDescribe the tradeoffs necessary in cyclic code scheduling- (8_3) Estimate computing abilities based on task scheduling analysis
(tentative) estimate computing abilities based on queueing theory
Multi-threaded and multi-processor concurrency
- (9_2) Describe sequential consistency
strict multi-processor concurrencyand explain why it is impractical - (9_2) Describe why sequential consistency
concurrency and explain why itis nevertheless practical for Java programming - (8_3) Describe synchronization concurrency
- (8_3) Explain the advantages and disadvantages of synchronization concurrency
- (8_1) Translate Java code using the synchronized keyword to C/Linux code using pthreads
- (8, Quiz) Write programs using mutex locks to guarantee consistency
Define deadlock, livelock, starvation, and mutual exclusionIdentify potential deadlock in short programs- (Lab 8) Write multithreaded applications running on an embedded processor
Memory Usage
Explain how to calculate total memory utilizationList the principle parts of memory utilizationExplain how to limit memory utilization
Optimization
Describe common techniques to optimize source code, includingRepeated calculationsConstant foldingLoop invariance removalInduction varianceLoop unrollingLoop jamming
Week 6
Real-time System Design
Explain why static analysis is especially suited to real-time system designDefine Structured DesignDescribe the advantages and disadvantages of Structured Analysis and Design (SA/SD) compared to Object-Oriented Analysis and Design (OOAD)Give an example of a hierarchical SD.Explain the importance of data dictionaries to any kind of design (e.g. both SD and OOD)Explain the purpose of a data flow diagramConstruct a dataflow diagram for a given problemExplain the purpose of a data-dictionary entryExplain how a data dictionary can be used to keep track of information in an embedded systemExplain the types of defects that a data flow diagram could aid in detecting in softwareCompare and contrast Structured Analysis approaches versus Object Oriented Approaches toward designing software
Real-time System Reliability
Determine the probability of success if prob. of failure is linearly increasing per hourList the three or four key steps you would use to quantify whether a failure rate similar to 10-10/hr is a reasonable failure rate for a given software system
Case Studies
- (10_1) Describe lessons learned from Apollo 11's Error 1201 and Error 1202 alarms.
- (10_1?) Describe lessons learned from the Toyota 2005 Camry L4's unintended acceleration
- (10_1) Describe the ethical implications of working on software - real-time or otherwise
Memory use
- (10_2) Describe how to use gnprof
Acknowledgements
Many of these outcomes originally by Dr. Schilling