C Programming for Embedded Systems, part 2
This C Programming training course is the second in our series of C-programming courses. You will learn more about the advanced possibilities and structures available in the language C. It is mainly a hands-on training course and the many exercises will take you a large step forward in your C-programming.
Goal
Our aim with this training course is to give you the necessary, deeper knowledge in C programming that you need.
You will learn valuable tricks and ways to make time saving constructions in you development process.
Participants
This C Programming training course is designed to suit developers and programmers of embedded systems with some experience in programming.
You probably wish to deepen your C programming knowledge.
Previous knowledge
You need to have basic knowledge in C programming, corresponding to our course C programming for embedded systems, part I .
Practical exercises / Tools
This course have many exercises following up the theory part of the training.
We use an integrated Windows environment. You will edit, compile and link you code via a compiler from Keil, and a Lauterbach-debug connected to an ARM Cortex-M3 board.
Content
Introduction
What C language has meant and future possibilities, i.e. C++
Short retrospect (part I)
Special C language-phrases / words
Portable code; What to keep in mind with writing code possible to reuse in other projects
Advanced structures; Compound data types and references with pointers and links. Dynamic memory management in combination with structures
Self defined data types; Definitions and differences versus the use of macros
Using pointers; Thorough review regarding the use of pointers, and their advantages.
Function pointers; Function calls via function pointers. Abstract data types. Examples of implementation of an abstract data type and its use
Assembler and C; How a call from C to Assembler is done
Hardware; How to write C towards a special HW
Library; We create libraries with functions and use them in practice.
Optimising; How does optimising affect the program?
Error handling; How to avoid errors and program crashes.
Martin Andersson
Martin Andersson, FAE at Nohau Solutions, has completed his M.Sc. in Electrical Engineering from Lund University. Martin has several years of experience in electronics manufacturing and real-time system development, with a focus on control engineering for hydraulic systems.
