ECEN 3350 (3 credits). This course explores how computers and programmable hardware are used to implement digital systems. We explore the capabilities of central processing units (CPUs), the use and control of various input/output (I/O) devices, memory organization and concurrency management.
1. Understand programmable system architectures and their associated assembly language programs.
2. Understand the use of programmable hardware as a component of an embedded system.
3. Understand how to convert digital design specifications into hardware and software components.
Learning Outcomes: After taking this course, students will be able to:
1. Be proficient in assembly language programming, including the use of an assembler, linker, loader and debugger to construct, execute and debug assembly language programs.
2. Construct assembly language equivalents of C function calls.
3. Deploy I/O device interfacing techniques, including setup, control and monitoring via polling and interrupt service routines.
4. Comprehend data formats in memory of instructions and data (character strings, signed and unsigned numbers, control tables).
5. System level support, including low-level hardware support, process management and memory management.
1. Basic computer architecture components.
2. Data representations, computer arithmetic.
3. The instruction set and assembly language for one CPU.
4. C language function call support at the assembly language level.
5. Modularity, program structure and the tenets of writing maintainable software.
6. Devices and how to control them programmatically. Devices include: LEDs, switches, push-buttons, 7-segment displays, UART, and timers.
7. Interrupts and interrupt driven input/output.
8. Process management and semaphores.
9. Introduction to performance analysis, memory management and caches.
10. The design process: Working from product requirements to product testing.
For contact information and office hours, see syllabus in Desire2Learn.
Class time and location:
MWF 2:00pm - 2:50pm, Flemming 156 (FLMG 156)