Introduction to Embedded Systems

EE319K, Unique: 16275, 16280, 16285, 16290
Semester: Spring 2012


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


EE319K will continue the bottom-up educational approach, started in EE302 and EE306. The overall educational objective is to allow students to discover how the computer in-teracts with its environment. It will provide hands-on experiences of how an embedded system could be used to solve EE problems. The focus will be understanding and analy-sis rather than design. The analog to digital converter (ADC) and digital to analog con-verter (DAC) are the chosen mechanism to bridge the CE and EE worlds. EE concepts include Ohms Law, LED voltage/current, resistance measurement, and stepper motor control. CE concepts include I/O device drivers, debugging, stacks, FIFO queues, local variables and interrupts. The hardware construction is performed on a breadboard and debugged using a multimeter (students learn to measure voltage and resistance). Soft-ware is developed in Freescale 9S12 assembly and C; 3 out of the 10 labs are simu-lated-only in TExaS and the other 7 are first simulated in TExaS and then run on the real 9S12. Software debugging occurs during the simulation stage. Verification occurs in both stages. Labs 1 through 6 are written in 9S12 assembly language. Labs 8 and 9 are writ-ten in a combination of assembly and C. Labs 7 and 10 are written in a C.




After the successful conclusion of EE319K students should be able to understand the basic components of a computer, write assembly and C 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.

  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 and C 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.


Electronic Mail Notification Policy

In this course e-mail will be used as a means of communication with students. You will be responsible for checking your e-mail regularly for class work and announcements. The complete text of the University electronic mail notification policy and instructions for updating your e-mail address are available at

Use of Blackboard and Class Web Site

This course uses the class web page and Blackboard to distribute course materials, to communicate and collaborate online, to submit assignments and to post solutions and grades. You will be responsible for checking the class web page and the Blackboard course site regularly for class work and announcements. As with all computer systems, there are occasional scheduled downtimes as well as unanticipated disruptions. Notification of disruptions will be posted on the Blackboard login page. Scheduled downtimes are not an excuse for late work. However, if there is an unscheduled downtime for a significant period of time, I will make an adjustment if it occurs close to the due date.

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.

Religious Holidays

Religious holy days sometimes conflict with class and examination schedules. If you miss an examination, work assignment, or other project due to the observance of a religious holy day you will be given an opportunity to complete the work missed within a reasonable time after the absence. It is the policy of The University of Texas at Austin that you must notify each of your instructors at least fourteen days prior to the classes scheduled on dates you will be absent to observe a religious holy day.

Contents © Copyright 2012 Andreas Gerstlauer