Aviral Shrivastava: Teaching: CSE 325
CSE 325: Embedded Microprocessor Systems
System-level programming and analysis of embedded microprocessors
systems. Fundamental concepts of digital system design for embedded
system applications. Prerequisites: Computer Systems Engineering BSE
or Computer Science BS student; Completion of CSE 220 Programming for
Computer Engineering with a C or better; Completion of CSE230 or
EEE230 Computer Organization and Assembly Language with a C or
better. Three (3) credit hours. Lecture/No lab.
Completion of CSE 220 Programming for Computer Engineering with a C or
Completion of CSE230 or EEE230 Computer Organization and Assembly Language with a C or
Course learning outcomes
- To develop an ability to analyze microprocessor-based embedded
systems, memory components, and bus connections:
To develop design skills for modular application and system
software in microprocessor-based embedded systems:
- Analyze the schematic diagrams of microprocessor-based embedded
systems to understand the functions and interactions of major
- Explain the characteristics of memory components such as SRAM,
DRAM, and flash memory.
- Explain memory and I/O bus protocols, access arbitration, data
transfer operation, and bus timing mechanisms.
- Analyze addressing schemes for memory and I/O components in
microprocessor-based embedded systems.
To apply software development tools to efficiently implement and
debug programs running in microprocessor systems:
- Develop time- and event-triggered execution of software tasks
for embedded applications.
- Explain parameter passing schemes between high-level and
assembly language programs, and the structure of interrupt service
- Develop efficient and well-structured programs and interrupt
service routines using high-level and assembly language.
To gain an ability to analyze I/O interface units and to design
software for managing I/O operations:
- Understand host and target development environment for microprocessor systems.
- Use a tool chain (compiler, assembler, linker, debugger) or an
IDE (integrated development environment) to develop application
programs in microprocessor systems.
- Develop programs to manage I/O operations and to handle external
events via polling and interrupts.
- Develop software to control the operations of I/O units (e.g.,
I2C, SPI, UART, A/D converter, PWM).
- Develop software for the operations of human-computer interfaces
(e.g., LED's, buttons, switches, potentiometers, Wii Nunchuk).
- Modify or synthesize a schematic to implement a specified
- Introduction to embedded systems (ES); ES development life cycle;
ES components (1 week)
- ES software development tools (.5 week)
- C programming for ES (.5 week)
- ColdFire microcontroller; General-purpose I/O; Overview of ColdFire
timers; ColdFire DMA timers (1 week)
- ColdFire ISA and assembly language programming; Interfacing C and
assembly language (2 weeks)
- ColdFire exception processing; Interrupts and interrupt service
routines (1.5 weeks)
- ColdFire timers and counters (PIT and GPT modules); Pulse width
modulation (1 week)
- D/A and A/D conversion; Analog sensors; ColdFire ADC module (1
- Serial I/O: RS-232 and UART's (1 week)
- Serial I/O: I2C (1 week)
- Serial I/O: SPI (1 week)
- Serial I/O: USB (1 week)
- Memory; RAM; ROM; Buses; Bus protocols and arbitration (2.5
> 90% - A
> 80% - B
> 70% - C
> 60% - D
< 60% - E
Kevin Burger's course website.
Prof. Yann-Hang Lee's course website.
Last Updated: Aviral Shrivastava, 09/12