Current Catalog Description

Use of small computers embedded as part of other machines. Limited-resource microcontrollers and state machines from high description language. Embedded hardware: RAM, ROM, flash, timers, UARTs, PWM, A/D, multiplexing, debouncing. Development and debugging tools running on host computers. Real-Time Operating System (RTOS) semaphores, mailboxes, queues. Task priorities and rate monotonic scheduling. Software architectures for embedded systems. Prerequisite: CSE 17 or 18.




Student will have

  1. Understand intimate interaction of hardware and software at embedded level
  2. Program and debug microcontrollers in C and assembly
  3. Access and control hardware resources through C syntax
  4. Implement interrupt service routines using vector tables
  5. Control "atomic" events through interrupt masking
  6. Control external mechanisms using PWM and servo pulses
  7. Communicate with external peripherals using SCI and CAN busses
  8. Perform rational math with integers and avoid floating point


CSE 336 substantially supports the following student enabled characteristics

A. An ability to apply knowledge of computing and mathematics appropriate to the discipline

J. An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices

Major Topics Covered in the Course

  • Introduction to microprocessor development
  • Hardware programming in C and assembly
  • Memory types for program and variable storage
  • Arithmetic without floating point
  • Integrated development environments
  • Role of preprocessor, role of complier, role of assembler, role of linker and burner parsing
  • Interactive debugging in C and assembly languages