SE3910
Outcomes

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

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

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 and interrupts 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 systems
  • Explain 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 analog hardware/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 words
  • Describe 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

  • Interrupts
    • Definitions, Flowchart, Timing diagram
    • Detailed steps
  • Explain the purpose for a watchdog timer
  • Explain 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 deadlines
  • Select frame size in cyclic code scheduling
  • Describe 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 concurrency and explain why it is impractical
  • (9_2) Describe why sequential consistency concurrency and explain why it is 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 exclusion
  • Identify potential deadlock in short programs
  • (Lab 8) Write multithreaded applications running on an embedded processor

Memory Usage

  • Explain how to calculate total memory utilization
  • List the principle parts of memory utilization
  • Explain how to limit memory utilization

Optimization

  • Describe common techniques to optimize source code, including
    • Repeated calculations
    • Constant folding
    • Loop invariance removal
    • Induction variance
    • Loop unrolling
    • Loop jamming

Week 6

Real-time System Design

  • Explain why static analysis is especially suited to real-time system design
  • Define Structured Design
  • Describe 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 diagram
  • Construct a dataflow diagram for a given problem
  • Explain the purpose of a data-dictionary entry
  • Explain how a data dictionary can be used to keep track of information in an embedded system
  • Explain the types of defects that a data flow diagram could aid in detecting in software
  • Compare 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 hour
  • List 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