| |
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
- Project Setup
- basics of make
- setting up source directories
- setting up tools
- source and include file organization
- choosing a tool chain
- 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
- 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
- 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.
- 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
- Embedded Supervision
- checking ROM, RAM, and FLASH memory
- preventing task starvation
- measuring CPU load
- instrumenting your code for debugging
- Code Tuning
- trading speed for space
- examining compiler output
- array and pointer tricks
- measuring code performance
Course Duration
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
|
|
|