Introduction to Embedded Systems

EE319K, Unique: 15955, 15960, 15965
Semester: Spring 2009


Embedded systems; machine language execution; assembly language programming; local variables; input/output synchronization; analog to digital conversion, digital to analog conversion; debugging; and interrupts.



Jonathan W. Valvano
Introduction to Embedded Systems: Interface to the Freescale 9S12
HKN notes
(to be published by Cengage in 2009)


  1. Understanding how the computer stores and manipulates data (characters, integers, and fixed-point numbers), the basic arithmetic and logical operations performed by the computer.
  2. The understanding of embedded systems (a system with the computer hidden inside) using modular design and abstraction.
  3. Assembly language programming: considering both function and style.
  4. Understanding how the computer executes instructions (fetch opcode, fetch operand, read data, operate, and write data).
  5. The use of a microcontroller (strategic use of RAM, ROM and I/O). Microcontrollers typically have a little RAM and a lot of ROM. Globals, locals and the heap go in RAM. Constants and programs go in ROM.
  6. Debugging and verification using a simulator and on the microcontroller (embedded systems typically do not have a print function). Debugging using breakpoints, scanpoints, profiles, monitors, voltmeters, oscilloscopes, logic analyzers.
  7. How input/output actually happens (the students wire up analog and digital signals to the 9S12 and measure them with a voltmeter), synchronization, including switches, LEDs, LCDs, DACs, ADCs, and serial ports.
  8. The implementation of an I/O driver (a set of programs that perform I/O).
  9. Understanding, from an architecture standpoint, how local variables and parameters work (e.g., space on the stack is dynamically created, the local variable is accessed using stack-pointer relative addressing, then the space is deallocated).
  10. Analog to digital conversion (ADC), e.g., the students interface a slide potentiometer to the ADC and write software that measures the position of the slide, creating a display like "1.23 cm".
  11. Interrupt synchronization, real-time ADC sampling (periodic timer interrupts), introduction to multithreaded programming.
  12. Simple motors (e.g., open and closed-loop stepper motor control).
  13. Digital to analog conversion (DAC), used to make simple sounds.
  14. Design and implementation of elementary data structures, such as linked lists, stacks and queues.

After the successful conclusion of EE319K, students should be able to understand the basic components of a computer, write assembly language programs that perform I/O functions and implement simple data structures, manipulate numbers in multiple formats, and understand how software uses global memory to store permanent information and the stack to store temporary information.


Students with disabilities

The University of Texas at Austin provides upon request appropriate academic accommodations for qualified students with disabilities. For more information, contact the Office of the Dean of Students at 471-6259, 471-4641 TTY or the College of Engineering Director of Students with Disabilities at 471-4382.

Contents © Copyright 2009 Andreas Gerstlauer