|
This training course is the most advanced in our series of C-programming courses.
We will take a good look at the complex parts of the C language so important when developing for embedded systems, such as function pointers, unions and bit fields.
The main part of the training is focused on the problems occurring when dealing with embedded systems programming., such as high performance, synchronizing and memory requirements.
We will also teach you methods for developing good maintainable and testable code.
Goal What we aim for with this training course is to give you the necessary deeper knowledge in C programming that you need.
You will be taught valuable tricks and ways to make time saving constructions in you development process.
Participants This training course is designed to suit developers and programmers of embedded systems with some experience in programming, who wishes to deepen their C programming knowledge, for those who wishes to get new fresh views on the subject, and get practical ideas to be used in their own company.
Previous knowledge You need to have good knowledge in C programming, corresponding to our courses ”C programming for embedded systems, part I” and ”C programming for embedded systems, part II” as well as a certain degree of practical experience.
Practical exercises / Tools This course has many exercises following up the items brought up on the theory part of the training.
We use a windows based integrated environment consisting of editor, C-compiler and linker from IAR (Embedded Workbench for ARM).
The Programs are downloaded and run in an ARM7TDMI-based target from Atmel (AT91EB42). For debugging we use the In-Circuit Debugger from Lauterbach (Lauterbach Trace32-ICD). |
Content
Advanced C constructions
- More about pointers and function pointers
- Structures, unions and bit fields
- Memory requirement – static and dynamic
- Inline assembler
Performances in C
- How do I write optimal code (which require little maintenance)
Objectoriented C
- How do you simulate C++ in C?
Generally
- Encapsulation of HW – writing code for several target environments
- Start-up codes and programs loading
- Synchronising problems
- Interrupt handling
- Semaphores and monitors
- Re-entrancy
- Shared data
Advanced debugging and maintenance
- Writing code possible to test
- Logging
- Built-in test
- Hot-swap; to write programs for on-line-update
|