CE-2810 Embedded Systems II 2 - 2 - 3


Description

This class builds on CE-2800 and introduces C as a high-level language for embedded systems programming. C pointers are introduced. C functions are introduced. Parameter passing by value versus using pointers is described. Interrupts in C are introduced and then the C/assembly interface is described. Designing modular applications by use of multiple files is described. Several subsystems, such as the USART and Timer system, are introduced. Key concepts are applied in laboratory exercises.

Prerequisites

Materials

Required:
  • Notebook computer required
  • ATmega32 Development Board purchased through the EECS Technical Support Center

Program Outcomes Containing CE 2810

Click to see all the program tracks

Course Learning Outcomes

Upon successful completion of this course, the student will:
  • combine assembly and a high-level language to complete basic embedded system programming tasks
  • employ embedded systems development tools
  • link multiple files to create a larger application
  • design and write C functions
  • use interrupts in C to perform I/O
  • use the various subsystems of the processor in practical applications

Course Topics

  • Review control structures
  • Example 1: C embedded program (no assembly), extending the tool chain with a compiler
  • Pointer basics, null pointers, addressing, indirection, arrays and pointers, character string processing
  • C functions and parameter passing (by value and using pointers
  • Interrupts in C
  • Example 2: Interrupt example
  • Using multiple files in an application, header files, conditional compilation
  • Example 3: Writing applications containing multiple files
  • C/ASM interfacing
  • Example 4: C/ASM interfacing
  • Serial communications and the USART subsystem
  • Design of a serial API in with assembly support
  • Midterm and review

Prerequisites by topic

  • Java programming fundamentals including classes and functions
  • Structured assembly language programming
  • Good program design techniques

    Laboratory topics

    • Assembly program, review/refresh CE-2800
    • Debugging a simple C program on the embedded system
    • Using C to solve design problems
    • Mixed C/assembly program (e.g., display interface and implementation)
    • Subsystem API

      Course topics by day

      Lecture/Lab topics

      ACCE content

      General Education Math & Science Business & Mgmt. ConstructionConstruction Science
      00000

      View Specific Requirements

      ABET/EAC content

      Engineering topics Design General education Math/ScienceOther
      3No 000

      ABET/TAC content

      Communications Math & Science HU/SS Tech ContentOther
      00000

      Coordinator

      William Barnekow, Professor

      Last review

      Eric Durant, Associate Professor, Program Director, Computer Engineering
      on Jun 20, 2008

      Last update

      Eric Durant, Associate Professor, Program Director, Computer Engineering
      on Jun 20, 2008