ES0710: EMBEDDED C PROGRAMMING
Embedded System Programming in C emphasizes the special C programming techniques that are unique to embedded systems developers. The course is hands-on, guiding the student through exercises that reinforce the lesson material and helps point out common pitfalls that contribute to programming errors.

For Registration/Information call (586) 336-7860 or
email info@epcom.com

  Return to Course Offerings
 

Who Should Attend

This course is best suited to experienced C programmers that are new to embedded systems or embedded C programmers that suspect there might be a different or better way to do things.

Prerequisites

What you will learn

    The lessons and exercises are essentially a case study which involves porting an existing application to a new processor. During the course, the students are free to ask questions and are further encouraged to bring in code for review by the group. Upon completion, the students will have a better understanding of issues in embedded systems programming, and will be able to apply the techniques to the workplace immediately

Course Outline

  1. Project Setup 
    • basics of make 
    • setting up source directories 
    • setting up tools 
    • source and include file organization 
    • choosing a tool chain 
  2. Defensive Programming
    • using the preprocessor to catch errors 
    • using the compiler to catch errors 
    • naming variables, functions, and macros 
    • avoiding bugs by using safe coding idioms 
    • using ASSERTs effectively 
  3. Portability Issues 
    • basic data types and their value ranges 
    • pitfalls of C type checking 
    • structures, unions and bitmasks 
    • big endian vs. little endian 
    • compiler and linker quirks 
  4. Embedded Math 
    • signed vs. unsigned math 
    • floating vs. fixed point math 
    • dynamic range vs. accuracy 
    • interpolating vs. calculating 
    • choosing and calculating scale factors 
    • fundamental algorithms for embedded systems. 
    • preprocessor math issues. 
  5. Operating systems 
    • simple schedulers 
    • preemptive schedulers 
    • breaking the project into independent tasks 
    • sharing data and resources between tasks 
    • tasks, semaphores, resources, messages and other OS objects. 
    • keeping track of time 
  6. Embedded Supervision 
    • checking ROM, RAM, and FLASH memory 
    • preventing task starvation 
    • measuring CPU load 
    • instrumenting your code for debugging
  7. Code Tuning 
    • trading speed for space 
    • examining compiler output 
    • array and pointer tricks 
    • measuring code performance

Course Duration

    Four (4) days.

Course Schedule

Course Materials

  • Comprehensive course workbook/summary
  • Course certificate of completion

For Registration/Information call (586) 336-7860 or email info@epcom.com

  Return to Course Offerings



home - consulting - education - staffing | careers - about us - contact us

v1.0 Copyright 2004, Epcom Corporation