|
Sep 07, 2024
|
|
|
|
CE 2812 - Embedded Systems II3 lecture hours 2 lab hours 4 credits Course Description This course builds on CE 2801 and introduces C as a portable high-level language for embedded systems programming. Topics include C language syntax, variables, and pointers. C functions are covered with special attention to passing by value versus passing by reference. Specialized embedded topics included using pointers to interact with microcontroller subsystems, creating interrupts in C, and the C/assembly interface. Designing modular application by use of multiple files is emphasized throughout the course. Laboratory exercises employ peripheral subsystems as well as reinforce other key topics. (prereq: CE 2801 ) Course Learning Outcomes Upon successful completion of this course, the student will be able to:
- 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
Prerequisites by Topic
- High-level programming fundamentals including control structures and subroutines
- Structured assembly language programming
- Good program documentation and design techniques including flowcharting and pseudocode
Course Topics
- Introduction to C as a portable language
- Review control structures typical of high-level languages
- Pointer basics, null pointers, addressing, indirection, arrays, pointers, character string processing
- C arithmetic and bitwise operators.
- Traditional C and C99 types and custom types with typedef
- Interaction with registers via C pointers
- C structures
- Function pointers
- The C standard library
- Dynamic memory with malloc and free
- C functions and parameter passing (by value and by reference)
- Using multiple files in an application, header files, conditional compilation
- Serial communication and the USART subsystem
- Design of a buffered serial API
- Basic console I/O
- Basic round-robin context switching
Laboratory Topics
- Debugging a simple C program on the embedded system
- Using C to interact with microcontroller peripherals
- Mixed C/assembly program
- Console I/O
- Round-robin context switcher
Coordinator Dr. Adam Livingston
Add to Portfolio (opens a new window)
|
|