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
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
ACCE content
| General Education |
Math & Science |
Business & Mgmt. |
Construction | Construction Science |
| 0 | 0 | 0 | 0 | 0 |
ABET/EAC content
| Engineering topics |
Design |
General education |
Math/Science | Other |
| 3 | No |
0 | 0 | 0 |
ABET/TAC content
| Communications |
Math & Science |
HU/SS |
Tech Content | Other |
| 0 | 0 | 0 | 0 | 0 |
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