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

BeagleBone

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 (broken link) (Digilent)

Schematics

 

Week 1

Review

Simple Circuits

  • Describe the concepts of voltage and current to various audiences
  • Explain Ohm's law with a physical analogy
  • Write Ohm's Law from memory
  • Describe the concepts of resistance and power to various audiences
  • Compute the power flowing into or out of a component given the voltage and current across/through that component
  • Create a schematic or a physical circuit based on the other
  • Design circuits involving diodes, resistors, and switches in series and parallel
  • Design and implement a dropping resistor -- a resistor to limit the current flowing through an LED
  • Explain how a dropping resistor is different from a pull-down resistor
  • Explain the concept of a pull up and a pull down resistor
  • Explain how a schematic relates to a physical circuit
  • Understand how to read a basic schematic
  • Interpret resistor color codes, given a color chart

Simple circuits - BeagleBone Safety

  • Compute minimum resistance between single GPIO pin and ground.
  • Compute minimum resistance between a single GPIO pin and 3.3 V.
  • Never connect GPIO pins to higher than 3.3 V
  • Explain why GPIO pins should NEVER be connected to 5 V
  • Find Ground, 3.3V, 5V, and 5v on P8 and P9 headers
  • Find GPIO pins on P8 and P9 headers
  • Wire up an LED to the BeagleBone black output
  • Wire up a switch to the BeagleBone black cape without damaging the BeagleBone

Other Circuit exercises (partial list)

  • Resistor color codes
  • Parallel/Series
  • Pull-up resistors
  • Sourcing/Sinking
  • Messy IO circuit

The BeagleBone

  • Explain the role of GPIO pins on the P8 and P9 headers
  • Configure GPIO pins as input or output
  • Identify the P8/P9 location of a GPIO pin
  • Explain why GPIO pins might not be IO pins
  • Explain the concept of a BeagleBone cape
  • Heed all warnings in the BeagleBone Black System Reference Manual Revision C.1
  • Identify various activities as allowed or not allowed according to the warnings in the BeagleBone Black System Reference Manual Revision C.1
  • Given a circuit configuration, compute voltages and currents applied to the BeagleBone Black
  • Determine if a voltage/current combination is safe for the BeagleBone Black
  • Determine if a voltage/current combination is safe for a resistor
  • Determine if a voltage/current combination is safe for an LED

Oscilloscope

  • Using an Oscilloscope, measure voltage differences in a circuit
  • Using an Oscilloscope, measure time differences between signals

Week 2

Circuits and the BeagleBone

  • Measure the systemic latency of input and output control using embedded Linux.
  • Construct software which uses both polling and interrupts to detect input value changes

Hardware Interrupts

  • Explain the purpose of hardware interrupts
  • Explain the difference between polling and interrupts
  • Explain how an interrupt service routine is handled

Languages

  • List several popular modern programming languages
  • Describe the advantages of these various langauges

Programming in C

  • Interpret and write C programs including pointers, references, function calls, arrays, and declarations.
  • Identify and correct errors in C programs involving pointers
  • Interpret and write C code using function pointers
  • Write code using conditional compilation
  • Explain the performance advantage of conditional compilation

Response time

Much overlap with the later section "Real-time Embedded Systems
  • Explain the importance of response time
  • Define the concept of a system
  • Define response time
  • Compare and contrast soft, firm, and hard real time systems
  • Define punctuality
  • Define event
  • Define release time
  • Classify events as either being synchronous or asynchronous
  • Classify events as periodic, aperiodic, or sporadic
  • Define deterministic system
  • Predict the response-time of a system based on the response-time of its components and their dependencies

Latency

  • Define Latency
  • Construct a system diagram from a real world problem
  • Predict the latency of a system based on the response-time of its components and their dependencies
  • Experimentally determine the response time for a system
  • Experimentally analyze the latency of various parts of a system.
  • Measure response time experimentally

Week 3

Real-time Embedded Systems

  • Define soft, firm, hard real-time systems
  • Define real-time system
  • Define embedded system
  • Explain the difference between a microcontroller and a microprocessor
  • Explain why a given application is embedded or general-purpose.
  • Define event, synchronous, asynchronous, aperiodic, sporadic, punctual, deterministic, and stochastic
  • Don't exhibit the 5 misconceptions commonly made about real-time systems
  • Explain the advantage of deterministic algorithms in real-time systems
  • Compare and contrast microcontrollers and microprocessors (Also below)
  • Explain the concept of a system on a chip

The BeagleBone as a Real-time Embedded Development Platform

  • Identify the key components of the BeagleBone platform
  • Describe how the BeagleBone platform is an embedded platform

POSIX/Linux multithreading

  • Use pthreads to ensure synchronization of programs. (see also: qt threads)
  • Use POSIX sockets to communicate between computers. (see also: qt sockets)
  • Sockets on an embedded platform

Video and Audio Signals

  • Describe what a hardware (or multimedia) signal is in your own words
  • List the differences between a hardware (or multimedia) and a software signal
  • List several hardware or digital signals found in computer systems
  • Using the oscilloscope, measure the peak-to-peak voltage of a signal
  • Explain the concept of a pulse width modulated waveform
  • Measure/compute the duty cycle of a pulse width modulated signal
  • Explain the concept of rise time and fall time.

Video capture & display on the BeagleBone

  • Write programs to capture video from a webcam on the BeagleBone
  • Write programs to display video to an LCD cape on the BeagleBone

Estimating Video Data Rates

  • List a variety of applications that move data (hardware/multimedia signals) from one point to another
  • Explain the relationship between bandwidth and image quality for a video stream.
  • Calculate the bandwidth needed to deliver a given quality video
  • Calculate bandwidth required to achieve a particular compression ratio, etc.
  • Explain the differences between MB, Mb, MiB, and Mib, and similarly for KB, GB, and TB.
  • .
  • Convert between orders of magnitude using MiB and MB, etc.
  • Explain the advantage of MiB over the modern (SI) MB.
  • Explain actions you should take if you see a unit like MB in documentation. Explain why you should take action.
  • Explain the stroboscopic (time-aliasing) effect
  • Be familiar with a variety of physical data channels and their relative speeds
  • Calculate the maximum data rate of a channel under noisy signal conditions

Week 4

Audio input/output on the BeagleBone

  • Write programs to capture audio on the BeagleBone
  • Write programs to play audio on the BeagleBone

Estimate Audio Data Rates

  • List a variety of examples of analog hardware/multimedia signals
  • Convert between the (analog) frequency and period of a signal.
  • Given information about standard encodings, describe maximum analog frequency that can be heard.
  • Explain in your own words the Nyquist sampling theorem
  • 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
  • Use an oscilloscope to measure the frequency and DC bias of a signal.
  • 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

  • Compute CPU Utilization given task running times and periods
  • Describe these real-time OS (RTOS) scheduling strategies and their relationships to one another
    • Task State Diagram
    • Pre-runtime vs runtime scheduling
    • Round Robin Scheduling
    • Cyclic Code Scheduling
    • 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
  • Estimate computing abilities based on task scheduling analysis
  • (tentative) estimate computing abilities based on queueing theory

Multi-threaded and multi-processor concurrency

  • Describe sequential consistency strict multi-processor concurrency and explain why it is impractical
  • Describe why sequential consistency concurrency and explain why it is nevertheless practical for Java programming
  • Describe synchronization concurrency
  • Explain the advantages and disadvantages of synchronization concurrency
  • Translate Java code using the synchronized keyword to C/Linux code using pthreads
  • Write programs using mutex locks to guarantee consistency
  • Define deadlock, livelock, starvation, and mutual exclusion
  • Identify potential deadlock in short programs
  • 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

  • Describe lessons learned from Apollo 11's Error 1201 and Error 1202 alarms.
  • Describe lessons learned from the Toyota 2005 Camry L4's unintended acceleration
  • Describe the ethical implications of working on software - real-time or otherwise

Memory use

  • Describe how to use gnprof

Acknowledgements

Many of these outcomes originally by Dr. Schilling