Catalog Description
- Transfer Status
- CSU/UC
- Prerequisite
- CSCI 20
- Unit(s)
- 3.00
- Lecture: 34.00 Contact hours/68.00 Out of class hours/102.00 Total hours/2.00 Unit(s)
- Lab: 51.00 Contact hours/0.00 Out of class hours/51.00 Total hours/1.00 Unit(s)
- Total: 85.00 Contact hours/68.00 Out of class hours/153.00 Total hours/3.00 Unit(s)
Course Description: This course introduces the principles and methods related to the creation of embedded systems applications at a low level. It covers the utilization of both Assembly Language and C. The topics covered encompass microprocessor architecture fundamentals, instruction set architectures, Assembly language programming, data representations, managing interrupts and execution modes, low-level C programming, as well as the utilization of on-chip and external peripherals.
Objectives
Upon successful completion of this course, the student should be able to:
- Describe the main characteristics of Embedded Systems Development
- Identify and describe modern embedded systems development tools.
- Write assembly langugage instructions that run on embedded systems hardware, including subroutines, Input/Output (I/O), arithmetic, logic and other basic operations.
- Write C langugage instructions that run on embedded systems hardware, including subroutines, Input/Output (I/O), arithmetic, logic and other basic operations.
- Identify and describe basic computer architectures, including processor architecture and the behavior and representation of data types and data structures.
Course Content
Topic Titles / Suggested Time Topic
Lecture
| Topics | Lec Hrs |
|---|---|
Introduction to Embedded Systems | 1.00 |
Numeric Data Representation and Number Bbases | 3.00 |
Signed and Two's Complement Representations | 2.00 |
Binary Math | 2.00 |
Logical Operations | 2.00 |
Branching Statements and Conditionals | 2.00 |
Loops | 2.00 |
Hardware Specific Operations | 2.00 |
Fixed and Floating Point Systems | 2.00 |
Embedded Systems Architecture | 2.00 |
Subroutine Call and Return Mechanisms | 2.00 |
Control Unit and the Fetch-Decode-Execute Cycle | 1.00 |
I/O, Interrupts and Timers | 3.00 |
Embedded Systems Programming | 3.00 |
C Language and Embedded Systems | 1.00 |
C Programming with Embedded Systems | 4.00 |
| Total Hours: | 34.00 |
Lab
| Topics | Lab Hrs |
|---|---|
Numeric Data Representation and Number Bases | 3.00 |
Fixed and Floating Point Systems | 3.00 |
Binary Math | 3.00 |
Logical Operations | 3.00 |
Branching Statements and Conditionals | 3.00 |
Loops | 3.00 |
Embedded Systems Programming | 15.00 |
Subroutine Call and Return Mechanisms | 3.00 |
I/O, Interrupts and Timers | 3.00 |
C Language Programming | 12.00 |
| Total Hours: | 51.00 |
Methods of Instruction
- Class Activities
- Group Discussions
- Homework: Students are required to complete two hours of outside-of-class homework for each hour of lecture
- Instructor Demonstrations
- Laboratory Experiments
- Lecture
Methods of Evaluation
- Quizzes
- Homework
- Lab Projects
- Mid-term and final examinations
Examples of Assignments
Reading Assignments
- Read the chapter in your text on Binary Number Systems. Write a brief description on why computers use base 2 (binary) and its relation to other base systems (8, 10 and 16)
- Read the chapter about interrupts and draw a simple diagram showing a busy-waiting representation.
Writing Assignments
- Write an embedded systems program that will change the color of an LED based on external hardware inputs. Be sure to include proper header documentation and thorough inline commeting to describe your program.
- Write truth tables for the bitwise logic instructions AND, OR, XOR, and NOT. Include an example with each table and a description of one possible use of each instruction in a program.
Out-of-Class Assignments
- Prepare a short programming exercise to be completed by one of your classmates. Your exercise must require that your classmate use a subroutine and the ARM CPU Architecture.
- Use the Internet to find information about Disassembling C. Compare your Assembly Code to similar disassembled C code. What insights can you infer from the differences?
Recommended Materials of Instruction
Jonathan W. Valvano. (2012). Embedded Systems: Introduction to ARM Cortex‐M Microcontrollers. CreateSpace Independent Publishing Platform, 5th. 978-1477508992.
Elecia White. (2024). Making Embedded Systems: Design Patterns for Great Software. O'Reilly Media, 2nd. 978-1098151546.
Ariel Lutenberg, Pablo Gomez, Eric Pernia. (2022). A Beginner's Guide to Designing Embedded System Applications on Arm Cortex-M Microcontrollers. Arm Education Media, 1st. 978-1911531418.
Zero Cost Textbook
https://users.ece.utexas.edu/~valvano/Volume1/E-Book/
Minimum Qualifications
Engineering (Masters Required)
Computer Science (Masters Required)