| Assembly language programming
- AVR-specific information
- Datasheet for the ATmega328P, the
micocontroller used by the Arduino Uno board. Page 429 has a
summary of the instruction set.
- AVR ISA
manual, which contains a detailed description of each
instruction, its encoding, and how it works.
- Arduino Uno
schematic, showing how the Atmel AVR chip is wired up on the
- On Holy Wars and a
Plea for Peace by Danny Cohen (1980). This is the Internet
Engineering Task Force (IETF) note that coined the phrase "Endianness."
- For those looking for additional/supplemental reading material on
assembly language programming: "Computer Organization and Design: The
Hardware/Software Interface" by David Patterson and John Hennessy
(Morgan-Kaufmann) has a good introduction. The chapter of interest is
Chapter 2 (or 3, depends on the edition) called "Instructions:
Language of the Machine". (Dave Patterson's group
developed what became the SPARC ISA, and more recently also helped
develop the RISC-V ISA. John Hennessy's group developed the MIPS
ISA. Hennessy also went on to be the president of Stanford. In 2018,
they received the Turing Award, the highest honor in computer
- Breadboard: if you are not familiar with a breadboard, there is a nice
tutorial on sparkfun's web site.
- Jumper wires (75): These are just wires to be used to build a circuit.
- 5x7 LED matrix.
- On the component I tested, pin 1 can be identified as follows:
- Orient the component so that the markings on the side of the
display are on the right hand side with the pins facing away.
- In this orientation, pin 1 is the top left pin.
- The terminals of a diode are called an anode and a cathode; the anode of the device is where the higher (more positive) voltage is to be applied relative to the cathode if you want current to flow through the diode.
- RGB LED
- Photo cells
- Shift register (2)
- Push button (2)
- Rotary encoder
- Ultrasonic sensor
- Resistors: 330 Ohm (10), 10 KOhm (2). Resistor values can be read
off the color
coded bands on the resistor
It is extremely important that embedded software be correct, robust, and
take its embedded context into account. Below are some real-world scenarios
that illustrate the consequences of mistakes in the design of embedded systems
The two main professional organizations related to what we're covering this semester are the IEEE and ACM. Both have a code of ethics.
- Parliamentary elections:
Debora Weber-Wulff. Rounding error changes Parliament makeup. The Risks Digest, Vol. 13, Issue 37, April 1992.
- Science missions:
Mars Climate Orbiter Mishap Investigation Board Phase 1 Report, November 1999.
- National defense:
General Accounting Office report on a patriot missile mishap, February 1992.
- Medical instrumentation:
Nancy G. Leveson and Clark Turner. An investigation of the Therac-25 accidents. IEEE Computer, 1993 (pdf)
- Satellite launches:
Ariane 5 Flight 501 failure. Report by the Inquiry Board, 1996.