ECE319K/ECE319H Introduction to Embedded Systems, Spring 2024 (See Canvas for most up to date office hours, January 22, 2024)
Email all professors and TAs (

Course Catalog Description
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.

ECE319K will continue the bottom-up educational approach, started in ECE302 and ECE306. The overall educational objective is to allow students to discover how the computer interacts 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 analysis rather than design. The analog to digital converter (ADC) and digital to analog converter (DAC) are the chosen mechanism to bridge the software, computer, and electrical engineering worlds. Electrical engineering concepts include Ohms Law, LED voltage/current, resistance measurement, and stepper motor control. Software engineering concepts include debugging, pointers, local variables, and data structures (stacks, queues, linked lists). Computer engineering concepts include I/O device drivers, real-time execution using interrupts. The hardware construction is performed on a breadboard and debugged using a multimeter (students learn to measure voltage and resistance). Software is developed in ARM Cortex-M0+ assembly and C; all labs will run on the real MSPM0G3507 board. Software and hardware debugging occur concurrently. Labs 1, and 2 are written in ARM assembly language. Labs 6 and 7 are written in a combination of assembly and C.  Labs 3, 4, 5, 8 and 9 are written in C. ECE319H students write Labs 8 and 9 in C++.

ECE319K/ECE319H is team-taught. The course materials have been developed collaboratively by all instructors (Chiou, Erez, Cuevas, Telang, Tiwari, Valvano, Holt, and Yerraballi). All five lecture sections will share the same TAs, PowerPoint slides, lab assignments, Quizzes, and Exams. ECE319K/ECE319H will give common Exams 1 and 2 in the evening. Please check the date/time for exams 1 and 2 and make sure they fit your schedule; Let your instructor know if your schedule conflicts with these date/time. The final exam is also common and the date/time will be announced once assigned by the registrar. 

This UT Box folder contains PowerPoint slides, worksheets, and example programs associated with ECE319K lectures Spring 2024.

Lecture: Tiwari ECE319H, TTh 9:30-11a, CPE 2.214
  Lab:  16770 Th11
  Lab:  16775 Th3
  Lab:  17780 Th2
  Lab:  17785 Th5
Lecture: Chiou ECE319H, TTh 2-3:15p, ECJ 1.214
  Lab:  16790 Th12
  Lab:  16795 Th1
  Lab:  16800 W11
  Lab:  16805 T4
Lecture: Valvano ECE319K, MW 12-1:15p, ECJ 1.214
  Lab:  16810 T10
  Lab:  16815 T11
  Lab:  16820 T12
  Lab:  16825 T1
Lecture: Telang ECE319K, MW 1:30-2:45p, ECJ 1.202
  Lab:  16830 W3
  Lab:  16835 W4
  Lab:  16840 W5
  Lab:  16845 W6
Lecture: Holt ECE319K, MW 3-4:15p, ETC 2.136
  Lab:  16850 T2
  Lab:  16855 T3
  Lab:  16860 T4
  Lab:  16865 T5
You can only switch lab sections using official add/drop procedures.

Lectures will be presented in person. TA office hours and lab checkouts will be performed in person. 

  Jonathan Valvano, EER 5.820, 
  Lucas Holt, 
  Mohit Tiwari, EER 5.886 
  Vivek Telang, EER 4.826, 
  Derek Chiou, EER 5.890, 

Professor office hours See Canvas for most up to date information
Valvano zoom: Monday 6-7, Wednesday 6-7, and Friday 6-7 (see Canvas for links), in person: EER5.820, Tuesday 2-3p, Thursday 2-3p
Chiou in person: EER 5.890, Tuesday 4:45PM-6PM and Thursday 3:15PM-4:30PM
Telang in person: EER 4.652, Tuesday 1:30-3:00p and Thursday 1:30-3:00p
Holt zoom: Thursday 5:30-7p (see Canvas for links), in person: EER5.870, Monday 430-6p

Teaching Philosophy The ECE319K/ECE319H staff strongly encourage students to take an active role in this class.  Questions are welcome before, during and after class. Please feel free to email, visit or call us if you have questions.

Grading based on your effort
   5% Lecture attendance and participation
   15% Weekly Quizzes, Online on Canvas, one due each Friday
   30% Laboratory Assignments, Due at lab times (Tue/Wed/Thu)
Grading based on exams
   15% Exam 1 Thursday 2/22, 7-8:30pm, room see Canvas, on paper
   15% Exam 2 Thursday 3/28, 7-8:30pm, room see Canvas, on your laptop
   20% Uniform Final Exam, Mon 5/6 3:30-5:30pm for regular, Mon 5/6 7-9pm for makeup, on paper

If you are the one who is doing the effort, you will do well on the exams.

Cutoff scores for the letter grades will not be determined until after the final exam.

Lab lectures Each week we will provide one or two optional Lab lectures. The times for the lectures are TBD. Lab lectures will be given by the TAs. There will be lab lectures only when a lab is due the next week. E.g., the first lab lecture will be Friday September 1.

TAs (Photos of TAs): The office hours and locations will be posted on Canvas. About 36 students will be assigned to each 20-hour TA, and 18 students to each 10-hour TA.
   Grad TAs Elise Johnson, Allison N Seigler, Xiwen Wei, Shrihari Shanmugasundaram, Austin James
   UG TAs Prithvi Senthilkumar, Paul Han, Anthony Hermez, Tasnia Bari, Anna Guo, Yilin Jin, Vivek Keval, Anthony Luu, Frank Collebrusco , Ayush RoyChowdhury
   Supplemental Instruction TA    Ayush RoyChowdhury

Lecture notes, Canvas quizzes, data sheets, reference materials, and lab assignments) see 

Required Text: Introduction to Embedded Systems Using the MSPM0+, ISBN: 979-8852536594. This book is printed on demand and can be purchased from

Equipment to buy: see Canvas announcement for buying details
   - A personal laptop. The laptop will need a USB port and run the application Code Composer Studio.
   - A MSPM0 LP-MSPM0G3507 LaunchPad
   - A 160 by 128 pixel color graphics LCD, ST7735R
   - A solderless breadboard and wires
   - A digital multimeter

Safety warning: There should be no solder with lead on campus. Nevertheless, please wash your hands after soldering, before eating or drinking. If you drop the soldering iron, let it fall to the ground. Do not try and catch it. If you are pregnant or think you might be pregnant, have someone else do the soldering.

Course Outcomes
After the successful conclusion of ECE319K/ECE319H 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.

  Detailed Objectives of ECE319K/ECE319H:

  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 and C programming: considering both function and style.
  4. 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.
  5. Debugging and verification using a simulator and on the microcontroller (embedded systems typically do not have a print function). Debugging techniques, such as breakpoints, scanpoints, profiles, monitors, voltmeters, oscilloscopes, logic analyzers.
  6. How input/output actually happens from both a software and hardware perspective. The students wire up analog and digital signals to the MSPM0 and measure them with a voltmeter, synchronization, includingswitches, LEDs, LCDs, DACs, ADCs, and serial ports.
  7. The implementation of an I/O driver (a set of programs that perform input/output).
  8. 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).
  9. 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.234 cm”.
  10. Interrupt synchronization, real-time ADC sampling (periodic timer interrupts), introduction to multithreaded programming.
  11. Digital to analog conversion (DAC), used to make simple sounds.
  12. Design and implementation of elementary data structures, such as linked lists, stacks and queues.

Prerequisites: EE306, ECE306 or BME306 with a grade of at least C-. You should recall:

  1. Bits
    1. Numbers - Unsigned and Signed Integer representation in 2’s Complement
    2. True/False - Logical Operations
    3. Characters - ASCII representation
  2. Gates
    2. DeMorgan’s Laws
  3. Computer Components
    1. Central Processing Unit: Arithmetic Logic Unit, Control Unit, Registers
    2. Memory – ROM and RAM, Address Space and Addressability
    3. I/O
  4. LC3 Assembly Language
    1. Instruction Set (ISA)
    2. Pseudo-ops
    3. Op-codes and Operands
    4. Memory operations
    5. Arithmetic and Logic operations
    6. Control operations – Branches/Jumps
    7. Addressing Modes
  5. Programming
    1. Algorithms, Flow-Charts
    2. Data Types – numbers and pointers
    3. Arrays
    4. Interrupts
    5. Debugging

Attendance: Students are expected to attend lectures. The book covers more information than the class, and we will use lectures to map our way through the class. If you miss class you may find it difficult to catch up.  

Exams: All students in ECE319K/ECE319H will take Exam 1, Exam 2 and the Final Exam at the same time and place. Exam 2 is practical programming exam during which you will design, implement, and debug a software system in assembly and C. You will be writing software using CCS on the real microcontroller for Exam 2. 

Lab Computer Usage

You need to bring your laptops to lab. TAs in the laboratory are checking off programs and supervising while on duty, thus you can expect to have only brief consultations with them. You should learn to develop software while on the computer. This course involves some projects that require extended periods of time to complete and a project cannot be done just overnight. Get started on an assignment early so you can get help if you need it. We expect students to have a laptop to develop programs at home and debug them in lab. Please help to keep the lab clean. 

ECE319K Lab kit A list of components handed out to students. These parts need not be returned.

Legal Notes The 12th class day is 1/31. The drop policy is extremely complicated. See your academic advisor or the Dean of Students for more information. Course evaluation is conducted on the last class day in accordance with the Measurement and Evaluation Center form. 3/26 is the last day an undergraduate student may, with the Dean’s approval, withdraw from the University or drop a class except for urgent and substantiated, nonacademic reasons.

Accessible/Compliant Statement: If you are a student with a disability, or think you may have a disability, and need accommodations please contact Disability and Access (D&A). You may refer to D&As website for contact and more information: If you are already registered with D&A, please deliver your Accommodation Letter to us as early as possible in the semester so we can discuss your approved accommodations.

Accessible, Inclusive, and Compliant Statement: The university is committed to creating an accessible and inclusive learning environment consistent with university policy and federal and state law. Please let me know if you experience any barriers to learning so I can work with you to ensure you have equal opportunity to participate fully in this course.

Religious Holy Days: By UT Austin policy, you must notify the instructor of your pending absence at least fourteen days prior to the date of observance of a religious holy day. If you must miss a class, an examination, a work assignment, or a project in order to observe a religious holy day, we will give you an opportunity to complete the missed work within a reasonable time after the absence.

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 Canvas and class web site: This course uses the class web page and Canvas 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 Canvas 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 Canvas login page. Scheduled downtimes are not an excuse for late work. However, if there is an unscheduled downtime for a significant period of time, we will make an adjustment if it occurs close to the due date.


Scholastic Dishonesty

"Faculty in the ECE Department are committed to detecting and responding to all instances of scholastic dishonesty and will pursue cases of scholastic dishonesty in accordance with university policy. Scholastic dishonesty, in all its forms, is a blight on our entire academic community. All parties in our community -- faculty, staff, and students -- are responsible for creating an environment that educates outstanding engineers, and this goal entails excellence in technical skills, self-giving citizenry, an ethical integrity. Industry wants engineers who are competent and fully trustworthy, and both qualities must be developed day by day throughout an entire lifetime. Scholastic dishonesty includes, but is not limited to, cheating, plagiarism, collusion, falsifying academic records, or any act designed to give an unfair academic advantage to the student. The fact that you are in this class as an engineering student is testament to your abilities. Penalties for scholastic dishonesty are severe and can include, but are not limited to, a written reprimand, a zero on the assignment/exam, re-taking the exam in question, an F in the course, or expulsion from the University. Don't jeopardize your career by an act of scholastic dishonesty. Details about academic integrity and what constitutes scholastic dishonesty can be found at the website for the UT Dean of Students Office and the General Information Catalog, Section 11-802." 

You are encouraged to study together and to discuss information and concepts with other students. You can give "consulting" help to or receive "consulting" help from such students in oral form. However, this permissible cooperation should never involve one student having possession of a copy of all or part of work done by someone else, in the form of an email, an email attachment file, a portable storage device, or a hard copy. Copying of any part of a program is cheating without explicit reference to its source. We do enter lab assignments turned in by ECE319K students through a plagiarism checker, comparing them to assignments of this and previous semesters. If we find two programs that are copied, there will be a substantial penalty to both students, e.g., failure in the course. Students who cheat on tests or in lab will fail. Prosecution of cases is very traumatic to both the student and instructor. It is appropriate to use software out of the book, class website as long as all copy-pasted software is explicitly referenced. Copy-pasting software from current or past ECE319K students is scholastic dishonesty. Policies concerning the use of other people's software in this class:


A practical guide to ethics involving software development for ECE319K/ECE319H labs

Activities you can and should do

  1. You are supposed to share everything with your partner. If you form a Lab 9 team with a different student from your partner in labs 4-8, then you can share your lab 1-8 code with the new partner. Make sure the code contains the proper names of who actually helped develop it.
  2. You can and should discuss strategy, theory, approach, and debugging tips with past, present, and future students in this class. This includes flowcharts, data flow graphs, call graphs, pictures and descriptions of data structures.
  3. You can and should read books and search the internet for existing software similar to the problem you have been asked to solve. You may copy-paste that software into your lab as long as you include a full reference of its source. In fact, we all stand on the shoulders of giants and in (large) software development projects, code reuse and building on top of rich libraries is often a key strategy to success. However, proper credit needs to be given and permission to (re)use code from others needs to be obtained. Anything else is cheating and stealing. You are of course also responsible for understanding all software used in your lab solution.
  4. You can look at up to 3 or 4 lines of code from another ECE319K student as part of the discussion described in 1), as long as you are not observing the entire function.

Activities you cannot and should not do

  1. If you form a Lab 9 team with a different student than your partner in Labs 4-8, then you cannot share any newly written lab 9 code with the old partners.
  2. You cannot copy any software either electronically or optically (look at it and type it) from any past, present or future ECE319K students. This includes lab solutions that another student has inappropriately posted on the internet. You are not allowed to look at another student’s lab solution and reproduce it with different formatting or variable names. This can be simply stated “do not look at Lab solutions of another student”, with the 3-4 line exception listed above.
  3. You may not copy-paste old lab solutions to another student. For example, you may not share your LCD driver from Lab 5 to another group while working on Labs 6-9. You cannot give your lab solutions you develop this semester to a student taking the course in the future.
  4. When copy-pasting code from a book or the internet, you should never remove the author’s name. See rule 2) above.
  5. When copy-pasting code from a book or the internet, you should not expect the code to work (most likely it won't work as expected anyway); it is your responsibility to understand and debug all code used in your lab solutions.


University Honor Code: "The core values of the University of Texas at Austin are learning, discovery, freedom, leadership, individual opportunity, and responsibility. Each member of the University is expected to uphold these values through integrity, honesty, trust, fairness, and respect toward peers and community."


Abet material
Three lecture hours and one laboratory hour a week for one semester.  
Design Assignments: Labs 4, 7, 8, 9 (1 week each)
Laboratory Projects: Labs 1, 2, 3, 5, and 6
SCH Engineering Topics 3 (Including: 1 SCH of Engineering Design)

Relationship of the Course to ABET EC2000 Program Outcomes:

ABET EC2000 Program Outcomes

a.      An ability to apply knowledge of mathematics, science, and engineering

b.   An ability to design and conduct experiments, as well as to analyze and interpret data

c.   an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability


d.   An ability to function on multi-disciplinary teams

e.   An ability to identify, formulate, and solve engineering problems


f.    An understanding of professional and ethical responsibility

g.   An ability to communicate effectively


h.   The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental, and societal context

i.    A recognition of the need for, and an ability to engage in life-long learning

j.    A knowledge of contemporary issues

k.   An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice


ABET Criterion 9:  Program Criteria for Electrical Engineering Curriculum Achieved:



 Programs must demonstrate that graduates have a knowledge of:


1.   Probability and statistics, including applications appropriate to the program name and objectives;

2.   Mathematics through differential and integral calculus, basic sciences, computer science, and engineering sciences necessary to analyze and design complex electrical and electronic devices, software, and systems containing hardware and software components, as appropriate to program objectives.

3.   (Electrical) Advanced mathematics, typically including differential equations, linear algebra, complex variables, and discrete mathematics.




COVID-19 Guidance

To help preserve our in-person learning environment, UT Austin recommends the following:

Safety Information

If you have concerns about the safety or behavior of students, TAs, Professors, or others, call the Behavorial Concerns Advice Line at 512-232-5050. Your call can be anonymous. If something doesn't feel right, it probably isn't. Trust your instincts and share your concerns.

Occupants of buildings are required to evacuate buildings when a fire alarm is activated. Alarm activation or announcement requires exiting and assembling outside.

Sanger Learning Center

More than one-third of undergraduates use the Sanger Learning Center each year to improve their academic performance. All students are welcome to join their classes and workshops and make appointments for their private learning specialists, peer academic coaches, and tutors. Please visit or call 512-471-3614 (JES A332).

Title IX Reporting

Title IX is a federal law that protects against sex and gender-based discrimination, sexual harassment, sexual assault, sexual misconduct, dating/domestic violence and stalking at federally funded educational institutions. UT Austin is committed to fostering a learning and working environment free from discrimination in all its forms where all students, faculty, and staff can learn, work, and thrive. When sexual misconduct occurs in our community, the university can:

  1. Intervene to prevent harmful behavior from continuing or escalating.
  2. Provide support and remedies to students and employees who have experienced harm or have become involved in a Title IX investigation.
  3. Investigate and discipline violations of the university's relevant policies.
Faculty members and certain staff members are considered "Responsible Employees" or "Mandatory Reporters", which means that they are required to report violations of Title IX to the Title IX Coordinator at UT Austin. I am a Responsible Employee and must report any Title IX related incidents that are disclosed in writing, discussion, or one-on-one. Before talking with me, or with any faculty or staff member about a Title IX related incident, be sure to ask whether they are a responsible employee. If you want to speak with someone for support or remedies without making an official report to the university, email For more info about reporting options and resources, visit or contact the Title IX Office at

Campus Carry

"The University of Texas at Austin is committed to providing a safe environment for students, employees, university affiliates, and visitors, and to respecting the right of individuals who are licensed to carry a handgun as permitted by Texas state law." For more information, please see

Land Acknowledgment

I would like to acknowledge that we are meeting on the Indigenous lands of Turtle Island, the ancestral name for what now is called North America. Moreover, I would like to acknowledge the Alabama-Coushatta, Caddo, Carrizo/Comecrudo, Coahuiltecan, Comanche, Kickapoo, Lipan Apache, Tonkawa and Ysleta Del Sur Pueblo, and all the American Indian and Indigenous Peoples and communities who have been or have become a part of these lands and territories in Texas. (Land acknowledgement

Emergency Preparedness and Emergency Plan Instructions
Please review EmergencyTerms.pdf
    Every member of the university community must take appropriate and deliberate action when an emergency
strikes a building, a portion of the campus, or entire campus community. Emergency preparedness means we
are all ready to act for our own safety and the safety of others during a crisis. It takes an effort by all of us to
create and sustain an effective emergency preparedness system. Your support is important to achieving the
best possible outcomes during a crisis event.
    As a University faculty member, you are responsible for pointing out your classrooms' building emergency
evacuation routes and for reviewing emergency procedures with students at the beginning of each semester.
This review should include a mention of the monthly emergency communications test (every first Wednesday
at 11:50 a.m.) and the list of communications channels the university uses during emergencies. It should also
include a review of the attached document outlining emergency terms (e.g., the difference between “shelter-inplace”
and “lockdown”) and instructions for faculty and students to follow during emergencies. As a matter of
convenience, we recommend including this information in your syllabus along with the phone number for the
Behavior Concerns Advice Line (BCAL: 512-232-5050). This is the number to call if you have concerns
regarding the attitude or actions of students, staff, or other faculty.
    Finally, at the end of your emergency preparedness review, request that students requiring assistance in
evacuation inform you in writing of their needs during the first week of class. This information must then be
provided to the Fire Prevention Services office by fax (512-232-2759), with "Attn. Mr. Roosevelt Easley" written
in the subject line.
    Thank you in advance for taking the time to ensure the safety of your classroom. I assure you this small effort
can yield much greater rewards should the unthinkable happen. If you would like more information regarding
emergency preparedness, visit