|
C for Embedded Systems
Price 12 800
Number of days 2
|
|
|
We highlight important areas not always covered in introductory programming courses. C is the most important high-level language in the field of industrial programming and for embedded systems. The techniques used for embedded systems can differ from "text-book programming", and a number of these are covered in the course. We also discuss various strategies for optimizing code both for memory space and speed of execution. We even cover the different errors and pitfalls that are common to the C-language when working with the constraints dictated by an embedded system. Throughout the course the connection between the hardware, the software and the interaction with the compiler is treated as a single, inter-related system. All source code in the course is based on realistic examples. |
Objectives We want to share the extensive knowledge of C-programming that Enea has gathered during 30 years. Furthermore, we want to raise the participants' knowledge of the hardware's and compiler's roles in conjunction with the software.
Who should attend? Those with little or no experience of embedded systems, but who will work with C-programming.
Previous Knowledge Fundamental C-programming
Recommended following courses OSE- courses Safer C
Course Material Included in the course is our original material in English. |
Course Contents
Definition of embedded systems - Characteristics of an embedded system - Consequences for the programmer - Questions to the audience
Relationship between C and embedded systems - Why use C so often in embedded systems? - Bit manipulation with C operators - Pointers, double pointers and the "address of" operator - Structs and unions in embedded systems - To implement a linked list
|
Memory - To link a program - How to save memory - Problems: memory leaks and memory monitoring Stacks Variables Recursion Pointer arguments to functions
Optimization - Optimizing: memory usage and execution times - Architectural dependencies - Bit vectors and structs - Cache memory - Indexing of vectors - Profiling
|
Portability and inter-operability - Register size - The Endian-problem - Pitfalls in the C-language
Coding style and discipline - What is "good" programming? - Good habits
|
|